Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- IaC concepts and their advantages in on-premises and hybrid environments.
- Overview of Terraform: providers, resources, state, and lifecycle.
- Installation of Terraform, Azure CLI, and necessary supporting tools.
- Initial practical exercise: creating and applying a simple local Terraform configuration.
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- HCL syntax, resource definitions, attributes, and expressions.
- Variables, outputs, locals, and type constraints.
- Using the Terraform CLI: init, plan, apply, destroy, and fmt.
- Practical lab: building 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 infrastructure components (networking, compute, storage) to Terraform resources.
- Managing Azure authentication and service principals for automation.
- Practical exercise: provisioning an Azure virtual network and a basic VM using Terraform.
Module 4: State Management, Backends, and Collaboration
- Terraform state: purpose, structure, and lifecycle considerations.
- Remote backends using Azure Storage Accounts and state locking strategies.
- Workspaces, environments, and collaborative 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.
- Module inputs/outputs, versioning, and registry patterns.
- Folder structures, naming conventions, and maintaining a clean repository structure.
- Practical exercise: developing a reusable module for an Azure VM with disk and network configurations, then testing it across different environments.
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Managing 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 representing operator units, including inventory tagging and basic monitoring setup.
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform with CI/CD systems (GitHub Actions, Azure DevOps pipelines).
- Automating plan/apply processes with secure secrets and service principals.
- Policy as Code fundamentals (Sentinel or Open Policy Agent patterns) and pre-deployment checks.
- Practical exercise: creating a basic GitHub Actions workflow to plan and apply Terraform changes in a sandbox subscription.
Module 8: Security, Secrets, and Operational Practices
- Secrets management: Azure Key Vault integration and preventing sensitive data leakage 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 strategies for Terraform-managed infrastructure.
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and interpreting plan diffs effectively.
- Unit and integration testing methods (terraform validate, tflint, kitchen-terraform).
- Identifying common error patterns and applying resolution strategies.
- Lab: executing 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.
- Implementation of core components using modules, remote state, and CI/CD pipeline snippets.
- Presentation of the solution, discussion of trade-offs, and review of operational runbooks.
Summary and Next Steps
Requirements
- Foundational understanding of basic networking and virtualization concepts.
- Comfort with Windows or Linux command-line interfaces.
- Basic familiarity with cloud or on-premises infrastructure concepts.
Target Audience
- System administrators and platform engineers.
- DevOps professionals starting their journey with Infrastructure as Code.
- IT teams responsible for managing 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