Ultimate Terraform: Foundations

Course Description

Learn how Terraform facilitates infrastructure creation from a config describing the desired architecture components.

Format: Each session is 4 hours long over 4 days. From noon EST to 4 pm Starts on April, 24 and Ends on April, 27

Course Outline

Part 1: Introduction.

We start by covering what Terraform is, how is it used and the benefits it brings. We will look at example configurations and variables, variable types, and variable validation.

  • Introduction to IaC/Terraform.
  • HCL Configs, Providers, Installation.
  • The Terraform Workflow.
  • Configuration Templates.
  • Variables, local variables.
  • Simple & Complex variable types.
  • Validating Variables.

Part 2: Control structures.

Terraform is a declarative language, nevertheless, it has constructs allowing to perform conditional logic, looping, string formatting, and useful functions.

  • Count, for_each, “for in”, ternary operator, string templates
  • Resource dependencies
  • Functions, debugging

Part 3: Working with the Terraform Registry.

In this session we will discover the Terraform Registry which provides many Providers allowing to create Resources in different systems - typically cloud service providers such as AWS, Azure, etc, Data Sources allowing to interrogate those providers about the Resources and Modules which provide useful abstractions for ease of creation of Resources.

  • Terraform Registry
  • Providers
  • Data sources
  • Modules
  • Writing Modules
  • Provisioners

Part 4: Managing State & Importing Resources.

Terraform maintains a record of the state of the system, that state is by default stocked locally, but this could cause conflicts if several team members are working on the same configured Resources. We will discover how to set up a repository of shared states to allow teams to work on the same resources.

We will also look at best practices for working with Terraform and the many 3rd-party tooling available.

  • Managing Remote State.
  • Importing foreign resources.
  • Terraform Best Practices.
  • 3rd-party tools.
  • Terraform Cloud & Enterprise.

About the Instructor

Michael has worked for many years in the Telecom and Cloud industries as a Researcher, Developer, and Pre-Sales Solution Architect at Hewlett-Packard Enterprise before branching out as an independent trainer and consultant specializing in Cloud Technologies.

Michael is British but has lived 30 years in his adopted hometown of Grenoble in the French Alps.

Michael runs local Cloud Native, Docker, and Python Meetup groups and has presented and run workshops at various conferences on subjects including Kubernetes, Serverless, Unikernels, and Jupyter.