rights reserved. What this looks like with Terraform App VPC EKS Cluster, services and add-ons EKS Cluster Services & add-ons App Pods Dev (us-east-1) App VPC EKS Cluster, services and add-ons EKS Cluster Services & add-ons App Pods Prod (us-east-1)
rights reserved. project-hashibank-dev - hashibank-networking - hashibank-k8s-cluster - hashibank-k8s-services - hashibank-web-app p p p p p p p p p p p p a a a a a a Time project-hashibank-prod-dr - hashibank-networking - hashibank-k8s-cluster - hashibank-k8s-services - hashibank-web-app project-hashibank-prod - hashibank-networking - hashibank-k8s-cluster - hashibank-k8s-services - hashibank-web-app 12 workspaces to manage a single application Common challenges at scale
rights reserved. Deployment use cases Platform resources ❖ Many accounts ❖ Many regions ❖ Common resources ❖ Prefers consistency ❖ Large targets ❖ High-level abstraction Workload resources ❖ Select accounts ❖ Select regions ❖ Specific resources ❖ Prefers ordering ❖ Selected targets ❖ High degree of control
rights reserved. Declarative deployments deployment "my_multi_region_app" { inputs = { regions = ["us-east-1", "us-west-2", "us-east-2"] count = 2 ... } } What if I could declare the deployments using HCL itself ? us-east-1 us-west-2 us-east-2
rights reserved. New approach to provision and manage New layer of HCL configuration Standard Terraform Modules Optimize the coordination, provisioning, and management of dependent Terraform configurations Built on top of existing modules Written as code
rights reserved. New approach to provision and manage Standard Terraform Modules Optimize the coordination, provisioning, and management of dependent Terraform configurations Built on top of existing modules Written as code New syntax allows easily creating identical and grouped infrastructure
rights reserved. Key concepts Deployments Components Regular Terraform modules for resources that share the same lifecycle Deployments Used to repeat the components in the Stack
rights reserved. Auto-approved Auto-approved Auto-approved Key concepts Components Regular Terraform modules for resources that share the same lifecycle Deployments Used to repeat the components in the Stack Orchestration Rules to automate repetitive actions such as approving an execution plan
rights reserved. Users Terraform Make a config change Return “plan part 1” Apply “plan part 1” Return “plan part 2” Apply “plan part 2” Success! Key concepts Deferred changes Produce partial plan when it encounters too many unknown values. Streamline deployment with complex resources dependencies.
rights reserved. Example 1: Platform infrastructure Permission Sets IAM Role VPC Deployment 012345678912 Permission Sets IAM Role VPC Deployment 432187652109 Permission Sets IAM Role VPC Deployment 987654321021 Auto-approved
rights reserved. Demo recap P L A T F O R M I N F R A S T R U C T U R E Permission Sets IAM Role VPC Deployment Account 1 Permission Sets IAM Role VPC Deployment Account 2 Permission Sets IAM Role VPC Deployment Account 3 Permission Sets IAM Role VPC Deployment Account n . . . . Terraform Stacks are a great way to represent a well-defined, repeating infrastructure at scale Scale
rights reserved. Demo recap A P P L I C A T I O N W O R K L O A D K8s RBAC EKS Cluster VPC K8s Addons K8s Namespace App Pods Deployment Prod K8s RBAC EKS Cluster VPC K8s Addons K8s Namespace App Pods Deployment Dev K8s RBAC EKS Cluster VPC K8s Addons K8s Namespace App Pods Deployment DR Time With a single Terraform Stack we orchestrate three instances of Kubernetes workloads
rights reserved. Scalability Allow for the ability to codify business rules around environment based approval flows using plan context Improved Visibility Provides a consolidated view across environments with components and deployment status Consolidation Gracefully manages dependencies so that you don’t have to Operational efficiency with Terraform Stacks
rights reserved. Infrastructure Infrastructure as code to build, deploy and manage the lifecycle of infrastructure and applications. Nomad Scheduling and orchestration Automated developer services Waypoint Packer Build and manage images as code Terraform Infrastructure as code provisioning WORKFLOW AUTOMATION SYSTEM OF RECORD LIFECYCLE MANAGEMENT Maximize your infrastructure investments