Deploying Infrastructure at Scale

Course Description

Deploying infrastructure in a repeatable and scalable way requires a new deployment process.   Tools like Terraform can create secure networking components in the cloud and launch VM’s within those networking confines.  Configuration Management tools like Ansible and Chef can configure those machines to host Docker containers, and these containers can deploy your applications.  Tools like Kubernetes and RedHat OpenShift can then manage these containers for scalability and reliability.

This course will teach you exactly how to create and use an end-to-end CI/CD pipeline that validates, automates and stores infrastructure changes for faster, more secure and more reliable deployments.

You’ll learn how to master the software and processes to build, test, and deploy infrastructure code every time a developer pushes a code change. After completing this course you’ll know how to create, operate and maintain an Infrastructure Pipeline that ensures only high-quality infrastructure code gets deployed into production.

Choose the exact toolchain you want below and generate a course outline, or choose the ‘generic’ options for a tool-agnostic outline:

Deploying Infrastructure at Scale

Course Duration 

Standard Duration is 5-days.  Customization to the course agenda may increase the number of days needed for the course.

Course Agenda 

Cloud Networking. You will learn a solid introduction to Cloud networking on AWS, GCE or Azure Cloud so you can confidently know your IGW from your RTA without embarrassing your VPC, as well as how to use the cloud CLI tools

Infrastructure Deployment. You will learn how to use ‘infrastructure as code’ tools like HashiCorp’s Terraform to describe and deploy VM’s in the cloud of your choice.   We’ll use infrastructure as code to create and destroy secure networking components automatically, as well as how to launch VM’s within those networking components 

Containerization. We’ll teach you how to create Docker containers to deploy your applications. 

Container Orchestration.  Once you have containers running, we’ll show you how to use either Kubernetes or OpenShift to manage containers, replace damaged containers and scale containers to meet customer demand on your applications.

Infrastructure Platform: AWS Cloud Networking

  • Installing and using the AWS CLI (Command Line Interface)
  • AWS Networking
  • VPC's (Virtual Private Clouds)
  • Subnets
  • Internet Gateways
  • Route Tables
  • Route Table Associations

Git: Source Control Management: Github

  • Students can use the git platform of their choice during the class. The following git platforms have been integrated with this class: GitHub, Bitbucket, GitLab, AzureRepos & AWS CodeCommit
  • This course doesn't teach the basics of git. Git experience is assumed (see the 'DevOps Pipeline' course if your team needs basic git knowledge)

Infrastructure Deployment: Terraform - AWS Cloud

  • Intro to Terraform
  • Creating S3 buckets
  • Separating code: Multiple Terraform configuration files
  • Storing state remotely
  • Git branching
  • Displaying resource outputs
  • Creating AWS Networking components with Terraform
  • Configuring AWS Security groups
  • Using SSH Public/Private Keys with Terraform
  • Launching and Destroying AWS instances with Terraform
  • Creating reusable code with modules
  • Using Terraform variables

Continous Integration / Continous Delivery (CI/CD): Jenkins

  • Automated configuration management code testing using CI/CD
  • Automated infrastructure code testing using CI/CD
  • Automated containerization code testing using CI/CD

Configuration Management: Ansible and Terraform

  • Ansible Provisioners in Terraform
  • Integrating Terraform-managed instances with Ansible Control Nodes
  • Launching multi-tiered architectures (web servers and load balancers) with Terraform and Ansible

Notifications: Generic Notifications

  • CI/CD to instant messaging integration
  • Using instant messaging for CI/CD notifications

Containerization: Docker

  • Purpose and use case for Docker
  • Docker Hub
  • Basic Docker commands
  • Docker Networking
  • Launching and debugging NGINX containers
  • Mounting Volumes to containers
  • Docker mount points: Multiple containers, one shared code location
  • Launching Docker hosts and Docker containers automatically
  • Port mapping with containers
  • Launching multi-tiered architectures (web servers and load balancers): an automated approach
  • Customizing containers with Docker Hub and Dockerfiles
  • Reducing infrastructure bloat: Buster-Slim Docker containers

Container Management: Kubernetes

  • Kubernetes (K8S) overview and use case
  • K8S architecture
  • Installation and configuration
  • Master and node server components
  • Creating K8S load-balanced clusters
  • Deploying Apps with K8S
  • Scaling Apps
  • K8S monitoring and App repair
  • Updating Apps with K8S

Requirements:

  • Access to *.aws.amazon.com/*
  • Access to *.github.com/*
  • Access to *.terraform.io/*
  • Access to *.jenkins.io/*
  • Access to *.terraform.io/*
  • Access to *.docker.com/*
  • Access to *.kubernetes.io/*

Course Availability: Contact for Availability