Course Outline
Module 1: Foundations of Infrastructure as Code and Terraform
- The principles of IaC and its advantages in on-premises and hybrid settings
- An overview of Terraform: exploring providers, resources, state, and the resource lifecycle
- Setting up Terraform, Azure CLI, and other necessary utilities
- Practical exercise: Writing and locally applying a basic Terraform configuration
Module 2: Mastering HashiCorp Configuration Language (HCL) and Core Configurations
- HCL syntax, resource definitions, attributes, and expressions
- Utilizing variables, outputs, locals, and type constraints
- Navigating 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 the Azure Provider
- Understanding provider roles and configuration, specifically the AzureRM provider
- Mapping real-world infrastructure (networking, compute, storage) to Terraform resources
- Configuring 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 Team Collaboration
- The role of Terraform state, its format, and lifecycle implications
- Implementing remote backends using Azure Storage Accounts and state locking strategies
- Managing workspaces, environments, and establishing collaboration patterns for teams
- Lab: Configuring 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 integration patterns
- Establishing effective folder layouts, naming conventions, and maintainable repository structures
- Hands-on: Building a reusable module for an Azure VM with associated disk and network resources, then testing 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 through data sources and external providers
- Lab: Deploying a fleet of Azure VMs representing operator units, complete with inventory tagging and basic monitoring
Module 7: CI/CD Integration, Automation, and Deployment Pipelines
- Connecting Terraform with CI/CD platforms (such as GitHub Actions and Azure DevOps pipelines)
- Automating plan and apply processes using secured secrets and service principals
- Introducing Policy as Code basics (using Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Hands-on: Developing a GitHub Actions workflow to plan and apply Terraform changes against a sandbox subscription
Module 8: Security, Secrets Management, and Operational Excellence
- Handling secrets through Azure Key Vault integration and preventing sensitive data leakage in state files
- Implementing access control, RBAC, and least-privilege principles for automation accounts
- Performing drift detection, state reconciliation, and basic remediation
- 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 (utilizing terraform validate, tflint, and kitchen-terraform)
- Identifying common error patterns and strategies for resolution
- Lab: Running validation and linting tools to identify and fix discovered issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: Planning an on-prem + Azure device deployment using the patterns learned
- 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 principles
- Proficiency with either the Windows or Linux command-line interface
- A basic understanding of cloud or on-premises infrastructure architecture
Intended Audience
- System administrators and platform engineers
- DevOps practitioners embarking on their IaC journey
- IT teams responsible for managing hybrid infrastructure (on-prem + Azure)
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