Course Outline
Module 1: Foundational Concepts of Infrastructure as Code and Terraform
- IaC principles and their advantages for on-premises and hybrid settings
- Overview of Terraform components: providers, resources, state, and lifecycle
- Installation of Terraform, Azure CLI, and prerequisite tools
- Initial practical exercise: creating and applying a basic local Terraform configuration
Module 2: Essentials of HashiCorp Configuration Language (HCL) and Configuration
- HCL syntax structure, including resources, attributes, and expressions
- Implementation of variables, outputs, locals, and type constraints
- Navigating the Terraform CLI: init, plan, apply, destroy, and fmt commands
- Practical lab: constructing a parameterized configuration for both an on-premises resource and an Azure resource
Module 3: Core Principles of Providers, Resources, and the Azure Provider
- Understanding the role of providers and configuring the AzureRM provider
- Mapping infrastructure components (networking, compute, storage) to Terraform resources
- Managing Azure authentication and service principals for automated tasks
- Practical exercise: provisioning an Azure virtual network and a basic VM using Terraform
Module 4: State Management, Backend Configuration, and Team Collaboration
- The purpose, structure, and lifecycle implications of Terraform state
- Configuring remote backends using Azure Storage Accounts and implementing state locking strategies
- Utilizing workspaces and environments to foster collaborative team patterns
- Laboratory task: 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
- Defining module inputs and outputs, managing versions, and following registry patterns
- Establishing logical folder structures, naming conventions, and maintainable repository layouts
- Practical exercise: developing a reusable module for an Azure VM with disk and network, and testing it across different environments
Module 6: Managing Azure Virtual Devices and On-Premises Integration
- Controlling Azure Virtual Machines, Virtual Desktop elements, 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
- Laboratory task: deploying a fleet of Azure VMs to represent operator units, including inventory tagging and basic monitoring setup
Module 7: CI/CD, Automation, and Deployment Pipelines
- Connecting Terraform with CI/CD systems (such as GitHub Actions and Azure DevOps pipelines)
- Automating plan and apply processes while securing secrets and service principals
- Introductory insights into Policy as Code (using Sentinel or Open Policy Agent patterns) and pre-deployment checks
- Practical exercise: establishing a simple 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 exposure in state files
- Implementing access control, RBAC, and least privilege principles for automation accounts
- Detecting drift, reconciling state, and applying basic remediation techniques
- Operational checklist covering backup, auditing, and governance for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform configurations and interpreting plan diffs accurately
- Approaches to unit and integration testing (utilizing terraform validate, tflint, and kitchen-terraform)
- Identifying common error patterns and applying resolution strategies
- Laboratory task: running validation and linting tools to identify and correct discovered issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design challenge: planning an on-premises and Azure device deployment using acquired 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 foundational grasp of core networking and virtualization principles
- Comfort with navigating Windows or Linux command-line interfaces
- Basic familiarity with cloud or on-premises infrastructure architectures
Target Audience
- System administrators and platform engineers
- DevOps professionals starting their journey with Infrastructure as Code
- IT teams responsible for managing hybrid infrastructure (combining on-premises and 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