Skip main navigation

The business value of infrastructure as code

This article looks at the value that Infrastructure as Code brings to your organisation and the benefits you’ll derive from implementing it.

What is IaC?

IaC (IaC) evolved to solve the problem of environment drift in the release pipeline. Without IaC, teams must maintain the settings of individual deployment environments.

Snowflakes

Over time, each environment becomes a snowflake or a unique configuration that can’t be reproduced automatically. Inconsistency among environments leads to more issues during deployment.

With snowflakes, administration and maintenance of infrastructure involve manual processes which are hard to track and contribute to errors.

The concept of Idempotence

Idempotence is a principle of IaC. Idempotence is the property where a deployment command always sets the target environment into the same configuration, regardless of the environment’s starting state.

Idempotency is achieved by either automatically configuring an existing target or by discarding the existing target and recreating a fresh environment.

Benefits of Infrastructure as Code

With IaC, teams make changes to the environment description and version of the configuration model, which is typically in well-documented code formats such as JavaScript Object Notification (JSON).

The release pipeline executes the model to configure target environments. If the team needs to make changes, they edit the source, not the target.

Traditionally, teams don’t discover infrastructure issues until late in the delivery cycle because they don’t deploy the application on a production-like infrastructure until they get to production.

Manage multiple configurations

IaC enables you to create the automation once and manage multiple configurations introduced by the environments. Doing this allows you to practice it enough to be confident that it will run smoothly when it gets to production.

Testing in production-like environments early on

IaC enables the DevOps teams to test applications in production-like environments early in the development cycle. These teams expect to provision multiple test environments reliably and on-demand.

Infrastructure represented as code can also be validated and tested to prevent common deployment issues.

At the same time, the cloud dynamically provisions and tears down environments based on IaC definitions.

Stable environments

Teams that implement IaC can deliver stable environments rapidly and at scale. Teams avoid manual configuration of environments and enforce consistency by representing the desired state of their environments via code.

Infrastructure deployments with IaC are repeatable and prevent runtime issues caused by configuration drift or missing dependencies.

DevOps teams can work together with a unified set of practices and tools to deliver applications and their supporting infrastructure rapidly, reliably, and at scale.

This article is from the free online

Microsoft Future Ready: DevOps Development, Implementation and Azure Automation

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now