Course Outline
Module 1: Fundamentals of Infrastructure as Code and Terraform
- Exploring IaC concepts and their advantages in on-premises and hybrid settings.
- An overview of Terraform: examining providers, resources, state, and the resource lifecycle.
- Installation procedures for Terraform, Azure CLI, and other necessary utilities.
- Initial practical exercise: drafting and locally applying a basic Terraform configuration.
Module 2: HashiCorp Configuration Language (HCL) and Core Configuration
- Detailed analysis of HCL syntax, including resources, attributes, and expressions.
- Managing variables, outputs, locals, and type constraints effectively.
- Mastering the Terraform CLI: executing 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: Providers, Resources, and Azure Provider Essentials
- Understanding the role of providers and configuring them, with a focus on the AzureRM provider.
- Translating real-world infrastructure into Terraform resources across networking, compute, and storage.
- Handling Azure authentication and setting up service principals for automated workflows.
- Practical exercise: provisioning an Azure virtual network and a basic VM using Terraform.
Module 4: State Management, Backends, and Team Collaboration
- The role of Terraform state: understanding its purpose, format, and lifecycle implications.
- Implementing remote backends using Azure Storage Accounts and employing state locking strategies.
- Utilizing workspaces and environments to support collaborative workflows within teams.
- Lab session: establishing remote state in Azure Storage and executing multi-user workflows.
Module 5: Modularization, Reusability, and Best Practices
- Creating and utilizing Terraform modules for scalable infrastructure.
- Defining module inputs and outputs, managing versioning, and leveraging registry patterns.
- Establishing clear folder structures, naming conventions, and maintainable repository layouts.
- Practical exercise: building a reusable module for Azure VMs, disks, and networking, and testing it across different environments.
Module 6: Managing Azure Virtual Devices and On-Premises Integration
- Controlling Azure Virtual Machines, Virtual Desktop components, and device lifecycles through Terraform.
- Strategies for hybrid device management, linking on-premises resources with Azure-managed devices.
- Integrating volumetric or device management systems via data sources and third-party providers.
- Lab session: deploying a fleet of Azure VMs to simulate operator units, including inventory tagging and basic monitoring setup.
Module 7: CI/CD, Automation, and Deployment Pipelines
- Connecting Terraform with CI/CD platforms such as GitHub Actions and Azure DevOps pipelines.
- Automating plan and apply processes while securely managing secrets and service principals.
- Introducing Policy as Code basics using Sentinel or Open Policy Agent patterns for pre-deployment validation.
- Practical exercise: developing a GitHub Actions workflow to execute Terraform plan and apply against a sandbox subscription.
Module 8: Security, Secrets Management, and Operational Hygiene
- Securing sensitive data through Azure Key Vault integration and preventing exposure in state files.
- Implementing access control, RBAC, and least privilege principles for automation accounts.
- Monitoring drift, reconciling state, and applying basic remediation techniques.
- Reviewing checklists for backup, auditing, and governance of Terraform-managed infrastructure.
Module 9: Testing, Debugging, and Troubleshooting
- Diagnosing Terraform configurations and interpreting plan diffs with precision.
- Applying unit and integration testing methods using tools like terraform validate, tflint, and kitchen-terraform.
- Identifying common error patterns and developing effective resolution strategies.
- Lab session: executing validation and linting tools to identify and resolve configuration issues.
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design challenge: planning a hybrid on-premises and Azure device deployment using acquired patterns.
- Implementation of key components using modules, remote state, and CI/CD pipeline segments.
- Presentation of the solution, discussion of trade-offs, and review of operational runbooks.
Summary and Recommended Next Steps
Requirements
- A foundational grasp of basic networking and virtualization principles.
- Comfort with navigating Windows or Linux command-line interfaces.
- General awareness of cloud or on-premises infrastructure fundamentals.
Target Audience
- System administrators and platform engineers.
- DevOps practitioners starting their journey with Infrastructure as Code.
- IT teams responsible for managing hybrid infrastructure that spans on-premises systems 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