Introduction to the course
Examine the evolution of virtualization technologies from bare metal, virtual machines, and containers and the tradeoffs between them.
•Evolution of Cloud Infrastructure
Install terraform and configure it to work with AWS
Learn the common terraform commands and how to use them
•Terraform Plan, Apply, Destroy
•Remote Backend Considerations
Use Terraform variables and outputs to improve make our configurations more flexible
•Variables and Outputs (Theory)
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
•Testing Terraform Code (Theory)
Covers how teams generally work with Terraform, including automated deployment with CI/CD
Final words about the course
Welcome to the Complete Terraform Course, designed for anyone looking to enhance their DevOps skills by adding Terraform to their toolkit!
This course assumes some basic familiarity with programming constructs and Amazon Web Services (AWS), but everything else will be covered.
Through a mix of theory and hands-on examples, you'll learn the fundamentals of Terraform and how to apply them in real-world scenarios!
Evolution of Cloud and Infrastructure as Code: Learn about the history of cloud infrastructure and the role of Infrastructure as Code (IaC) tools.
Terraform Overview and Set Up: Understand Terraform as a tool for building, changing, and versioning infrastructure safely and efficiently.
Basic Terraform Usage: Explore the basics of using Terraform with AWS.
Variables and Outputs: Dive into using variables and outputs in Terraform configurations.
HashiCorp Configuration Language (HCL) Features: Learn about HCL, the language used by Terraform, and discover its powerful features for managing cloud infrastructure.
Organizing Projects and Reusable Modules: Learn best practices for organizing Terraform projects and creating reusable modules for extensibility and applicability across different environments.
Managing Multiple Environments: Understand how to manage multiple environments, such as staging, development, and production, using Terraform.
Testing Infrastructure as Code Configurations: Discover techniques for testing your Infrastructure as Code configurations to ensure reliability and stability.
Developer Workflows and Automation: Explore various developer workflows and learn how to automate deployments using tools like GitHub Actions.
Throughout the course, we will reference an example architecture diagram for a basic web application using AWS services such as EC2 instances, Elastic Load Balancer, RDS database, S3 storage, and Route 53 for DNS. The examples will be based on AWS, but Terraform is not limited to AWS and can interact with other cloud providers and services with an API.
All the examples and course materials are available in a companion GitHub repository at:
The folder structure is organized according to the modules outlined above. Feel free to fork, clone, or modify the repository to follow along and apply the concepts as you learn.
You're now ready to dive into the course and level up your DevOps skills!
Good luck, and enjoy learning!