Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- Exploring IaC principles and their advantages for on-premises and hybrid landscapes
- Terraform fundamentals: understanding providers, resources, state management, and resource lifecycles
- Setting up Terraform, Azure CLI, and other essential utilities
- Practical exercise: creating and executing a basic Terraform configuration locally
Module 2: HashiCorp Configuration Language (HCL) and Core Configuration Concepts
- Mastering HCL syntax, resource definitions, attributes, and logical expressions
- Working with variables, outputs, local values, and data type constraints
- Navigating the Terraform CLI: commands for init, plan, apply, destroy, and fmt
- Hands-on lab: constructing a parameterized configuration for both on-premises and Azure resources
Module 3: Providers, Resources, and Azure Provider Essentials
- Comprehending provider roles and configuring the AzureRM provider
- Translating infrastructure components (networking, compute, storage) into Terraform resources
- Handling Azure authentication and service principals for automated tasks
- Practical task: provisioning an Azure virtual network and a basic VM via Terraform
Module 4: State Management, Backends, and Team Collaboration
- The role of Terraform state: its purpose, structure, and lifecycle implications
- Implementing remote backends using Azure Storage Accounts and managing state locks
- Utilizing workspaces and environments to establish effective collaboration patterns
- Lab: setting up remote state in Azure Storage and executing a multi-user workflow
Module 5: Modularization, Reusability, and Best Practices
- Crafting and utilizing Terraform modules for efficiency
- Defining module inputs/outputs, managing versions, and leveraging registry standards
- Establishing consistent folder structures, naming conventions, and maintainable repository layouts
- Hands-on: building a reusable module for Azure VMs (including disks and networking) and testing it across different environments
Module 6: Managing Azure Virtual Devices and On-Premises Integration
- Overseeing Azure Virtual Machines, Virtual Desktop elements, and device lifecycles with Terraform
- Strategies for hybrid device management: linking on-premises assets with Azure-managed devices
- Connecting device management systems via data sources and external providers
- Lab: deploying a fleet of Azure VMs to represent operator units, then applying inventory tags and basic monitoring
Module 7: CI/CD, Automation, and Deployment Pipelines
- Embedding Terraform into CI/CD systems such as GitHub Actions and Azure DevOps
- Automating plan and apply steps while securing secrets and managing service principals
- Introducing Policy as Code (using Sentinel or Open Policy Agent) and pre-deployment validation
- Hands-on: building a basic GitHub Actions workflow to execute Terraform plans and applies against a sandbox subscription
Module 8: Security, Secrets, and Operational Excellence
- Secure secret management through Azure Key Vault and preventing sensitive data leakage in state files
- Enforcing access control, RBAC, and least-privilege principles for automation accounts
- Detecting configuration drift, reconciling state, and applying basic remediation tactics
- Operational checklist: ensuring backup, auditing, and governance for Terraform-managed systems
Module 9: Testing, Debugging, and Troubleshooting
- Debugging Terraform code and interpreting plan differences with precision
- Adopting unit and integration testing methods using tools like terraform validate, tflint, and kitchen-terraform
- Identifying common error patterns and applying effective resolution strategies
- Lab: executing validation and linting tools to identify and correct configuration issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design challenge: planning an on-prem + Azure device deployment using acquired patterns
- Implementing core components via modules, remote state, and CI/CD pipeline fragments
- 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 command-line interfaces on Windows or Linux
- Foundational knowledge of cloud or on-premises infrastructure concepts
Target Audience
- System administrators and platform engineering professionals
- DevOps engineers starting their journey into Infrastructure as Code
- IT teams responsible for managing hybrid infrastructures that span on-premises and Azure environments
Testimonials (4)
How easily is to see everything as a resource
Ilie Danut - Mihai - DB Technology
Course - Terraform : Fundamentals
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