I second the Terraform suggestion...my team loves it. But we&#x27;ve found storing state in version control to be clunky. Storing state remotely in Consul has been less problematic for us, though S3 would also work for those that don&#x27;t have a running Consul cluster.<p>What I love most about Terraform is that we can include the output of terraform plan in pull requests that make infrastructure changes. Then our continuous deployment process runs plan again and requires an identical output before running apply. This both makes it easier for team members to review changes but also ensures that we don&#x27;t accidentally destroy infrastructure, which is really easy to do with a lot of these infrastructure-as-code tools.<p>The other thing that Terraform has going for it over CloudFormation is for hybrid cloud deployments, since it can provision infrastructure in vSphere and OpenStack as well as AWS.