1 Infrastructure as Code (IaC)

 

This chapter covers:

  • Introducing Infrastructure as Code (IaC).
  • The benefits of using IaC.
  • How IaC fits into DevOps practices.
  • A comparison of IaC tools.

1.1       Introducing Infrastructure as Code (IaC)

Infrastructure as Code (IaC) is a practice and a set of tools that use software development practices to manage infrastructure. Companies like Amazon, Facebook, and Netflix have led the adoption and influenced the development of these techniques, driven by their global scale, and the need to make changes more frequently to their software and environments than would be possible without a high degree of automation. At the same time, these companies need the highest levels of quality, reliability, and security for their systems, so their growing businesses can continue to succeed.

1.2       The Benefits of Using IaC

1.2.1   Elasticity at scale

1.2.2   Team velocity

1.2.3   Time to market

1.2.4   Repeatability

1.2.5   Stability

1.2.6   Managing change

1.2.7   Self documentation

1.2.8   Risk management

1.2.9   Cost control

1.2.10    Auditability

1.3       How IaC Fits Into DevOps

1.3.1   Iterative

1.3.2   Incremental

1.3.3   Continuous

1.3.4   Automated

1.3.5   Self-service

1.3.6   Collaborative

1.4       A Comparison of IaC Tools

1.4.1   Configuration Management vs. Infrastructure as Code (IaC)

1.4.2   Imperative vs. Declarative

1.4.3   Which Tool is Best for My Infrastructure?

1.4.4   When is CloudFormation the Wrong Choice?

1.4.5   Ansible

1.4.6   Terraform

1.4.7   SaltStack

1.4.8    Chef

1.4.9   Puppet

1.4.10    Azure Resource Manager

1.4.11    AWS Elastic Beanstalk

1.4.12    AWS CloudFormation

1.5       Summary

sitemap