Well-Architected Framework
Define your container orchestration
Before you can automate container orchestration processes, you need to clearly define what container orchestration platforms and configurations you need. Using infrastructure as code to define your container orchestration creates consistent, version-controlled specifications for platforms like Kubernetes and Nomad.
Define orchestration with Terraform
Terraform can provision, configure, and manage container orchestration systems. These systems range from self-managed orchestrators like Nomad and Kubernetes to cloud-managed services like AWS ECS, EKS, GKE, and AKS.
We recommend separating the configuration to deploy and configure the orchestrator from the configuration to deploy services to the orchestrator. For example, define your Kubernetes or Nomad cluster infrastructure in one configuration and define applications and services that run on the orchestrator in a different configuration. This separation provides better organization, clearer responsibilities, and easier maintenance.
Customize container orchestration configuration and tooling across your environments. For development, define development Kubernetes/Nomad clusters, configure development-specific resource limits and scaling, and set up development namespace and access controls. For staging, define staging orchestration infrastructure, configure staging-specific testing and validation, and set up staging environment promotion processes. For production, define production orchestration infrastructure, configure production-specific security and compliance, and set up production deployment and scaling policies.
Next steps
In this section of Codify infrastructure and tools, you learned how to define your container orchestration platforms using infrastructure as code to establish consistent container management processes. Define your container orchestration is part of the Define and automate processes pillar.
If you are interested in learning more about container orchestration with Terraform, you can check out the following resources:
- List of container orchestration providers in the Terraform Registry
- Tutorials to manage Kubernetes with Terraform
- Deploy cloud native Kubernetes: EKS, AKS, and GKE