Docker And Kubernetes - The Complete Developers Guide
Published 7/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 4.28 GB | Duration: 12h 39m
Published 7/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 4.28 GB | Duration: 12h 39m
Learn All About Containers, Docker, Docker Compose, Kubernetes and How to Deploy an App to AWS With a CI/CD Pipeline
What you'll learn
Containerize a multi component application
Build a deployment CI/CD pipeline to AWS
Understand the differences between the many Kubernetes objects
Identity when best to utilize Docker or Kubernetes
Requirements
Familiarity with any programming language
Description
In this course we will take you from a Docker and Kubernetes novice to job ready engineer. This course is loaded with diagrams and practical examples so that you can truly understand and utilize Docker and Kubernetes in great depth. We will be containerize five projects, each one getting more and more complex. We need end this course by containerizing a multi component microservice application with Kubernetes and eventually deploying it to AWS. By the end of this course, you should have multiple practical example to show off your knowledge!Here are a list of thing you will learn in this course:What are Docker containers and why would we want to use itHow to build docker images and run docker containersHow to connect to a container from our host machineHow to persistent data inside of a database container How to build a multi-component application with docker-composeUnderstand the benefits and powers of KubernetesUnderstand the many different Kubernetes objectsUnderstand how a Kubernetes Cluster is structuredHow to containerize a multi-component application with Kubernetes How to push and pull images from image repositoriesHow to deploy a containerized application to AWS ECS and AWS EKSHow to build a production ready CI/CD PipelineI really hope you enjoy this course and learn a ton from it!
Overview
Section 1: Introduction
Lecture 1 What We'll Learn
Lecture 2 Some Stuff We Need to Download
Lecture 3 Installing Docker Desktop
Lecture 4 Docker Desktop for Windows User
Section 2: What is Docker
Lecture 5 A Little Analogy
Lecture 6 Relating Our Analogy to Docker
Section 3: Dockerfiles, Containers and Images
Lecture 7 Building a Small Node App
Lecture 8 Running Our Node App Locally
Lecture 9 Creating a Dockerfile
Lecture 10 We are Really Building an Image
Lecture 11 Understanding the Rest of the Dockerfile
Lecture 12 Building an Image and Running a Container
Lecture 13 Port Mapping
Lecture 14 Rebuilding Our Image
Lecture 15 Syncing Our Code with Bind Mounts
Lecture 16 Using Anonymous Volumes
Lecture 17 It's Not Docker's Fault!
Lecture 18 Ignoring Files with Docker Ignore
Lecture 19 Docker Layering and Caching
Section 4: Optional Challenge - Dockerizing an App
Lecture 20 The Challenge
Lecture 21 The Solution
Section 5: Deploying a Containerized Application
Lecture 22 An Intro to Control Plane
Lecture 23 Viewing Our GVC
Lecture 24 Pushing Our Image to an Image Repository
Lecture 25 Running a Workload
Lecture 26 Killing Our Deployment
Section 6: Multi Containers and Network Communications
Lecture 27 Application Overview
Lecture 28 How to Handle Multiple Component Applications
Lecture 29 Going Through the Starter Code
Lecture 30 Pulling Images From an Image Repository
Lecture 31 Building our Node Image and Running the Container
Lecture 32 Connecting Our Containers Through Localhost
Lecture 33 Utilizing the Container's IP Address
Lecture 34 Introducing Docker Networks
Lecture 35 Dockerizing Our React App
Lecture 36 Running into a Little Issue
Lecture 37 Client Side Rendering is the Problem
Lecture 38 Optimizing Our Workflow with Volumes
Section 7: Docker Compose for Multi Container Apps
Lecture 39 An Intro to Docker Compose
Lecture 40 A Little About YAML Syntax
Lecture 41 Writing the MongoDB Configuration
Lecture 42 Setting Environment Variables
Lecture 43 docker-compose up and docker-compose down
Lecture 44 Setting Up the Backend Container
Lecture 45 Testing the Integration
Lecture 46 Setting Up the Frontend Container
Section 8: Deploying to AWS with ECS
Lecture 47 Our Deployment Workflow
Lecture 48 Writing the Dockerfile
Lecture 49 Running the Container Locally
Lecture 50 Create an Image Repository and Downloading the AWS CLI
Lecture 51 IAM for Access Management
Lecture 52 Pushing Our Image to the Registry
Lecture 53 Creating an ECS Cluster
Lecture 54 Creating a Task Definition
Lecture 55 Running the Task with a ECS Service
Lecture 56 Configuring the Inbound Rules of Our Security Group
Section 9: Automating Our Workflows with a CI/CD Pipeline
Lecture 57 Redeploying Changes in the Codebase
Lecture 58 The Issues with a Manual Process
Lecture 59 The Solution is Automation
Lecture 60 Understanding a Production Grade Workflow
Lecture 61 Pushing Our Code to GitHub
Lecture 62 Creating a Pull Request
Lecture 63 Building the Integration Pipeline
Lecture 64 Setting up Branch Protection Rules (Not Really)
Lecture 65 Setting Up AWS Credentials in GitHub Actions
Lecture 66 Building and Pushing Our Image to ECR
Lecture 67 My Bad Everyone
Lecture 68 Downloading and Updating the task-definition.json File
Lecture 69 Deploying the Task Definition
Lecture 70 Fixing Our Deployment Issue
Lecture 71 The Major Issue with This Solution
Lecture 72 Blue/Green Deployments is the Optimal Solution
Lecture 73 Tearing Down the ECS Cluster
Section 10: Multi Container Deployment to AWS ECS
Lecture 74 Multi Container Deployment
Lecture 75 The Need for NGINX
Lecture 76 Multi Stage Dockerfile
Lecture 77 The Issues With Using a Database Container
Lecture 78 Setting Up Our Codebase for Deployment
Lecture 79 Pushing Our Image to AWS ECR
Lecture 80 Defining a Multi Container Task Defintion
Lecture 81 Adding Environment Variables
Lecture 82 Updating the Task Definition
Section 11: Time for Kubernetes
Lecture 83 Our New (Much Larger) Project
Lecture 84 Can We Just Do the Same Thing?
Lecture 85 Kubernetes to the Rescue
Lecture 86 Communication via Kubectl
Lecture 87 Installing Kubernetes
Section 12: Understanding Pods
Lecture 88 Writing Our First Manifest File
Lecture 89 Containers Run in Pods
Lecture 90 Selecting Kubernetes Objects With the apiVersion
Lecture 91 Understanding the Rest of the Manifest File
Lecture 92 Running Our Pod
Section 13: Kubernetes Services for Communication
Lecture 93 Writing a Service Manifest File
Lecture 94 How the NodePort Service Works
Lecture 95 Creating the Node and Mongo Pods
Lecture 96 ClusterIP Service for Internal Communication
Section 14: Deployments to Manage Our Pods
Lecture 97 What Happens if the Pod Crashes?
Lecture 98 Deployments to the Rescue
Lecture 99 Dissecting the Manifest File
Lecture 100 Creating the Frontend Store ClusterIP
Lecture 101 Creating the Deployment and ClusterIP For the Products API
Lecture 102 Creating the MongoDB Deployment
Lecture 103 Running All the Manifest Files
Lecture 104 Deployment for the Notifications API
Lecture 105 Deployment and ClusterIP for RabbitMQ
Lecture 106 Checking if Everything Works
Section 15: Environment Variables, ConfigMaps and Secrets
Lecture 107 Adding Environment Variables to Our Code
Lecture 108 Defining Environment Variables
Lecture 109 ConfigMaps for Commonly Used Environment Variables
Lecture 110 Hide Environment Variables With Secrets
Section 16: Ingress Service to Network Into the Cluster
Lecture 111 The Need for an Ingress Service
Lecture 112 Writing Some Ingress Configuration
Lecture 113 Some Product Data
Lecture 114 Manually Testing Out Our App
Lecture 115 Understanding the Ingress Configuration
Section 17: Kubernetes Volumes, Persistent Volumes & Persistent Volume Claims
Lecture 116 Our Data is Not Persisting!
Lecture 117 A Reminder on Volumes
Lecture 118 Kubernetes Volumes Are Not the Solution
Lecture 119 Persistent Volumes, for well… Persistent Data
Lecture 120 Persistent Volume Claims
Lecture 121 Writing the Config and Applying the PVC
Section 18: Deploying to Our App to AWS EKS
Lecture 122 The Deployment Process
Lecture 123 Creating a EKS Cluster with Eksctl
Lecture 124 Understanding Kubectl Context
Lecture 125 Creating the Twilio Secret in Prod
Lecture 126 Adding an AWS Ingress Load Balancer
Lecture 127 Defining the Host Domain
Lecture 128 Applying the Rest of Our Configuration
Lecture 129 Testing Our Deployed App!
Section 19: Building a CD Pipeline for Our EKS Cluster
Lecture 130 Updating Our Production Cluster
Lecture 131 The Steps Our CD Pipeline Needs to Take
Lecture 132 Creating a GitHub Repository
Lecture 133 Starting Our Deployment Workflow
Lecture 134 Building and Pushing Our Image to DockerHub
Lecture 135 Completing Our Pipeline By Updating Our Cluster
Lecture 136 It Worked!
Lecture 137 Deleting Our Cluster
Developers or devops engineers that want to learn more about containerization