Introduction to the course
Examine the evolution of virtualization technologies from bare metal, virtual machines, and containers and the tradeoffs between them.
Install terraform and configure it to work with AWS
Learn the common terraform commands and how to use them
Use Terraform variables and outputs to improve make our configurations more flexible
Explore HCL language features in Terraform to create more expressive and modular infrastructure code.
Learn to break your code into modules to make it flexible and reuseable
Overview of two primary methods for managing multiple Terraform environments
Techniques for testing and validating Terraform code
Covers how teams generally work with Terraform, including automated deployment with CI/CD
Final words about the course
In this lesson, we will discuss the two primary approaches used for managing multiple environments with Terraform: workspaces and separate subdirectories.
When deploying a web application, you might want to have multiple environments such as production, staging, and development.
This helps in testing changes, ensuring that the configurations are similar across environments. There are two main approaches to manage multiple environments with Terraform:
We will discuss the pros and cons of each method to understand which approach is best for your use case.
Terraform Workspaces are a feature that allows you to break your Terraform state into separate configurations.
This allows you to manage multiple environments, each with their own unique portion of the state file.
terraform.workspace as an expression within your Terraform files to populate names of resources.
The alternative to using workspaces, is to define separate environments as separate directories within the filesystem. You have one directory (and its children) for each environment you plan to deploy.