Course Outline
Module 1: Overview of Infrastructure as Code and Terraform
- IaC principles and their advantages for on-premises and hybrid environments
- Terraform introduction: providers, resources, state management, and lifecycle
- Installation of Terraform, Azure CLI, and necessary tools
- Practical start: creating and applying a basic Terraform configuration locally
Module 2: HashiCorp Configuration Language (HCL) and Core Configurations
- HCL syntax, resource definitions, attributes, and expressions
- Use of variables, outputs, locals, and type constraints
- Terraform CLI operations: init, plan, apply, destroy, and fmt
- Lab exercise: developing a parameterized setup for both an on-prem resource and an Azure resource
Module 3: Providers, Resources, and Azure Provider Essentials
- Concept of providers and setting up the AzureRM provider
- Translating infrastructure into Terraform resources (networking, compute, storage)
- Handling Azure authentication and service principals for automated tasks
- Practical task: deploying an Azure virtual network and a basic VM via Terraform
Module 4: State Management, Backends, and Team Collaboration
- Terraform state: its function, structure, and lifecycle implications
- Utilizing remote backends via Azure Storage Account and strategies for state locking
- Managing workspaces, environments, and collaborative workflows for teams
- Lab: setting up remote state in Azure Storage and executing a multi-user workflow
Module 5: Modularization, Reusability, and Best Practices
- Creating and utilizing Terraform modules
- Module inputs, outputs, version control, and registry standards
- Organizing folder structures, naming conventions, and maintainable repository layouts
- Practical task: building a reusable module for an Azure VM, disk, and network, and testing it across various environments
Module 6: Managing Azure Virtual Devices and On-Premise Integration
- Controlling Azure Virtual Machines, Virtual Desktop elements, and device lifecycles through Terraform
- Strategies for hybrid device management: linking on-prem resources with Azure-managed devices
- Incorporating volume or device management systems via data sources and external providers
- Lab: deploying a fleet of Azure VMs representing operator units, and setting up inventory tags and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Connecting Terraform with CI/CD platforms (GitHub Actions, Azure DevOps pipelines)
- Automating plan/apply processes using secure secrets and service principals
- Basics of Policy as Code (Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Practical task: developing a basic GitHub Actions workflow to plan and apply Terraform changes to a sandbox subscription
Module 8: Security, Secrets, and Operational Standards
- Secrets management: integrating Azure Key Vault and preventing sensitive data in state files
- Implementing access control, RBAC, and least privilege for automated accounts
- Drift detection, state reconciliation, and initial remediation techniques
- Operational checklist: backup, auditing, and governance for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and effectively interpreting plan differences
- Unit and integration testing methods (terraform validate, tflint, kitchen-terraform)
- Identifying common error patterns and resolving them
- Lab: executing validation and linting tools and correcting any identified issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design challenge: planning an on-prem + Azure device deployment using acquired patterns
- Implementing core elements using modules, remote state, and CI/CD pipeline snippets
- Presenting the solution, discussing trade-offs, and reviewing the operations runbook
Summary and Future Directions
Requirements
- A foundational grasp of networking and virtualization principles
- Comfort with Windows or Linux command-line interfaces
- Basic awareness of cloud or on-premises infrastructure frameworks
Target Audience
- System administrators and platform engineers
- DevOps professionals starting their journey with Infrastructure as Code
- IT teams overseeing hybrid infrastructure (on-prem + Azure)
Testimonials (3)
pacing for the most part was fantastic. Michal was very good at ensuring the audience were engaged and ensured everyone was following along for the most part
Asif Shaikh - Carpmaels & Ransford
Course - Terraform on Microsoft Azure
Checking all the details in practice - by writing real code
Michal Pipala - EY
Course - Advanced Terraform: Efficient Infrastructure as Code
the instructor was very well prepared