Are you currently experiencing an attack?

Are you currently experiencing an attack?

What is IaC (Infrastructure as Code)?

Summary

Infrastructure as Code (IaC) is the provisioning and management of computing infrastructure from machine-readable definition files.

Keep reading: Related Content

More Topics

Summary

Infrastructure as Code (IaC) is the provisioning and management of computing infrastructure from machine-readable definition files.

What is IaC (Infrastructure as Code)?

Infrastructure as Code (IaC) is the provisioning and management of computing infrastructure from machine-readable definition files. IaC not only includes traditional infrastructure such as servers and virtual machines, but also can include other components of modern architectures, such as containers, load balancers, and so on. Any resource which can be described in a definition file (which is usually in a format such as JSON) can be managed with IaC.

IaC is closely associated with DevOps and DevSevOps, as it enables a number of important practices for them. It has several important differences from older approaches to infrastructure management, which tended to have the following characteristics:

  • Infrastructure tended to be managed separately from development and operations. Often, there was no overlap between IT staff and developers, and minimal interaction between the two teams.
  • Infrastructure components tended to be “snowflakes.” They were individually nurtured and managed by IT staff. Over time, they could become quite different from each other.
  • Deploying new resources could be labor-intensive. Scalability could be a challenge.
  • An individual resource would often be fine-tuned and specially configured for the specific environment and context/situation that existed when it was provisioned.
  • As a result of the above, it was common for inconsistencies between environments to arise and accumulate over time. Resources which in theory should be identical, often were not. 
  • During development and testing, different environments were not necessarily consistent with each other. Individual environments could even change over time. This can make it difficult to reliably reproduce and fix bugs in the product.

IaC is designed to eliminate these problems. Resources and environments are not configured individually by IT staff; rather, infrastructure is created and maintained according to well-defined configurations that are described in declarative code. When an environment needs to be modified, it is not changed directly. Instead, the team edits the source code, which is then implemented.

Strictly speaking, IaC does not specify how the code is maintained. In practice, almost all organizations using IaC also adopt practices such as version control, because this provides additional benefits. A full historical record of commits is maintained, any of which can be referred to (or rolled back) at any time. Therefore, any given environment can be reproduced at any time.

Many organizations also are adopting immutable infrastructure, which also is not required by IaC, but is closely associated with it.

Overall, IaC provides a long list of benefits. It enables stability and consistency for CI/CD pipelines by eliminating manual configuration and environmental drift. QA becomes easier when any specific environment can be reproduced whenever needed. 

When IaC is combined with cloud architectures, so that physical hardware is no longer being used, the release pipeline can be programmatically controlled. Resources can be provisioned, software can be deployed, and testing can be done, automatically.

IaC allows for rapid and scalable delivery of stable environments. Configuration is no longer labor-intensive and error-prone; instead, it is fast, automated, and consistent. Specific environments are reproducible, and different test environments can be generated on demand. In conjunction with other *DevOps* and *DevSecOps* practices, IaC makes it faster and easier to develop and release higher-quality software.

Get your price quote

Fill out your email below, and we will send you a price quote tailored to your needs

This website uses cookies to ensure you get the best experience on our website.