Course Outline
Advanced Terraform Syntax and Constructs
- Deep dive into Terraform syntax
- Advanced loops with for_each and count
- Utilizing maps and lists for dynamic configurations
Expressions and Dynamic Configurations
- Basic expressions and their use cases
- Advanced expressions for complex infrastructure setups
- Practical exercises on expressions
Terraform Modules Best Practices
- Local vs shared modules: When to use each
- Structuring modules for reusability and maintainability
- Versioning and managing module sources
Terraform Best Practices and Patterns
- Review of instance index keys for state management
- Best practices for writing and organizing Terraform code
- Ensuring idempotency and minimizing side effects
Managing Terraform State
- Importing resources and understanding the state file
- State locking, state backends, and remote state management
- Handling state file in distributed environments
Keeping Up with Terraform Updates
- Reviewing documentation alongside new Terraform releases
- Strategies for upgrading Terraform versions
- Dealing with deprecations and migration paths
Integrating Terraform with CI/CD Pipelines
- Overview of YAML and pipeline configurations
- Setting up Terraform with popular CI/CD tools
- Automating Terraform workflows in pipelines
Advanced Troubleshooting and Debugging
- Systematic approaches to troubleshooting Terraform plans and applies
- Debugging common and advanced errors in Terraform
- Using logs and verbose output for error resolution
Outputs and Data Flow in Terraform
- Understanding and utilizing outputs in Terraform
- Data flow between modules and root configurations
- Securing sensitive information in outputs
Conditional Logic in Terraform
- Writing conditional statements with count, for_each, and if
- Conditional creation of resources
- Use cases for conditional logic in modules
Running Terraform Locally
- Setting up a local Terraform environment
- Running and testing Terraform code on local machines
- Local development best practices
Handling Circular Dependencies
- Identifying and resolving circular dependencies
- Refactoring code to prevent dependency cycles
- Advanced techniques for dependency management
Summary and Next Steps
Requirements
- An understanding of basic Terraform syntax and operations
- Experience with cloud infrastructure, preferably AWS, and familiarity with CI/CD concepts
Audience
- DevOps engineers
- Cloud architects
- Infrastructure specialists
- Technical leads and managers
Testimonials (2)
The structure was good, each section had a clear purpose and was easy enough to follow. The exercises were useful and the trainer was helpful when issues eventually arose. The relaxed approach regarding the labs was also something that I enjoyed. Props to the trainer for keeping a chill & friendly attitude throughout the training, even after some of the attendees gave up on the whole experience.
Rares - Orange Services
Course - Advanced Terraform: Efficient Infrastructure as Code
The flexibility of the trainer to adapt the knowledge sharing based on the group feedback or areas of intereset