Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- IaC principles and their advantages for on-premises and hybrid environments
- Terraform overview: covering providers, resources, state, and lifecycle
- Installing Terraform, Azure CLI, and necessary tools
- Initial practical exercise: writing and applying a simple local Terraform configuration
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- HCL syntax, resources, attributes, and expressions
- Variables, outputs, locals, and type constraints
- Utilizing the Terraform CLI: init, plan, apply, destroy, and fmt
- Practical lab: building a parameterized configuration for an on-prem and an Azure resource
Module 3: Providers, Resources, and Azure Provider Fundamentals
- Understanding providers and configuring the AzureRM provider
- Mapping infrastructure to Terraform resources (networking, compute, storage)
- Managing Azure authentication and service principals for automated tasks
- Practical exercise: provisioning an Azure virtual network and a basic VM via Terraform
Module 4: State Management, Backends, and Collaboration
- Terraform state: purpose, format, and lifecycle considerations
- Remote backends using Azure Storage Account and state locking strategies
- Workspaces, environments, and team collaboration patterns
- 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, versioning, and registry patterns
- Folder structures, naming conventions, and maintaining repository organization
- Practical exercise: developing a reusable module for Azure VM + disk + network and testing it across environments
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Managing Azure Virtual Machines, Virtual Desktop components, and device lifecycle with Terraform
- Strategies for hybrid device management: linking on-prem resources with Azure-managed devices
- Integrating volumetric or device management systems via data sources and external providers
- Lab: deploying an Azure VM fleet representing operator units and configuring inventory tagging and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform with CI/CD platforms (GitHub Actions, Azure DevOps pipelines)
- Automating plan/apply processes with secure secrets and service principals
- Policy as Code basics (Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Practical exercise: creating a simple GitHub Actions workflow to plan and apply Terraform against a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Managing secrets: Azure Key Vault integration and preventing sensitive data in state files
- Access control, RBAC, and least privilege principles for automation accounts
- Drift detection, state reconciliation, and basic remediation techniques
- Checklist: backup, auditing, and governance for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and effectively interpreting plan diffs
- Unit and integration testing methods (terraform validate, tflint, kitchen-terraform)
- Common error patterns and resolution strategies
- Lab: running validation and linting tools and resolving identified issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: planning an on-prem + Azure device deployment using acquired patterns
- Implementing core components with modules, remote state, and CI/CD pipeline snippets
- Presenting the solution, discussing trade-offs, and reviewing the operations runbook
Summary and Next Steps
Requirements
- A grasp of fundamental networking and virtualization principles
- Proficiency with Windows or Linux command-line interfaces
- Foundational knowledge of cloud or on-premises infrastructure concepts
Target Audience
- System administrators and platform engineers
- DevOps practitioners starting their journey with Infrastructure as Code
- IT teams overseeing hybrid (on-prem + Azure) infrastructure
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