Course Outline
Module 1: Introduction to Infrastructure as Code and Terraform
- Core principles and advantages of Infrastructure as Code within on-premises and hybrid operational environments for government systems
- Overview of Terraform capabilities, including providers, resource management, state handling, and lifecycle management
- Procedures for installing Terraform, the Azure Command-Line Interface (CLI), and supporting utilities
- Practical exercise: Authoring a foundational Terraform configuration and executing it in a local environment
Module 2: HashiCorp Configuration Language (HCL) and Configuration Fundamentals
- HCL syntax, resource definitions, attributes, and expression logic
- Utilization of variables, output values, local variables, and data type constraints
- Terraform Command-Line Interface operations: init, plan, apply, destroy, and fmt
- Practical lab: Developing a parameterized configuration for an on-premises asset and an Azure resource
Module 3: Providers, Resources, and Azure Provider Fundamentals
- Understanding provider mechanics and AzureRM provider configuration protocols
- Mapping infrastructure components to Terraform resources across networking, compute, and storage domains
- Managing Azure authentication mechanisms and service principals for automated workflows
- Practical exercise: Provisioning an Azure Virtual Network and a virtual machine using Terraform
Module 4: State Management, Backends, and Collaboration
- Function, structure, and lifecycle considerations of Terraform state management
- Configuration of remote backends using Azure Storage Accounts and implementation of state locking mechanisms
- Utilization of workspaces and environments to support team collaboration patterns for government projects
- Lab: Configuring remote state in Azure Storage and executing multi-user operational workflows
Module 5: Modularization, Reusability, and Best Practices
- Development and consumption of reusable Terraform modules
- Management of module inputs and outputs, versioning strategies, and registry adoption patterns for government solutions
- Establishment of directory structures, naming conventions, and maintainable repository architectures
- Practical exercise: Creating a reusable module for Azure virtual machines, disks, and networking, and validating across environments
Module 6: Managing Azure Virtual Devices and On-Prem Integration
- Administration of Azure Virtual Machines, Virtual Desktop components, and device lifecycle management via Terraform
- Strategies for hybrid device management, integrating on-premises resources with Azure-managed infrastructure
- Integration of device management systems using data sources and external providers for government operations
- Lab: Deploying an Azure Virtual Machine fleet representing operational units and configuring inventory tagging and monitoring protocols
Module 7: CI/CD, Automation, and Deployment Pipelines
- Integration of Terraform with Continuous Integration/Continuous Deployment (CI/CD) platforms such as GitHub Actions and Azure DevOps
- Automation of plan and apply stages using secured secrets and service principals for government automation
- Introduction to Policy as Code frameworks, including Sentinel or Open Policy Agent patterns, and pre-deployment validation
- Practical exercise: Developing a GitHub Actions workflow to execute plan and apply operations against a sandbox subscription
Module 8: Security, Secrets, and Operational Practices
- Management of sensitive data through Azure Key Vault integration and prevention of secret exposure in state files
- Implementation of Access Control, Role-Based Access Control (RBAC), and least-privilege principles for automation accounts
- Strategies for drift detection, state reconciliation, and remediation of configuration inconsistencies
- Operational checklist: Backup procedures, auditing standards, and governance requirements for Terraform-managed infrastructure
Module 9: Testing, Debugging, and Troubleshooting
- Techniques for debugging Terraform configurations and interpreting plan diffs effectively
- Implementation of unit and integration testing approaches, including terraform validate, tflint, and kitchen-terraform
- Identification of common error patterns and established resolution strategies for government IT operations
- Lab: Executing validation and linting tools to identify and correct configuration issues
Module 10: Capstone Project — Hybrid Deployment Scenario
- Design activity: Planning an on-premises and Azure device deployment using established methodologies
- Implementation of core infrastructure components utilizing modules, remote state backends, and CI/CD pipeline configurations for government environments
- Presentation of the technical solution, analysis of trade-offs, and review of operational runbooks
Summary and Next Steps
Requirements
- Foundational proficiency in networking and virtualization principles
- Competency in utilizing command-line interfaces for Windows or Linux environments
- General awareness of cloud computing and on-premises infrastructure frameworks
Intended Audience
- System administrators and platform engineers seeking to enhance their technical capabilities for government operations
- DevOps professionals initiating their work with Infrastructure as Code methodologies
- IT personnel responsible for managing hybrid environments that integrate on-premises systems with Azure cloud services
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