Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- Core IaC concepts and their strategic benefits for on-premises and hybrid setups
- Overview of Terraform: exploring providers, resources, state, and the lifecycle
- Installation guide for Terraform, Azure CLI, and necessary supporting tools
- Practical first step: authoring a simple Terraform configuration and applying it locally
Module 2: HashiCorp Configuration Language (HCL) and Configuration Basics
- Deep dive into HCL syntax, resources, attributes, and expressions
- Working with variables, outputs, locals, and enforcing type constraints
- Essential Terraform CLI commands: init, plan, apply, destroy, and fmt
- Hands-on lab: constructing 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 physical and virtual infrastructure to Terraform resources (networking, compute, storage)
- Managing Azure authentication and setting up service principals for secure automation
- Practical exercise: provisioning an Azure virtual network and a basic VM using Terraform
Module 4: State Management, Backends, and Collaboration
- Understanding Terraform state: its purpose, format, and lifecycle implications
- Implementing remote backends using Azure Storage Accounts and state locking strategies
- Utilizing workspaces and environments to establish effective team collaboration patterns
- Lab: configuring remote state in Azure Storage and executing a multi-user workflow
Module 5: Modularization, Reusability, and Best Practices
- Techniques for authoring and consuming Terraform modules effectively
- Managing module inputs/outputs, versioning strategies, and registry patterns
- Establishing folder layouts, naming conventions, and maintainable repository structures
- Hands-on: creating a reusable module for an Azure VM with disk and network, then testing it across environments
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Controlling Azure Virtual Machines, Virtual Desktop components, and device lifecycles via Terraform
- Patterns for hybrid device management: bridging on-premises 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, along with inventory tagging and basic monitoring setup
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integrating Terraform into CI/CD workflows (e.g., GitHub Actions, Azure DevOps pipelines)
- Automating plan/apply processes while securing secrets and utilizing service principals
- Intro to Policy as Code (using Sentinel or Open Policy Agent patterns) and pre-deployment validation checks
- Hands-on: building a GitHub Actions workflow to plan and apply Terraform in a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Securing secrets: integrating Azure Key Vault and preventing sensitive data leakage into state files
- Implementing access control, RBAC, and the principle of least privilege for automation accounts
- Detecting drift, reconciling state, and establishing basic remediation workflows
- Operational checklist: covering backup strategies, auditing, and governance for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Techniques for debugging Terraform configurations and interpreting plan diffs effectively
- Approaches to unit and integration testing (utilizing terraform validate, tflint, and kitchen-terraform)
- Identifying common error patterns and developing resolution strategies
- Lab: running validation and linting tools to identify and rectify configuration issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design exercise: planning a comprehensive on-prem plus Azure device deployment using previously learned patterns
- Implementation of core components using modules, remote state, and CI/CD pipeline snippets
- Presentation of the solution, discussion of architectural trade-offs, and review of operational runbooks
Summary and Next Steps
Requirements
- A solid understanding of basic networking and virtualization concepts.
- Comfort with Windows or Linux command-line interfaces.
- Foundational knowledge of cloud or on-premises infrastructure principles.
Target Audience
- System administrators and platform engineers looking to enhance their automation skills.
- DevOps practitioners starting their journey with Infrastructure as Code.
- IT teams responsible for managing hybrid infrastructures spanning on-premises and Azure environments.
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