Course Outline
Module 1: Overview of Infrastructure as Code and Terraform
- IaC concepts and their advantages in on-premises and hybrid settings
- Terraform architecture: providers, resources, state, and lifecycle management
- Installation of Terraform, Azure CLI, and necessary dependencies
- Practical exercise: creating and applying a basic Terraform configuration locally
Module 2: HashiCorp Configuration Language (HCL) and Core Configuration
- HCL syntax, resource definitions, attributes, and expressions
- Working with variables, outputs, locals, and type constraints
- Terraform CLI essentials: init, plan, apply, destroy, and fmt commands
- Hands-on lab: constructing a parameterized configuration for both on-premises and Azure resources
Module 3: Providers, Resources, and Azure Provider Basics
- Concepts of providers and configuring the AzureRM provider
- Mapping infrastructure components (networking, compute, storage) to Terraform resources
- Handling Azure authentication and service principals for automated tasks
- Exercise: provisioning an Azure virtual network and a basic VM via Terraform
Module 4: State Management, Backends, and Team Collaboration
- The role, structure, and lifecycle of Terraform state
- Implementing remote backends using Azure Storage Accounts and state locking strategies
- Utilizing workspaces, environments, and collaboration models 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
- Defining module inputs/outputs, versioning, and registry usage patterns
- Establishing folder structures, naming conventions, and maintainable repository layouts
- Exercise: developing a reusable module for an Azure VM with disk and network, and testing it across 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
- Integrating volumetric or device management systems using data sources and external providers
- Lab: deploying a fleet of Azure VMs representing operator units, along with inventory tagging and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform with CI/CD systems (GitHub Actions, Azure DevOps pipelines)
- Automating plan/apply processes using secured secrets and service principals
- Basics of Policy as Code (Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Exercise: building a GitHub Actions workflow to plan and apply Terraform to a sandbox subscription
Module 8: Security, Secrets, and Operational Standards
- Securing sensitive data: Azure Key Vault integration and preventing exposure in state files
- Implementing access control, RBAC, and least privilege principles for automation accounts
- Detecting drift, reconciling state, and basic remediation workflows
- Checklist for backup, auditing, and governance of 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 and correcting identified issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design task: planning an on-premises and Azure device deployment using learned 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 the operational runbook
Conclusion and Future Learning Paths
Requirements
- A solid grasp of fundamental networking and virtualization principles
- Proficiency in using Windows or Linux command-line interfaces
- Basic familiarity with cloud or on-premises infrastructure concepts
Target Audience
- System administrators and platform engineers
- DevOps professionals new to 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