Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- Core IaC concepts and their advantages for on-premises and hybrid environments
- Terraform overview: exploring providers, resources, state, and lifecycle management
- Installation of Terraform, Azure CLI, and other necessary tools
- Practical exercise: creating and applying a basic Terraform configuration locally
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- HCL syntax, resource definitions, attributes, and expression usage
- Working with variables, outputs, locals, and type constraints
- Navigating the Terraform CLI: init, plan, apply, destroy, and fmt commands
- Hands-on lab: developing a parameterized configuration for both an on-prem resource and an Azure resource
Module 3: Providers, Resources, and Azure Provider Fundamentals
- Understanding the role of providers and configuring the AzureRM provider
- Mapping infrastructure components to Terraform resources across networking, compute, and storage
- Managing Azure authentication and setting up service principals for automation tasks
- Practical application: provisioning an Azure virtual network and a basic VM via Terraform
Module 4: State Management, Backends, and Collaboration
- The purpose, format, and lifecycle considerations of Terraform state
- Implementing remote backends using Azure Storage Accounts and state locking strategies
- Utilizing workspaces and environments to support team collaboration patterns
- Lab session: 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 effectively
- Managing module inputs/outputs, versioning, and registry patterns
- Structuring folders, naming conventions, and maintaining a clean repository layout
- Hands-on: building a reusable module for Azure VM, disk, and network configurations, and testing it across different environments
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Overseeing Azure Virtual Machines, Virtual Desktop components, and device lifecycles via Terraform
- Strategies for hybrid device management: linking on-prem resources with Azure-managed devices
- Connecting volumetric or device management systems through data sources and external providers
- Lab: deploying a fleet of Azure VMs representing operator units, along with configuring inventory tagging and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform into CI/CD workflows using GitHub Actions or Azure DevOps pipelines
- Automating plan/apply processes with secured secrets and service principals
- Introduction to Policy as Code (using Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Practical session: developing a simple GitHub Actions workflow to plan and apply Terraform changes against a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Handling secrets via Azure Key Vault integration and preventing sensitive data exposure in state files
- Enforcing access control, RBAC, and least privilege principles for automation accounts
- Detecting drift, reconciling state, and applying basic remediation practices
- Reviewing a checklist for backup, auditing, and governance of Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Diagnosing Terraform configurations and interpreting plan diffs accurately
- Applying unit and integration testing methods using terraform validate, tflint, and kitchen-terraform
- Identifying common error patterns and effective resolution strategies
- Lab: running validation and linting tools to identify and correct issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design challenge: planning an on-prem + Azure device deployment using acquired patterns
- Implementing core components through modules, remote state, and CI/CD pipeline snippets
- Presenting the solution, analyzing trade-offs, and reviewing the operational runbook
Summary and Next Steps
Requirements
- A solid grasp of fundamental networking and virtualization principles
- Proficiency with the Windows or Linux command-line interface
- Foundational understanding of cloud and on-premises infrastructure concepts
Target Audience
- System administrators and platform engineers
- DevOps professionals starting their journey with Infrastructure as Code
- IT teams responsible for overseeing hybrid (on-prem + Azure) infrastructures
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