Course Outline
Module 1: Foundations of Infrastructure as Code and Terraform
- Key IaC concepts and their advantages in on-premises and hybrid landscapes
- Terraform overview: exploring providers, resources, state management, and the resource lifecycle
- Setting up Terraform, Azure CLI, and other necessary utilities
- Initial practical exercise: creating and applying a simple Terraform configuration locally
Module 2: HashiCorp Configuration Language (HCL) and Core Configuration
- HCL syntax, resource definitions, attributes, and expression usage
- Utilizing variables, outputs, locals, and defining type constraints
- Navigating the Terraform CLI: init, plan, apply, destroy, and formatting commands
- Practical lab: constructing a parameterized configuration for both an on-premises resource and an Azure resource
Module 3: Providers, Resources, and Azure Provider Essentials
- Understanding provider roles and configuring the AzureRM provider
- Mapping physical infrastructure to Terraform resources (networking, compute, and storage)
- Handling Azure authentication and service principals for automated workflows
- Practical exercise: provisioning an Azure virtual network and a basic virtual machine via Terraform
Module 4: State Management, Backends, and Team Collaboration
- Terraform state: understanding its purpose, file format, and lifecycle impacts
- Configuring remote backends using Azure Storage Accounts and implementing state locking strategies
- Managing workspaces, environments, and establishing effective collaboration patterns for teams
- Practical lab: setting up remote state in Azure Storage and executing a multi-user workflow
Module 5: Modularization, Reusability, and Best Practices
- Developing and integrating Terraform modules
- Managing module inputs/outputs, version control, and registry utilization patterns
- Establishing folder structures, naming standards, and maintainable repository architectures
- Practical exercise: building a reusable module for an Azure VM with disk and network configurations and testing it across different environments
Module 6: Managing Azure Virtual Devices and On-Premises 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
- Incorporating volumetric or device management systems through data sources and external providers
- Practical 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
- Connecting Terraform with CI/CD systems (such as GitHub Actions and Azure DevOps pipelines)
- Automating plan/apply processes using secured secrets and service principals
- Introduction to Policy as Code (using Sentinel or Open Policy Agent patterns) and pre-deployment validation
- Practical exercise: developing a basic GitHub Actions workflow to plan and apply Terraform configurations against a sandbox subscription
Module 8: Security, Secrets, and Operational Best Practices
- Secret management: integrating Azure Key Vault and preventing sensitive data exposure in state files
- Implementing access controls, RBAC, and the principle of least privilege for automation accounts
- Techniques for drift detection, state reconciliation, and basic remediation procedures
- Checklist review: backup strategies, auditing, and governance for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and interpreting plan diffs effectively
- Approaches to unit and integration testing (using terraform validate, tflint, and kitchen-terraform)
- Identifying common error patterns and applying resolution strategies
- Practical lab: executing validation and linting tools to identify and resolve discovered issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: planning an on-premises and Azure device deployment using previously learned patterns
- Implementing core components using modules, remote state, and CI/CD pipeline snippets
- Presenting the solution, discussing architectural trade-offs, and reviewing the operational runbook
Conclusion and Future Steps
Requirements
- A foundational grasp of basic networking and virtualization principles
- Comfort with Windows or Linux command-line interfaces
- General awareness of cloud or on-premises infrastructure concepts
Target Audience
- System administrators and platform engineers
- DevOps professionals beginning their journey with Infrastructure as Code
- IT teams responsible for managing hybrid (on-prem + Azure) infrastructure stacks
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