Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- IaC concepts and their advantages for on-premises and hybrid setups
- Overview of Terraform: exploring providers, resources, state, and the lifecycle
- Installation of Terraform, Azure CLI, and prerequisite tools
- Practical exercise: writing and applying a simple local Terraform configuration
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- HCL syntax, resource definitions, attributes, and expressions
- Working with variables, outputs, locals, and type constraints
- Mastering the Terraform CLI: init, plan, apply, destroy, and fmt commands
- Hands-on lab: constructing a parameterized configuration for both on-prem and Azure resources
Module 3: Providers, Resources, and Azure Provider Fundamentals
- Understanding providers and configuring the AzureRM provider
- Mapping real-world infrastructure (networking, compute, storage) to Terraform resources
- 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
- The role, format, and lifecycle of Terraform state
- Implementing remote backends using Azure Storage Accounts and state locking strategies
- Utilizing workspaces, environments, and collaboration patterns 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
- Managing module inputs/outputs, versioning, and registry patterns
- Establishing folder layouts, naming conventions, and maintainable repository structures
- Hands-on: building a reusable module for Azure VMs with disks and networks, and testing it across environments
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Controlling Azure Virtual Machines, Virtual Desktop components, and device lifecycles via Terraform
- Strategies for hybrid device management: linking on-prem resources with Azure-managed devices
- Integrating volumetric or device management systems using data sources and external providers
- Lab: deploying a fleet of Azure VMs to represent operator units, including inventory tagging and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Connecting Terraform to CI/CD platforms like GitHub Actions and Azure DevOps pipelines
- Automating plan/apply processes with secured secrets and service principals
- Introduction to Policy as Code (Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Hands-on: building a simple GitHub Actions workflow to plan and apply Terraform to a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Handling secrets: integrating Azure Key Vault and preventing sensitive data leakage in state files
- Implementing access control, RBAC, and least-privilege principles for automation accounts
- Techniques for drift detection, state reconciliation, and basic remediation
- Operational checklist: 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 methods using terraform validate, tflint, and kitchen-terraform
- Identifying common error patterns and developing resolution strategies
- Lab: executing validation and linting tools to identify and fix configuration issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: planning an on-prem + Azure device deployment using acquired patterns
- Implementation of core components using modules, remote state, and CI/CD pipeline snippets
- Presentation of the solution, discussion of trade-offs, and review of the operations runbook
Summary and Next Steps
Requirements
- A solid grasp of fundamental networking and virtualization principles
- Comfort with navigating Windows or Linux command-line interfaces
- Foundational 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 maintaining 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