1 Introducing infrastructure as code


This chapter covers

  • Defining infrastructure
  • Defining infrastructure as code
  • Understanding why infrastructure as code is important

If you just started working with public cloud providers or data center infrastructure, you might feel overwhelmed with all that you have to learn. You don’t know what you need to know to do your job! Between data center infrastructure concepts, new public cloud offerings, container orchestrators, programming languages, and software development, you have a lot to research.

Besides learning everything you can, you also have to keep up with your company’s requirements to innovate and grow. Building systems to support it all gets challenging. You need a way to support more complex systems, minimize your maintenance effort, and avoid disruption to customers using your application.

What do you need to know to work with cloud computing or data center infrastructure? How can you scale your systems across a team and your organization? The answer to both questions involves infrastructure as code (IaC), the process of automating infrastructure changes in a codified manner to achieve scalability, reliability, and security.

1.1 What is infrastructure?

1.2 What is infrastructure as code?

1.2.1 Manual configuration of infrastructure

1.2.2 Infrastructure as code

1.2.3 What is not infrastructure as code?

1.3 Principles of infrastructure as code

1.3.1 Reproducibility

1.3.2 Idempotency

1.3.3 Composability

1.3.4 Evolvability