Getting Started with Terraform for Google Cloud (GSTGC) – Outline

Detailed Course Outline

Module 01 - Introduction to Terraform for Google Cloud

Topics:

  • Introduction to IaC
    • What is infrastructure as code (IaC)?
    • Problems IaC can solve
    • Benefits of IaC
    • Provisioning versus configuration
    • Imperative versus declarative approach
  • Introduction to Terraform
    • Terraform overview
    • Terraform features
    • IaC configuration workflow
    • Terraform use cases
  • Using Terraform
    • How to use Terraform
    • Running Terraform in production
    • Installing Terraform
    • Authentication for Google Cloud

Objectives: Upon completion of this module, the student will be able to:

  • Define infrastructure as code.
  • Explain the features and benefits of using Terraform.
  • Explain the use case of Terraform for Google Cloud.
  • Describe how to use Terraform for Google Cloud.

Module 02 - Terms and Concepts

Topics:

  • The Author phase
    • Terraform Directory structure
    • Introduction to HCL syntax
    • Resources
    • Variables
    • State
    • Modules
  • Terraform commands
    • terraform init
    • terraform plan
    • terraform apply
    • terraform fmt
    • terraform destroy
  • Terraform Validator tool
    • Introduction
    • Why use the Terraform Validator tool
    • Validation workflow
    • Terraform Validator use cases

Objectives: Upon completion of this module, the student will be able to:

  • Explain the Terraform workflow.
  • Create basic configuration files within Terraform.
  • Explain the purpose of a few Terraform commands.
  • Describe the Terraform Validator tool.
  • Create, update, and destroy Google Cloud resources using Terraform.

Module 03 - Writing Infrastructure Code for Google Cloud

Topics:

  • Introduction to Resources
    • Resources overview
    • Syntax
    • Example
    • Refer a resource attribute
  • Considerations to define a resource block
  • Meta-arguments for resources
  • Resource dependencies
    • Implicit dependency
    • Explicit dependency
  • Introduction to Variables
    • Overview
    • Syntax to declare a variable
    • Syntax to reference and assign a value to a variable
    • Variables best practices
  • Introduction to output values
    • Output values overview
    • Best practices
  • Terraform Registry and CFT
    • Introduction to Terraform Registry
    • Introduction to CFT

Objectives: Upon completion of this module, the student will be able to:

  • Declare the resources within Terraform.
  • Explain implicit and explicit resource dependencies.
  • Use variables and output values within the root configuration.
  • Explain Terraform Registry and Cloud Foundation Toolkit.

Module 04 - Organizing and Reusing Configuration with Terraform Modules

Topics:

  • Introduction to modules:
    • Why are modules needed
    • What is a module?
    • Example
  • Reusing configurations by using modules
    • Module sources
    • Calling a module into the source configuration
  • Using variables to parameterize your configuration
  • Pass resource attributes using output variables
  • Module use cases, benefits, and best practices

Objectives: Upon completion of this module, the student will be able to:

  • Define Terraform modules.
  • Use modules to reuse configurations.
  • Use modules from the public registry.
  • Use input variables to parameterize configurations.
  • Use output values to access resource attributes outside the module.

Module 05 - Introduction to Terraform State

Topics:

  • Introduction to Terraform state
    • How information is stored in a Terraform state file
  • Ways to save a state file
  • Storing a state file in a Cloud Storage bucket
    • Issues when storing the Terraform state locally
    • Benefits of storing a state file in a Cloud Storage bucket
    • Process of storing a Terraform state file remotely in a Cloud Storage bucket
  • Terraform state best practices

Objectives: Upon completion of this module, the student will be able to:

  • Define Terraform state.
  • List the benefits of storing the state file remotely.
  • Explain how to store the Terraform state in a Cloud Storage bucket.
  • Explain Terraform state best practices.