Original post up at Gruntwork blog
- Go through the Production-Grade Infrastructure Checklist to make sure you’re building the right thing.
- Define your infrastructure as code using tools such as Terraform, Packer, and Docker. Make sure your team has the time to master these tools (see DevOps Resources).
- Build your code out of small, standalone, composable modules (or use the off-the-shelf modules in the Infrastructure as Code Library).
- Write automated tests for your modules using Terratest.
- Submit a pull request to get your code reviewed.
- Release a new version of your code.
- Promote that new version of your code from environment to environment.