Course Outline
Terraform Core Concepts Review
- The CLI and its full suite of sub-commands
- The operational workflow of Terraform
- State management: its critical importance and inherent fragility
- HashiCorp Configuration Language (HCL), covering versions before and after 0.12
Designing Complex Terraform Projects and Modules
- Strategies for modularization
- Single-project, multi-module configurations
- Related infrastructure across multiple projects in single or hybrid cloud platforms
- Decomposing root modules
- Approaches to organizing new and legacy monolithic projects thoughtfully
Building and Managing Complex Terraform Projects and Modules
- In-depth best practices
- Managing module versions
- Emphasizing and applying DRY (Don't Repeat Yourself) principles
- Handling complex provider scenarios across different projects and modules
- Introduction to the Terraform Null resource and its practical applications
Introduction to Make and Makefiles
- Automating repetitive Terraform tasks using standard, reliable Linux tooling
Advanced Terraform Tooling and CLI Proficiency
- Deep dive into state and state files
- State migration and management in complex environments
- Terraform import strategies for intricate scenarios
- Addressing errors and complications
- Managing severe configuration drift
- Handling corrupted or unrecoverable state
- Understanding limitations and unfixable issues
- Proactive measures to prevent such situations in Terraform
Advanced HCL Topics
- Advanced configuration language expression features:
- Approaches to reusability
- Loops and meta-arguments
- For expressions
- Data types in the context of expressions
Enhancing Terraform Security
- Shifting security left and implementing defense in depth
- Securing state files
- Managing credentials and secrets via least privilege, rotation, and protection strategies
- Identifying potential security breakdowns within Terraform workflows
Infrastructure Reliability and Testing
- Overview of available automated and manual testing frameworks and methods
- Current landscape and tools, such as terratest
- Mitigating drift and unexpected outcomes in realistic scenarios
- Balancing developer responsibility with automated testing, utilizing git hooks, terraform-pre-commit, and similar tools
Automating Terraform and Integration with Pipelines
- Integrating Terraform with Spinnaker
- Using automated delivery pipelines to enhance QA, stability, and reliability
- Terraform and GitOps: strategies for adopting GitOps in Terraform workflows
- Overview of Terraform Cloud and Enterprise, evaluating how these offerings improve workflows, and exploring alternative tools and processes such as custom CI/CD pipelines and Atlantis
Complex AWS Infrastructure with Terraform
- Designing and deploying VPCs using Terraform
- Managing EC2 instances and other compute resources
- Configuring AWS networking components
- Integrating various AWS services into Terraform-managed infrastructure
- Implementing security best practices for AWS resources
Summary and Next Steps
Requirements
- A solid grasp of cloud infrastructure concepts
- Foundational experience with Terraform operations
Audience
- DevOps engineers
- System administrators
- System architects
Testimonials (6)
The trainer was very knowledgeable and easy to talk to, he helped with troubleshooting issues for some of the participants and answered all the questions. Course material was good and had a lot of examples.
Vlad
Course - Advanced Terraform - 3 Days
I liked the fact that the trainer was willing to help us on the debugging side.
Diana
Course - Advanced Terraform - 3 Days
I liked it very much, I appreciate the fact that Vicenzo took the time to answer all the questions and troubleshoot the existing error messages
Mihai
Course - Advanced Terraform - 3 Days
The subjects that were brought were interesting.
Razvan
Course - Advanced Terraform - 3 Days
Vincenzo provided support to troubleshoot different scenarios and also helped with examples.
Stelian
Course - Advanced Terraform - 3 Days
It clarified some of the things I didn't know about terraform.