Managing AWS Infrastructure with Terraform (TERRAFORMAWS) – Outline

Detailed Course Outline

Part 1: Establishing goals and as-is state for Terraform on your teams

We will spend most of day one facilitating discussion among your teams on current use cases of Terraform, where it has worked well (if you’ve used it) and what the desired outcomes are for progressing adoption and usage of Terraform.

  • Infrastructure as code best practices
  • The DevOps tie-in
  • Enabling the developer role
  • Enabling the operator role
  • Other roles that can benefit from using Terraform

Breakout group: Framing Terraform as an enterprise tool

Group discussion of the value streams and product impacts which can be expected from progressing the adoption and usage of Terraform on your teams. How to align an organization to the value stream using Terraform features and integration.

Part 2: Setting up machines and scripting for Terraform usage

During this segment of the workshop, we will begin getting hands-on with Terraform in your own environment and mapping how it will be used. Along the way, your consultant will review fundamentals, including basic engineering patterns and common vocabulary everyone should be using.

  • The Terraform console
  • Understanding Terraform and architecture patterns
  • Syntax
  • Variables
  • Managing Terraform resources

Part 3: Terraform Modules

This section of the workshop focuses on modules and how they are used. We will use this section to transition into container usage and how

  • Introducing modules
  • Root modules
  • Container modules
  • Image modules

Breakout group: Understanding your teams’ Docker and Kubernetes environment

This breakout session is designed to produce a version one map for how Terraform will integrate with existing “DevOps flavored” tools your teams may already be using, chiefly Docker and Kubernetes. During this session, your teams will produce an agreed-upon plan for how containers are treated when using Terraform and which roles the respective tools will play.

Part 4: Sandboxing Terraform

Now that we have established a basic understanding of the use cases where we want to integrate Terraform, we will play with it in AWS. Led by your facilitator, participants will use common features of Terraform to simulate the types of use cases their teams are likely to encounter after the workshop is over.

  • Running Terraform in our AWS test environment
  • Setting up storage and application architecture
  • Networking with Terraform
  • Template files
  • Using Terraform with your data

Part 5: Terraform and your own teams’ applications

This final segment of the workshop provides guidance from our engineering consultant as we prioritize your teams’ next steps and come to an agreement on the most immediately available value Terraform offers on your teams. We will provide some talking points, but the priority is to use the remaining workshop time to coach your teams on technical and process obstacles we’ve identified.

  • Terraform and your infrastructure
  • Automation with Terraform
  • Versioning with Terraform
  • Terraform challenges
  • Internal obstacles to maturing your Terraform integration
  • Conclusion and charting your course