Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- Concepts of IaC and their benefits for on-premises and hybrid environments
- Overview of Terraform: exploring providers, resources, state, and lifecycle management
- Installation of Terraform, Azure CLI, and other necessary tools
- Practical introduction: writing a simple Terraform configuration and applying it locally
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- HCL syntax, including resources, attributes, and expressions
- Working with variables, outputs, locals, and type constraints
- Using the Terraform CLI commands: init, plan, apply, destroy, and fmt
- Hands-on lab: building a parameterized configuration for both an on-premises resource and an Azure resource
Module 3: Providers, Resources, and Azure Provider Fundamentals
- Understanding providers and configuring the AzureRM provider
- Mapping physical and virtual infrastructure to Terraform resources across networking, compute, and storage
- Managing Azure authentication and service principals for automated workflows
- Hands-on exercise: provisioning an Azure virtual network and a simple VM using Terraform
Module 4: State Management, Backends, and Collaboration
- Understanding Terraform state: its purpose, format, and lifecycle considerations
- Configuring remote backends using Azure Storage Accounts and implementing state locking strategies
- Utilizing workspaces, environments, and collaboration patterns for team-based development
- Lab: setting up remote state in Azure Storage and executing a multi-user workflow
Module 5: Modularization, Reusability, and Best Practices
- Creating and consuming Terraform modules effectively
- Defining module inputs/outputs, versioning, and following registry patterns
- Establishing folder layouts, naming conventions, and maintainable repository structures
- Hands-on project: developing a reusable module for an Azure VM with disks and network, and testing it across different 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-premises resources with Azure-managed devices
- Integrating volumetric or device management systems through data sources and external providers
- Lab: deploying a fleet of Azure VMs representing operator units, and configuring inventory tagging and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform with CI/CD tools such as GitHub Actions and Azure DevOps pipelines
- Automating plan and apply processes while securing secrets and service principals
- Fundamentals of Policy as Code (using Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Hands-on task: creating a simple GitHub Actions workflow to plan and apply Terraform changes against a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Managing secrets through Azure Key Vault integration and preventing sensitive data from entering state files
- Implementing access control, RBAC, and least privilege principles for automation accounts
- Performing drift detection, state reconciliation, and basic remediation tasks
- Reviewing a checklist for backup, auditing, and governance of Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and effectively interpreting plan diffs
- Approaches to unit and integration testing using tools like terraform validate, tflint, and kitchen-terraform
- Identifying common error patterns and applying resolution strategies
- Lab: running validation and linting tools and fixing any issues discovered
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: planning a combined on-premises and Azure device deployment using learned 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 solid grasp of fundamental networking and virtualization concepts
- Comfort with Windows or Linux command-line interfaces
- Basic understanding of cloud or on-premises infrastructure architectures
Intended Audience
- System administrators and platform engineers
- DevOps practitioners starting their journey with Infrastructure as Code
- IT teams responsible for managing hybrid (on-premises + 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