Deploy Infra in the Cloud using Terraform

Deploy Infra in the Cloud using Terraform

Deploy Infra in the Cloud using Terraform

Learn how to apply Infrastructure as Code (IaC) with Terraform. Covers Web Apps, Database, VM, Kubernetes and Azure.

Language: english

Note: 4.5/5 (607 notes) 39,303 students

Instructor(s): Houssem Dellai

Last update: 2022-09-14

What you’ll learn

  • Automate infrastructure deployment to the cloud
  • Create Terraform templates
  • Working with the “Execution Plan”
  • Sharing and locking the State file
  • Deploy into dev/test and production
  • DevOps CI/CD pipelines for Terraform
  • GitOps with Atlantis
  • Creating and deploying Web Apps, Databases, VMs, Storage, Kubernetes clusters
  • Deploy to multiple cloud platforms using Modules
  • Troubleshooting Terraform
  • Applying Infrastructure as Code (IaC)

 

Requirements

  • Basic cloud services

 

Description

Terraform is becoming the standard when it comes to deploying infrastructure into the cloud or on premise.

In this course you will learn how to create and deploy Terraform templates.

We will work with the different Terraform commands like init, plan, apply and destroy.

We’ll explore terraform features like input and output parameters, the execution plan and the remote backend state.

We’ll write templates for Web Apps, SQL Database, VMs, Storage, Kubernetes clusters and many more.

We’ll create the DevOps CI/CD pipelines using Azure DevOps and Github Actions to deploy into multiple environments: dev, test and prod.

Then we’ll implement GitOps for Terraform using Atlantis.

Along all these demonstrations you’ll also learn the Best practices in terms of security, configuration and scalability.


I hope you are ready and excited for this journey!

Bring a coffee and lets get started.


Current plan:

Intro

  • Intro to Terraform (Init, Plan, Apply, Delete)

  • Requirements (Terraform, Azure subscription, Azure CLI, VS Code+TF plugin, any OS)

ResourceGroup

  • Deploying Resource Group into Azure

  • Pay Attention to Resource Recreation

  • Validate and Format Templates

WebApp

  • Deploying Web App

  • Adding Variables File

  • Creating Variables in .tfvars Files

  • Overriding Variables in the command line

  • Creating Output Variables

Execution Plan

  • Overview of Terraform Plan

  • Demo

TF_State

  • Working with Remote Backend State

Infra Deployments

  • Deploying SQL Server with a Database

  • Deploying and configuring Web App and SQL Server

  • Deploying Linux VM

  • Deploying Windows VM with Azure Bastion

  • Deploying AKS cluster

  • Deploying AKS with Managed Identity and ACR

Terraform features

  • Functions (for each, for, count, if/else, random, lower, upper, min, max…)

DevOps with Terraform

  • Deploy Terraform templates using Azure DevOps

  • Configuring the CI/CD pipelines

Upcoming lectures:

  • Data Source

  • Workspaces/Environments

  • Testing TF with Terratest

  • Multicloud

  • Deploy to AWS and GCP

  • GitOps with TF (Atlantis…)

  • TF with ARM

  • TF competitors: Ansible, Pulumi, ARM, Cloud Formation

  • TF Providers for Kubernetes, Helm, Docker, GIT…

 

Who this course is for

  • Beginner to cloud automation
  • Software developers switching to Ops or DevOps
  • Students looking for more in depth course for IaC

 

Course content

  • Introduction
    • Course requirements
    • Connect with the author
  • Terraform basics
    • Terraform overview
    • Create the first terraform template
    • Get the source code for the demo
    • Moving to Terraform version 0.14
    • Terraform init, plan and apply
    • Recreating resources
    • Validation and formatting a template
    • Terraform commands
  • Input & output variables
    • Creating a template for Azure Web App
    • Source code for the demo
    • Deploying Web App
    • Terraform Variables
    • Overriding variables with .tfvars
    • Overriding variables with command line
    • Output variables
    • Input & output variables
  • Terraform execution plan
    • Execution plan overview
    • Execution plan demo
    • Terraform plan command
  • Terraform state
    • Terraform state overview
    • Terraform state demo
    • Terraform state management.
  • Terraform Workspace
    • Dev/Test/Prod Environments
    • [Demo] Dev/Test/Prod Environments
    • Deploy Web App and SQL Database
    • Terraform Workspace
    • [Demo] Terraform Workspace
    • Terraform workspace could be used to manage DEV/TEST/PROD environments ?
  • Deploy container services
    • Deploy AKS cluster
    • [Demo] Deploy AKS cluster
    • Deploy AKS, ACR and Permissions
    • [Demo] Deploy AKS, ACR and Permissions
    • Quiz
  • Deploying PaaS services
    • Deploy Key Vault and Secrets
    • [Demo] Deploy Key Vault and Secrets
    • Key Vault with RBAC for Secrets
    • [Demo] Key Vault with RBAC for Secrets
    • Deploy Storage Account, Container and Blob
    • [Demo] Deploy Storage Account, Container and Blob
    • Quiz
  • Deploying IaaS services
    • Deploy Linux VM
    • [Demo] Deploy Linux VM
    • Deploy Windows VM & Bastion host
    • [Demo] Deploy Windows VM & Bastion host
  • Deploying ARM templates
    • Deploying ARM templates
    • [Demo] Deploying ARM templates
  • Cloud Governance using Terraform
    • Create users and groups in Azure Active Directory
    • [Demo] Create users and groups in Azure Active Directory
    • Assign an existing Policy
    • [Demo] Assign an existing Policy
    • Create and assign a custom policy
    • [Demo] Create and assign a custom policy
  • Terraform modules
    • Introduction to modules
    • [Demo] Terraform modules
    • Sharing modules with terraform registry
    • More resources for modules
  • Import existing infrastructure into Terraform
    • Terraform import
    • [Demo] Terraform import
    • More tools to import resources
    • Import Azure resources into Terraform with Terrafy
  • Terraform features
    • for_each, list, map, bool, number, validation
    • if/else, count, lower, upper, max, min
    • random_string, random_number, random_uuid
    • http, local-exec, remote-exec
    • [Demo] http, local-exec, remote-exec
    • dynamic for nested bloc
    • enable or disable resource creation
  • Deploy to Kubernetes using Terraform provider
    • Terraform provider for Kubernetes
  • Deploy Helm Charts to Kubernetes using Terraform provider
    • Terraform provider for Helm
  • Resource visualization with Rover
    • Resource visualization with Rover
    • [Demo] Resource visualization with Rover
  • Service Principal for securing Terraform deployments
    • Introduction to Azure Service Principal
    • [Demo] Azure Service Principal
    • Service Principal with Terraform
  • Automated testing using Terratest
    • Introduction to Terratest
    • [Demo] Running simple test in Terratest
    • Automated tests for Resource Group
    • [Demo] Automated tests for Resource Group
    • Automated tests for an AKS cluster
    • More resources for learning Terratest
  • Detecting misconfigurations in Terraform
    • Detecting misconfigurations in Terraform
    • Detecting misconfigurations in DevOps pipelines
  • Multi-layer architecture
    • Multi-layer architecture for Terraform
  • DevOps for Terraform
    • CI/CD Pipelines using Azure DevOps
    • Deploy to multiple environments
    • CI/CD pipelines with Github Actions
  • Migrating deprecated resources
    • Migrating deprecated resources
  • Resources
    • Azure Cloud Application Framework (CAF)

 

Time remaining or 825 enrolls left

 

Don’t miss any coupons by joining our Telegram group 

Udemy Coupon Code 100% off | Udemy Free Course | Udemy offer | Course with certificate