"The idea behind infrastructure as code (IAC) is that you write and execute code to define, deploy, update, and destroy your infrastructure. This represents an important shift in mindset in whichyou treat all aspects of operations as software—even those aspects that represent hardware (e.g., setting upphysical servers). In fact, a key insight of DevOps is that you canmanage almost everything in code, including servers, databases, networks, log files, application configuration,documentation, automated tests, deployment processes, and so on." (Terraform up running: 2ed)
- Ad Hoc Scripts
- Configuration Management Tools (Coding conventions, Idempotence, Distribution)
- Sever templating tools (Docker, Packer, Vagrant)
- Orchestration tools (Kubernetes, Marathon/Mesos, Amazon Elastic Container Service (Amazon ECS), Docker Swarm,and Nomad)
- Provisioning tools (Terraform, CloudFormation, OpenStack, Throposphere)
- Speed and safety
- Documentation
- Version Control
- Validation
- Reuse
- Happiness