Introduction
Infrastructure as code (IaC) doesn't quite trip off the tongue, and its meaning isn't always straightforward.
But IaC has been with us since the beginning of DevOps—and some experts say DevOps wouldn't be possible without it.
As the name suggests, infrastructure as code is the concept of managing your operations environment like you do applications or other code for general release.
Rather than manually making configuration changes or using one-off scripts to make infrastructure changes, the operations infrastructure is managed instead using the same rules and strictures that govern code development—particularly when new server instances are spun up.
That means that the core best practices of DevOps—like version control, virtualized tests, and continuous monitoring—are applied to the underlying code that governs the creation and management of your infrastructure.
In other words, your infrastructure is treated the same way that any other code would be.
The elasticity of the cloud paradigm and the disposability of cloud machines can only be used by applying the principles of Infrastructure as Code to all your infrastructure.
This module describes key concepts of infrastructure as code and environment deployment creation and configuration. Also, understand the imperative, declarative, and idempotent configuration and how it applies to your company.
Learning objectives
After completing this module, students and professionals can:
- Understand how to deploy your environment.
- Plan your environment configuration.
- Choose between imperative versus declarative configuration.
- Explain idempotent configuration.
Prerequisites
- Understanding of what DevOps is and its concepts.
- Familiarity with version control principles is helpful but isn't necessary.
- Beneficial to have experience in an organization that delivers software.