Purpose
This checklist verifies the steps to provision a new service with Terraform, from initial planning to production deployment. Run through every item before the production deployment.
Checklist
Planning
- Define the production-readiness criteria for the new service. (critical)
- Identify the resources to be managed (VPC, subnets, compute, storage, IAM, etc.). (critical)
Backend and credentials
- Create the state backend (S3 bucket, DynamoDB table, etc.) with versioning and encryption. (critical)
- Create the Terraform execution role with least-privilege permissions. (critical)
Configuration
- Write the configuration in a module, with a clear interface. (critical)
- Write the tests for the module (unit, plan, apply). (warn)
CI/CD
- Configure the CI/CD pipeline with the right gates. (critical)
Test
- Apply the configuration to a test environment. (critical)
- Verify the test environment meets the production-readiness criteria. (critical)
Production
- Apply the configuration to production in a maintenance window. (critical)
- Monitor the production environment for anomalies. (warn)
- Document the deployment in the change log. (critical)
Verification
The checklist is complete when every item is checked. A
critical item unchecked is a blocker.
Escalation
If a critical item cannot be satisfied, escalate to the engineering manager or the change manager.