Neueda
Shape

Course

Deploying Applications to the Cloud using Terraform

This class is designed to teach DevOps engineers, Production Support staff and developers how to effectively use Terraform to manage infrastructure in a cloud environment. The course covers the best practices around the concept of infrastructure as code and then introduces how this can be best be applied using Terraform.

Duration: 3 days

Who is it for: Developers, Devops engineers, cloud architects

Layout: This session takes the form of some lectures along with demonstrations and exercises to consolidate the content being taught. It also involves a substantial workshop component where students deploy an application to the cloud.

Modules

Infrastructure as Code and Automated Deployments

  • What is IaC
  • Approaches to IaC
  • Terraform, Cloudformation, SAM and others

Infrastructure in Source Control – Git

  • Introduction to Git
  • Working with Git in the Enterprise
  • Maintaining IaC in Git
  • Triggering pipelines from Git hooks

Effective Git Usage

  • Working with a local Git repository
  • Working with a remote git repository
  • Effective use of branching
  • Handling conflicts
  • Git best practices and pull requests

IaC and DevOps

  • Performing automated deployments
  • Blue / Green
  • Canary
  • In place rolling updates

Terraform Fundamentals

  • Understanding how Terraform Works
  • Setting up Terraform
  • Deploying a single server using Terraform
  • Deploying a load balanced cluster of servers using Terraform

Understanding the Terraform Language HCL

  • Arguments and Blocks
  • Identifiers
  • Comments
  • Encoding
  • JSON syntax
  • Style conventions

Terraform Datatypes

  • Working with strings and numbers
  • Working with collection types
  • Working with object types
  • Using variables as input and output values

Terraform Functions

  • String and number functions
  • Collection related functions
  • Security related functions
  • Network related functions
  • File system and date related functions

Terraform Constructs

  • Looping with for_each
  • Working with counters
  • The significance of depends_on
  • Working with different Providers
  • Using Meta-arguments

The Terraform CLI

  • Understanding the core commands
  • Validating using validate
  • Using init, plan and apply

Working with Terraform Modules

  • Using registry based modules
  • Creating custom modules
  • Publishing custom modules to a registry

Managing State using Terraform

  • How do you know what you have
  • Maintaining a registry of resources
  • The Terraform enterprise solution
  • Deploying, tracking and updating deployments using Terraform enterprise

Configuration Management with Ansible

  • Introduction to Configuration management tools
  • Automating configuration using Ansible
  • Configuring servers using Ansible
  • Deploying an updated application using Ansible

When to use Ansible or Terraform

  • What should generally be done in Terraform
  • What should generally done using Ansible
  • Combining Terraform and Ansible

Extended Project

  • You are provided a sample Spring/React fullstack application
  • Deploy this application to AWS using either containers or EC2
  • Set up an appropriate pipeline for updates to be deployed

Enquire about this course

"*" indicates required fields

By submitting this form, you agree to our Privacy Policy.
This field is for validation purposes and should be left unchanged.