• ROI Training

Hands-On Terraform

Contact us to book this course
Curriculum icon
Curriculum

Cloud Computing

Delivery methods icon
Delivery methods

On-Site, Virtual

Duration icon
Duration

2 days

Infrastructure as Code (IaC) is the process of creating computing infrastructure and deploying applications and databases using scripts and configuration. Terraform is a cross-platform IaC tool that works with major cloud providers like AWS, Azure, and Google Cloud, as well as on-premises. This course teaches everything you need to get started using Terraform from the basics of the language to advanced deployment techniques. The course includes examples, demos, and hands-on labs using AWS, Azure, Google Cloud, and Kubernetes.

Learning objectives

  • Automate the creation, management, and destruction of computing infrastructure and resources using Terraform
  • Create infrastructure as code with HashiCorp Configuration Language (HCL)
  • Provision AWS, Azure, and Google Cloud resources using Terraform
  • Build complex, reusable deployments using Terraform modules
  • Leverage Terraform to deploy Kubernetes applications
  • Simplify using Terraform in teams using Terraform Cloud

Who should attend

Engineers, developers, architects, and anyone else who would like to use Terraform to automate infrastructure provisioning and application deployment for the cloud or Kubernetes.

Prerequisites

An understanding of cloud computing and experience creating cloud resources using AWS, Microsoft Azure, or Google Cloud is required to take this course.

Hands-on activities

This class includes hands-on labs using AWS, Azure, and Google Cloud. The class ends with an unguided workshop that challenges students to use what they have learned to deploy infrastructure and an application to the environment of their choice.

Course outline

  • Terraform Overview
    • Infrastructure as Code
    • IaC Tools
    • Why Terraform?
  • Installation
    • Terraform Binary
    • System Prerequisites
    • AWS CLI
    • Azure CLI
    • Google Cloud CLI
  • Terraform Cloud
  • Exercise: Installing Terraform
  • Providers
    • Overview of Providers
    • Authentication
    • AWS Provider
    • Azure Provider
    • Google Provider
  • Folder Structure
    • .tf Files
    • Resources
    • Variables
    • .tfvars Files
    • Output
  • Workflow 
    • Init
    • Plan
    • Apply
    • Show
    • Change
    • Destroy
    • Running External Scripts
  • Managing State
    • .tfstate Files
    • Managing Drift
  • Exercise: Getting Started with Terraform
  • Basic Syntax
    • Modules
    • Blocks
    • Declaring Variables
    • Primitive Data Types
    • Collection Types
    • Complex Types
    • Setting Variable Values
    • Data Blocks
    • Interpolation Expressions
    • Resource Dependencies
    • Output Variables
  • Creating Multiple Resources
    • Count
    • Sets
    • For-Each
    • For
    • Dynamic Blocks
    • Generating Random Values
  • Built-in Functions
    • String
    • Numeric
    • Date and Time
    • Collection
  • Reverse Engineering Templates
    • Importing Existing Resources
    • Terraformer
  • Exercise: Understanding HCL
  • Networks
    • AWS VPCs
    • Azure VPCs
    • Google Cloud VPCs
  • Virtual Machines
    • EC2
    • Azure VMs
    • Compute Engine
  • Storage
    • S3
    • Azure Storage
    • Google Cloud Storage
  • Databases
    • RDS
    • Cloud SQL 
    • Azure SQL
  • Exercise: Building Cloud Infrastructure
  • Architecting Cloud Applications
    • Regions and Zones
    • Managing Multiple Instances
    • Firewalls
    • Load Balancers
  • Deploying Applications to AWS
    • VPC with Multiple Availability Zones
    • Security Groups
    • Load Balancers
  • Deploying Applications to Azure
    • Virtual Networks
    • Security Groups
    • Load Balancers
  • Deploying Applications to Google Cloud
    • VPC with Multiple Regions
    • Firewall Rules
    • Load Balancers
  • Exercise: Deploying a Scalable, Fault-Tolerant Application with Terraform
  • Modules Revisited
    • Terraform Modules
    • Input
    • Resources
    • Output
  • Building Modular Deployments
    • Folder Hierarchy
    • Using Modules
    • Passing Parameters to Modules
    • Handling Dependencies between Modules
  • Exercise: Modularizing a Complex Deployment
  • Kubernetes Basics
    • Clusters
    • Deployments
    • Kubernetes Configuration
    • Deploying Kubernetes Applications with kubectl
  • Creating Kubernetes Clusters with Terraform
    • EKS Clusters
    • AKS Clusters
    • GKE Clusters
  • Terraform Kubernetes Provider
    • Translating Kubernetes Syntax to HCL
    • Deploying a Kubernetes Application Using Terraform
  • Exercise: Deploying to Kubernetes Using Terraform
  • Using Terraform Cloud
    • Features
    • Creating an Account
    • Organizations
    • Workspaces
  • Exercise: Using Terraform Cloud

Ready to accelerate your team's innovation?