Course Outline
Review of Terraform Core Concepts
- Command-line interface (CLI) and all available sub-commands
- The execution flow of Terraform operations
- State management: its critical importance and inherent fragility
- HashiCorp Configuration Language (HCL): features and changes from pre-0.12 to post-0.12 versions
Designing Advanced Terraform Projects and Modules
- Strategies for Modularization
- Scenarios involving single projects with multiple modules
- Managing related infrastructure across multiple projects, whether in single cloud, hybrid, or multi-platform environments
- Decomposing root modules
- Effective organization strategies for both new and legacy monolithic projects
Building and Managing Complex Terraform Projects and Modules
- In-depth industry best practices
- Managing module versions
- Applying DRY (Don't Repeat Yourself) principles to share logic
- Handling complex provider configurations across different projects and modules
- Introduction to Terraform Null Resource and its practical applications
Introduction to Make and Makefiles
- Leveraging Make, a reliable standard Linux utility, to automate repetitive tasks within Terraform projects
Advanced Understanding of Terraform Tools and CLI
- In-depth analysis of state and the state file structure
- State migration and management strategies for complex scenarios
- Effective Terraform import techniques in challenging situations
- Handling Errors and Unmanaged Changes
- Managing significant drift
- Addressing corrupted or unrecoverable state
- Identifying irreversible issues
- Proactive measures to prevent critical Terraform failures
Advanced HCL Topics
- Advanced expression language features:
- Strategies for code re-usability
- Implementation of loops and meta-arguments
- Usage of for expressions
- Working with data types in the context of expressions
Enhancing Terraform Security
- Shift-left security practices and defense-in-depth strategies
- Securing state files
- Managing credentials and secrets: enforcing least privilege, rotation, and protection protocols
- Identifying potential security vulnerabilities within Terraform workflows
Infrastructure Reliability and Testing
- Evaluating current automated and manual testing frameworks and methods
- Reviewing the current landscape and limitations, including tools like Terratest
- Detecting drift and mitigating unexpected outcomes in realistic scenarios
- Defining developer responsibilities vs. automated checks, utilizing Git hooks, terraform-pre-commit, and similar validation tools
Automating Terraform and Integration into Pipelines
- Integrating Terraform with Spinnaker
- Using automated delivery pipelines to enhance quality assurance, stability, and reliability of infrastructure deployments
- Adopting GitOps: strategies for integrating GitOps into Terraform workflows
- Overview of Terraform Cloud and Enterprise: evaluating how these offerings optimize workflows and comparing them with alternative solutions such as custom CI/CD pipelines and tools like Atlantis
Building Complex AWS Infrastructure with Terraform
- Designing and deploying VPCs using Terraform
- Managing EC2 instances and other compute resources
- Configuring AWS networking components
- Integrating AWS services into Terraform-managed infrastructure
- Implementing security best practices for AWS resources
Summary and Recommended Next Steps
Requirements
- A solid understanding of cloud infrastructure concepts
- Familiarity with basic Terraform operations
Target 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.