Course Outline
Terraform Core Concepts Review
- The CLI and all available sub-commands
- The flow of Terraform operations
- State and its importance (as well as fragility)
- Hashicorp Configuration Language (HCL), pre 0.12 and post 0.12
Designing More Complex Terraform Projects and Modules
- Approaches to Modularization
- Single-project, multi-module scenarios
- Multi-project related infrastructure, single and hybrid cloud or platform
- Root module decomposition
- Working with new and legacy monolithic projects alike, approaches to thoughtful Terraform project organization
Developing and Managing More Complex Terraform Projects and Modules
- Comprehensive best practices
- Module versions
- Share and focus on DRY
- Complex provider scenarios across projects and modules
- Introduce Terraform Null Label and its utility
An Introduction to Make + Makefile
- Automate repetitive tasks in Terraform projects using a reliable, standard linux tool
Advanced Terraform tool and CLI understanding
- Understand state and the state file
- State migration, management in complex scenarios
- Terraform import approaches in complex scenarios
- Approach mistakes and messes
- Drift that's gotten out of hand
- Corrupted or irreparable state
- Know what can't be fixed
- Proactively ensure that you don't end up in this position with Terraform
HCL Advanced Topics
- Advanced configuration language expression features:
- Re-usability approaches
- Loops, meta-arguments
- For expressions
- Types in the context of expressions
Hardening Security for Terraform
- Shift left Terraform security, defense in depth
- State files and security
- Manage credentials and secrets: least privilege, rotation, protection
- Where and how security can break down in Terraform workflows
Reliability of Infrastructure and Testing
- What automated and manual testing frameworks and methods are available currently?
- The current state of affairs leaves a lot to be desired, e.g. terratest
- Drift and mitigate unexpected consequences in realistic scenarios
- Developer responsibility vs automated testing, git hooks for validation, terraform-pre-commit, etc.
Automating Terraform, Terraform in Pipelines
- Terraform with Spinnaker
- Use automated delivery pipelines to improve quality assurance, stability, and reliability of infrastructure and Terraform deployments
- Terraform and GitOps: approaches to adopting GitOps in Terraform workflows
- Terraform Cloud and Enterprise overview, a look at how these offerings improve Terraform workflows and what other tools/processes exist out there to serve the same need: custom CI/CD pipelines for Terraform, tools like Atlantis, etc.
Complex AWS infrastructure with Terraform
- Designing and deploying VPCs with 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 Next Steps
Requirements
- An understanding of cloud infrastructure concept
- Basic experience in 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.