Infrastructure as Code

Ad hoc scripts

general purpose programming language

No particular structure enforced

Can become messy and unmaintainable when growing

Configuration management tools

Chef, Puppet, Ansible, SaltStack

Coding Conventions

Idempotence means code can be run multiple times

Server templating tools

Docker, Packer, Vagrant

used to create an Image of a Virtual Machine or Container

Key to the shift to immutable infrastructure

Server provisioning tools

Terraform, CloudFormation, OpenStack Heat are creating servers, databases, load balancers, etc.