Course Content
Leverage and integrate Terraform with a mix of expert consulting and hands-on engineering The Hashicorp tool suite has found a distinct place in the DevOps community as a fantastic set of solutions for some of the most common DevOps tooling needs and automation use cases. This 2-day engagement focuses on Terraform as a solution for infrastructure management. Led by an expert, your teams will perform real work and establish guidelines for how to integrate and use Terraform for the use cases they need to adopt or progress.
Unlike a typical training engagement, this program is not simply a presentation of prepared content or scripted labs. This program is designed to place an engineering expert who has extensive experience with Terraform into a workshop setting with your teams so they can collaborate on appropriate integration. Our engineers have assisted many large organizations as they improve their DevOps practice and they bring this experience to your teams. Working together, our expert will provide a blend of technical consulting with hands-on instruction as they assist your organization in effectively using Terraform for infrastructure needs.
Who should attend
This Terraform training class is for engineering teams, leaders, and technology stakeholders who need to help their organization create and manage infrastructure as code using Terraform. The workshop is of particular benefit to:
- Application Developers
- Operations Developers
- IT Directors & Managers
- Development Managers
- Site Reliability Engineers
- Teams practicing DevOps
- CTOs
Course Objectives
- Use Terraform for creating and managing infrastructure as code
- Maintain version control of infrastructure assets just as you do with software assets
- Effectively use Terraform with Docker and Kubernetes for DevOps-style workflows
- Develop and present a business case for Terraform and related tools
- Run Terraform with public cloud infrastructure such as Azure
- Integrate Terraform with other technologies in the workspace
- Learn nomenclature and core features of Terraform and how to apply them
- Determine integration needs and plugin needs
Outline: Managing Azure Infrastructure with Terraform (TERRAFORM)
Part 1: Infrastructure as Code
In this section, we will introduce the benefits that Infrastructure as Code (IaC) can bring to organizations and how IaC fits within modern DevOps best practices.
- DevOps and GitOps
- Principles of Infrastructure as Code
- Applying Infrastructure as Code in DevOps
- Infrastructure as Code best practices
- Benefits of Infrastructure as Code
- The case for Terraform
Part 2: Terraform Overview
This section provides an overview of Terraform concepts and vocabulary and instructs how Terraform manages infrastructure configuration in cloud environments.
- Terraform configuration language overview
- Terraform CLI
- The lifecycle of a configuration
- State storage – local versus remote
- Connecting to Azure
Hands-on Labs:
- Setting up a Terraform project
Part 3: Azure Resources
In this section participants will be getting hands-on practice using Terraform to create a simple application environment in Azure, learning the essential constructs in Terraform for defining resources.
- Resource metadata and naming best practices
- Subscription and resource group
- Networking resources (VNet, subnet, network security group)
- Compute resources (virtual machine)
- Storage resources (storage account, file share, blob storage)
- Database resources (SQL database)
- Variables
- Outputs
Hands-on Labs:
- Deploying a VNet
- Adding a virtual machine into your VNet
- Adding storage and a database
- Including variables in your code
- Using Terraform commands to validate and inspect your configuration
Part 4: Terraform Programming
This section introduces programming constructs within Terraform that enable you to add more control and flexibility in defining resources.
- Control operations (count, loops, conditional, depends_on, etc.)
- Data structures (maps, lists, random_string, etc.)
- Data sources
- Functions (e.g., lookup, coalesce, join, merge, etc.)
- Variable validation
- Debugging Terraform
Hands-on Labs:
- Managing multiple resources through count and loops
- Using maps and lists in your code
- Using functions in your code
- Using Terraform CLI and state manipulation to debug your configuration
Part 5: Modules
This section shows how modules can be used to create reusable components in Terraform and teaches best practices in organizing Terraform code.
- Purpose of modules
- Modules code file organization structure
- Module structure
- Module sources and versioning
- Nested modules
- Publishing modules
Hands-on Labs:
- Refactoring your earlier lab code to a module
- Using Azure modules (subscription, metadata, resource group, virtual network)
Part 6: Wrapping Up
This section wraps up the course with reviews to reinforce what you have learned.
- Reference material to learn more
- Course review
- Next steps