Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- IaC concepts and their advantages for on-premises and hybrid environments
- Terraform overview: exploring providers, resources, state, and lifecycle
- Installation of Terraform, Azure CLI, and essential auxiliary tools
- Practical introduction: writing and locally applying a simple Terraform configuration
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- HCL syntax, defining resources, attributes, and expressions
- Utilizing variables, outputs, locals, and type constraints
- Operating the Terraform CLI: init, plan, apply, destroy, and fmt
- Practical lab: constructing a parameterized configuration for both an on-prem resource and an Azure resource
Module 3: Providers, Resources, and Azure Provider Fundamentals
- Understanding providers and configuring the AzureRM provider
- Translating infrastructure into Terraform resources (networking, compute, storage)
- Managing Azure authentication and service principals for automated workflows
- Practical exercise: provisioning an Azure virtual network and a basic VM via Terraform
Module 4: State Management, Backends, and Collaboration
- Terraform state: examining purpose, format, and lifecycle implications
- Setting up remote backends using Azure Storage Account and applying state locking strategies
- Managing workspaces, environments, and fostering team collaboration patterns
- Lab: configuring remote state in Azure Storage and executing multi-user workflows
Module 5: Modularization, Reusability, and Best Practices
- Creating and utilizing Terraform modules
- Managing module inputs/outputs, versioning, and registry strategies
- Establishing folder layouts, naming conventions, and maintainable repository structures
- Practical lab: developing a reusable module for an Azure VM + disk + network and testing it across different environments
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Overseeing Azure Virtual Machines, Virtual Desktop components, and device lifecycles through Terraform
- Patterns 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, including inventory tagging and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform with CI/CD systems (GitHub Actions, Azure DevOps pipelines)
- Automating plan/apply processes with secured secrets and service principals
- Policy as Code fundamentals (Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Practical exercise: building a simple GitHub Actions workflow to plan and apply Terraform in a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Securing sensitive data: Azure Key Vault integration and preventing leakage in state files
- Implementing access control, RBAC, and least privilege for automation accounts
- Drift detection, state reconciliation, and basic remediation techniques
- Checklist: ensuring backup, auditing, and governance for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and interpreting plan diffs effectively
- Unit and integration testing approaches (terraform validate, tflint, kitchen-terraform)
- Identifying common error patterns and applying resolution strategies
- Lab: running validation and linting tools to identify and fix issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: planning an on-prem + Azure device deployment using acquired patterns
- Implementing core components using modules, remote state, and CI/CD pipeline snippets
- Presenting the solution, discussing trade-offs, and reviewing the operational runbook
Summary and Next Steps
Requirements
- A foundational grasp of basic networking and virtualization principles
- Proficiency with Windows or Linux command-line interfaces
- Essential knowledge of cloud or on-premises infrastructure architectures
Target Audience
- System administrators and platform engineers
- DevOps practitioners starting their journey with Infrastructure as Code
- IT teams responsible for managing hybrid (on-prem + Azure) infrastructures
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