Terraform in Practice
By the end of the course, learners will have created infrastructure through Terraform scripts, which provides a foundation to apply these skills into the workplace.
QA’s Terraform in Practice is an instructor led 2-day course with ‘workshop’ style labs.
The course begins with an overview of Terraform and its usage, followed by a discussion around the Hashicorp Configuration Language. Core Terraform concepts, such as Data Types and Providers, as well as the use of Terraform’s configuration syntax, variables, resources. modules and functions. Understanding of how Terraform operates, manages state, deals with configuration drift and building a best practice will be covered
Initially in the course learners will be introduced into the concepts of Infrastructure as Code. This will be quickly followed by an introduction to Terraform and a ‘quick win’ lab to demonstrate the use of terraform to deploy a simple resource.
As the course progresses the learner will increase their Terraform knowledge by understanding how terraforms features can be used to deploy simple resources into the cloud.
As more advanced concepts are introduced, together with more complex deployments into the cloud, the use of real-world documentation is also referenced, such as may be done in the workplace. The information and knowledge gained will constantly be enforced by a series of labs.
The labs will be often in a ‘workshop’ style where the learner is given a set of challenges and asked to use terraform to build a solution in the cloud that meets a given set of requirements. As with the real-world, we must identify the requirements, plan the work to be undertaken and perform our research before creating and testing our configuration. The course structure will reflect this as before each lab we investigate, plan and identify tasks as a group before the learner proceeds on their own to build infrastructure. End solution files are provided if needed.
- DevOps Engineer
- System Administrator
- Infrastructure Engineer
- Cloud Engineer
Learners need to have a level equivalent to:
- Foundational Knowledge of Operating Systems such as Windows or Linux as well as a basic understanding of networking,
- Familiarity working in the Command Line Interface and using IDE’s is advantageous as well as a basic understanding of JSON.
- Basic understanding of cloud concepts, terminology and basic services of either AWS, Azure or GCP is highly recommended
- Introducing IaC & Terraform
- Infrastructure as Code
- Introducing Terraform
- Comparing Vendor tools to Terraform
- Basic Terraform
- Terraform Foundations
- Installing Terraform
- The Terraform files (into Modules)
- Template structure
- Introduction to workspaces
- Implicit vs. explicit dependencies
- Terraform Providers
- Code examples
- Terraform Variables and Functions
- Introduction to Variables
- Input Variables
- Output Values
- Introducing Built in functions
- Built in functions
- References to Named Values
- Interpolation, Expressions & Functions
- Terraform Files & Configuration
- Template design
- Introduction to Workspaces
- Managing State
- Local Vs Remote Backend
- Configuration Drift
- Recreating Resources
- Terminating Resources
- Importing Resources
- Local vs. Remote Execution
- Introduction to Terraform Cloud
- Comparison: OSS vs. Cloud vs. Enterprise
- Local Vs, TFC Workspaces
- Introduction to Terraform Cloud
- Setting up and using TFC