It uses a pure Ruby, DSL to write “recipes” for configuring and maintaining a company’s servers Puppet Written in C++, Clojure, and Ruby. Provides its own declarative language for configuring and maintaining servers Ansible Written in mainly Python, it is provides provisioning, configuration management, application deployment capabilities 19
by AWS. Configuration files can be written in either JSON or YAML. Only supports AWS cloud provider. Terraform Developed by Hashicorp, it is an infrastructure as code tool written in Golang. It provides its own DSL, HCL (Hashicorp Configuration Language). Supports the major cloud providers as well as some on-premises cloud systems. 20
open source software development framework to model and provision your cloud application resources using familiar programming languages Pulumi Enables developers to write code in their favorite language (e.g., JavaScript, Python, Go), deploying cloud apps and infrastructure easily, without the need to learn specialized DSLs or YAML templating solutions. 21
AWS resources/services added quickly ◉ AWS is source of truth CLOUDFORMATION PROS/CONS Cons ◉ Only supports AWS ◉ Does not provide a plan stage only changesets ◉ No shareable modules 24
the systems and devices which are used to run software can be treated as if they, themselves, are software. - - Kief Morris, author Infrastructure as Code: Managing Servers in the Cloud 25