Curso Deploy and Run Apps with Docker Kubernetes Helm Rancher

  • DevOps | CI | CD | Kubernetes | Web3

Curso Deploy and Run Apps with Docker Kubernetes Helm Rancher

24 horas
Visão Geral

Neste Curso Deploy and Run Apps with Docker Kubernetes Helm Rancher, pegaremos um aplicativo Angular Client simples que se comunica com um servidor Node.JS, implantá-lo e executá-lo como contêineres Docker. Aprenderemos como construir imagens Docker de desenvolvimento e produção para esses tipos de aplicativos. Em seguida, seremos apresentados à orquestração básica de contêineres com Docker Compose.

Após isso iremos refatorar a aplicação para ser mais desacoplada, resiliente e escalável usando uma arquitetura de microsserviços, tornando a aplicação mais nativa da nuvem. Aprenderemos como podemos construir imagens Docker e publicá-las no Docker Hub automaticamente com Travis CI. Implantaremos o aplicativo conteinerizado na nuvem com a ajuda do serviço Amazon Elastic Beanstalk. Também veremos como automatizar a implantação no Elastic Beanstalk com Travis CI. Quando implantarmos o aplicativo no Elastic Beanstalk, também veremos como podemos usar serviços da AWS, como AWS RDS, AWS Elasticsearch e AWS Elasticache, em vez de executá-los como nossos próprios contêineres.

Então é hora do Kubernetes. Passaremos muito tempo no Kubernetes, pois é a escolha preferida da maioria das pessoas quando desejam executar uma carga de trabalho de contêiner em produção. Escreveremos arquivos de manifesto do Kubernetes (YAML) para implantar o aplicativo em um cluster do Kubernetes. Veremos a implantação em um cluster Kubernetes de nó único do Docker for Desktop local e em um cluster Kubernetes de vários nós na nuvem (Google GKE, Amazon Kops, Amazon EKS).

Em seguida, veremos o Kubernetes Helm, que pode ser usado para empacotar os arquivos de manifesto do Kubernetes para que possam ser versionados e lançados como uma entidade. Aprenda como usar o Travis CI para criar imagens docker e implantar automaticamente em clusters Kubernetes. Por fim, veja como você pode gerenciar vários clusters Kubernetes com o Rancher.

Objetivo

Após realizar este Curso Deploy and Run Apps with Docker Kubernetes Helm Rancher, você será capaz de:

  • Fundamentos do Docker
  • Construindo imagens Docker de desenvolvimento e produção
  • Comunicação de serviço em uma rede Docker
  • Construindo automaticamente imagens Docker com Travis CI e publicando no Docker Hub
  • Usando Docker Compose para orquestração básica de contêineres
  • Implantação de contêiner Docker no Amazon Elastic Beanstalk
  • Conceitos de Kubernetes, como Pod, Serviço, Implantação, StatefulSet, ConfigMap, Secret etc.
  • Arquitetura Kubernetes e abstrações de hardware, armazenamento e rede
  • Executando Kubernetes localmente com Docker for Desktop no Mac e Windows e MicroK8s no Linux Desktop
  • Comunicação de microsserviços em ambiente Kubernetes
  • Usando Helm para empacotar seus aplicativos para implantação no cluster Kubernetes
  • Configurando seu próprio repositório Helm para seus gráficos
  • Implante gráficos do Helm automaticamente no repositório do Helm com Travis CI
  • Executando Kubernetes na nuvem com Google Cloud Platform e GKE
  • Executando Kubernetes na nuvem com Amazon Web Services e Kops e EKS
  • Usando o Travis CI para implantar no cluster Kubernetes na nuvem
  • Gerenciando vários clusters Kubernetes com Rancher
Publico Alvo
  • Desenvolvedores
  • Arquitetos
  • DevOps
  • ISTO
Pre-Requisitos
  • Os alunos devem estar interessados ​​em aprender mais sobre como construir, executar e implantar aplicativos como contêineres
  • Os alunos devem estar interessados ​​em Kubernetes e querer aprender mais sobre ele tanto localmente quanto na nuvem
Materiais
Português/Inglês + Exercícios + Lab Pratico
Conteúdo Programatico

Introduction

  1. Introduction
  2. Visualizar

Docker

  1. What is Docker?
  2. Visualizar
  3. Installing Docker and Kubernetes on Mac
  4. Installing Docker and Kubernetes on Windows Professional and Enterprise editions
  5. Installing Docker and Kubernetes on Linux
  6. Running a Docker Container
  7. Exposing Ports for External Access
  8. Docker Volumes
  9. Looking inside a Docker Container
  10. Environment Variables
  11. Docker Container Logs
  12. Listing Running Docker Containers
  13. Stopping a Docker Container
  14. Listing Stopped Docker Containers
  15. Removing a Stopped Docker Container
  16. Docker Networks and Multiple Containers
  17. Docker Images
  18. Docker Image Repositories

Course Application

  1. Application Architecture Overview
  2. Visualizar
  3. Clone Source Code Project
  4. Create your own GitHub Project for the Source Code
  5. Walkthrough of Source Code

Run the Course Application

  1. Introduction and Development Framework installations
  2. Visualizar
  3. Check available ports
  4. Create a Docker Network
  5. Start a PostgreSQL Database Container
  6. Start a Redis Cache Container
  7. Start an Elasticsearch Search Container
  8. Start the App Backend (API)
  9. Start the App Client (Angular) and Test the App

"Dockerizing"/"Containerizing" the App Solution

  1. Introduction
  2. Visualizar
  3. Creating a Dev Dockerfile for the App Backend (API)
  4. Change App Backend (API) to use Docker Network
  5. Building an App Backend (API) Docker Image
  6. Creating a Dev Dockerfile for the App Client (Angular)
  7. Change App Client (Angular) to use Proxy
  8. Building an App Client (Angular) Docker Image
  9. Creating a Dev Dockerfile for the Proxy (Nginx) including Custom Configuration
  10. Building a Proxy (Nginx) Docker Image
  11. Commit and push changes to GitHub

Run the fully "containerized" App Solution

  1. Start the App Backend (API) Container
  2. Start the App Client (Angular) Container
  3. Start the Proxy (Nginx) Container
  4. Test it out (also changing code)
  5. Stop everything and clean up

Basic Container Orchestration (Docker Compose) and Initial App Redesign

  1. Introduction
  2. Visualizar
  3. Writing a Docker Compose file for App Solution
  4. Start the App Solution and Test
  5. Source Code for API Server Update
  6. Update App Backend (API) Source Code
  7. Creating a Dev Dockerfile for Postgres that Creates Todo db
  8. Create App Backend (API) Start Script that Checks Elasticsearch Connection
  9. Update Docker Compose file so it Builds Images and Sets Start Script for API
  10. Start the App Solution with Initial Build and Test
  11. Stop Redis and See if it Works with just Database
  12. Add Named Volumes for Persistent Data
  13. Save App Solution Project
  14. Stateless vs Stateful Containers
  15. A bit about Health checks
  16. Desired App State and Actual App State
  17. Accessing a Container and Executing a Command
  18. Docker Compose seems Powerful, why do we need anything else, such as Kubernetes?

Re-design of App to be Cloud Native (Microservices)

  1. Introduction
  2. Visualizar
  3. Clone Source Code Project
  4. Create your own GitHub Project for the Source Code
  5. Walkthrough of Source Code
  6. Docker Compose file Walkthrough
  7. Service to Service Intercommunication
  8. Start the App Solution with Initial Build and Test
  9. Stopping the Todo Cache Ingestion, add new Todo, start Todo Cache Ingestion
  10. Scaling the Todo Cache Ingestion

Create Production Images and Push to Docker Hub

  1. Introduction
  2. Visualizar
  3. Change to Development Tag in Docker Compose
  4. Creating a Production Dockerfile for the App Backend Services (Node.JS)
  5. Creating a Production Dockerfile for the App Client (Angular)
  6. Docker Registries
  7. Pushing Images to Docker Hub
  8. Create Production Docker Compose File
  9. Run App Solution with Production Images via Docker Compose
  10. Push all built Production Images to Docker Hub
  11. Save the Project

Creating an Automated Build (CI) and Push Production Images to Docker Hub

  1. Introduction
  2. Visualizar
  3. Setting up a Travis CI account and Associate with GitHUb project
  4. Source Code for Travis CI configuration
  5. Enable Travis CI (.travis.yml) in GitHub Project
  6. Code to Install Google Chrome in Todo View Dev Image
  7. Commit changes and Watch Travis CI Build
  8. Show Travis CI build status in GitHub project

Creating an Automated Deployment (CD) to Amazon Elastic Beanstalk

  1. Introduction
  2. Visualizar
  3. Overview of AWS VPC and Security Groups
  4. Create an AWS Account
  5. What does the cost / billing look like for this development / test deployment?
  6. Create an AWS Security Group for App
  7. Create AWS ElastiCache Instance - replaces todo-redis
  8. Create AWS RDS Database Instance - replaces todo-postgres
  9. Download PgAdmin and set up Todo table
  10. Create AWS Elasticsearch Instance - replaces todo-elastic
  11. Create App Environment in AWS Elastic Beanstalk
  12. Create AWS PEM File and access Elastic Beanstalk EC2 instance
  13. Source code for Elastic Beanstalk Deployment Description (Dockerrun.aws.json)
  14. Create Elastic Beanstalk Deployment file (Dockerrun.aws.json)
  15. Documentation for Dockerrun.aws.json
  16. Configure Environment Properties in Elastic Beanstalk Console
  17. Source code for Travis CI (.travis.yml) deployment section
  18. Configure Travis CI (.travis.yml) to Deploy to Elastic Beanstalk
  19. Commit Changes and Watch Deployment
  20. Troubleshooting Deployments to Elastic Beanstalk
  21. Clean up AWS Services

Kubernetes - Getting Started

  1. Introduction
  2. Visualizar
  3. Taking it for a test run
  4. Hardware representation: CPU and RAM
  5. Hardware representation: Storage
  6. Hardware representation: Network
  7. Namespaces - partition your applications
  8. Pods and ReplicaSets - package your applications
  9. Deployments - controlling pods
  10. Services - make your apps available externally
  11. Nginx Ingress Controller installation and testing
  12. Ingress - consolidate access to services
  13. ConfigMap Example YAML
  14. ConfigMap - configure your application
  15. Secret - configure passwords, tokens etc in a secure way
  16. Liveness and Readiness Probes Example YAML
  17. Liveness and Readiness Probes - check the health of your application
  18. Persistent Volume Example YAML
  19. Persistent Volumes (PV) and Persistent Volume Claims (PVC)
  20. StatefulSet Example YAML
  21. StatefulSets - running stateful containers

Kubernetes - Running the Todo App in a local K8s cluster

  1. Introduction
  2. Visualizar
  3. Introducing Kompose
  4. Clone Todo App project with Kubernetes YAML
  5. Create your own GitHub Project for the Source Code
  6. Walkthrough and Update Todo Kubernetes YAML
  7. Update Account Name for Docker Images
  8. Build and Publish Docker Images to Docker Hub
  9. Running the Todo App Solution in Kubernetes
  10. Troubleshooting the Todo App Deployment (NEW 2020-01)
  11. Troubleshooting Kubernetes Deployments

Kubernetes - using Dynamic Storage Provisioning locally

  1. Introduction
  2. Updating PVCs to use default storage class
  3. Run and see the PVs being dynamically provisioned

Development Environment

  1. A word about what development environment to use

Helm - Package and Release the Application

  1. Introduction
  2. Visualizar15:36
  3. Installing Helm
  4. Installing Kubernetes Dashboard with Helm
  5. Create Helm Chart for Todo App
  6. Install Todo App with Helm Chart

Helm - Setting up your own Repository to host Charts

  1. Introduction
  2. Visualizar
  3. Creating a GitHub Repository to host Helm Charts
  4. Publish the Todo App Chart to the Repository
  5. Deploy Todo App Chart from Remote Repository
  6. CI / CD Pipeline overview
  7. Move Todo Chart Source Code to helm-charts master branch
  8. Source code for .travis.yaml file
  9. Publish Charts automatically with Travis CI

Kubernetes in AWS - Introduction

  1. Introduction
  2. Visualizar1
  3. Provision EC2 Instance to install from
  4. Install Scripts Source
  5. Install aws client, kubectl, and helm

Kubernetes in AWS - Create Cluster with Kops

  1. Introduction
  2. Visualizar
  3. Create kops IAM users
  4. Configure AWS client (config and credentials in ~/.aws)
  5. Installing kops (used to create clusters)
  6. Create S3 Bucket to hold Cluster configuration
  7. Define a cluster with kops
  8. Create a cluster with kops
  9. Install Helm Server (Tiller)
  10. Check default StorageClass
  11. Fix Elastic data permissions and Postgres data location
  12. Commands for creating a Tiller Service Account
  13. Create Service Account for Tiller with Role Cluster-Admin
  14. Deploy Todo App with Helm
  15. Upgrade Todo App with Helm - change chart
  16. Upgrade Todo App with Helm - change source code
  17. Auto Healing - What happens during a Worker Node failure?
  18. YOU ARE BEING BILLED NOW - THIS AWS CLUSTER COSTS MONEY!

Kubernetes in AWS - Auto Deploying with Travis CI5

  1. Introduction
  2. Visualizar
  3. Source code for updated .travis.yml
  4. Update .travis.yml to Tag with Build Number and deploy to AWS k8s cluster
  5. Update Travis CI my-todo-cloud-k8s project with new Env Vars and Deploy
  6. Delete cluster

Kubernetes in AWS - Create Cluster with EKS

  1. Introduction
  2. Visualizar
  3. Extra AWS Policies JSON
  4. Create extra AWS Policies
  5. Create eks IAM user
  6. Configure AWS client (config and credentials in ~/.aws)
  7. Install eksctl and aws-iam-authenticator tools
  8. Create a cluster with eksctl
  9. Install Helm Server (Tiller)
  10. Deploy Todo App with Helm
  11. Delete cluster

Kubernetes in Google Cloud Platform (GCP) - GKE

  1. Introduction
  2. Visualizar
  3. Introduction to Google Cloud Console
  4. Create a TodoApp Project and Enable Billing
  5. Install and Configure gcloud CLI
  6. Create GKE cluster from UI and gcloud CLI
  7. Connect to cluster with gcloud CLI and kubectl
  8. Check default StorageClass
  9. Install Helm Server (Tiller)
  10. Deploy Todo App with Helm
  11. Delete cluster

Kubernetes Cluster Management with Rancher

  1. What is Rancher?
  2. Provision EC2 instance to run Rancher Server on
  3. Install Docker on EC2 instance (Rancher will be installed via Docker)
  4. Install Rancher and Access UI
  5. Rancher UI Walkthrough
  6. Configure Authentication with GitHub
  7. Create Google GKE Cluster from Google Cloud Console
  8. Import Google GKE Cluster
  9. Inspect the imported Google GKE Cluster
  10. Create Google GKE Cluster
  11. Create Amazon EKS Cluster
  12. Install Helm Server (Tiller)
  13. Remove Namespace Definitions from Todo App Chart
  14. Add Catalog with Todo App
  15. Deploy Todo App to Single Cluster
  16. Upgrade Rancher to version 2.3
  17. Deploy Todo App to Multiple Clusters
  18. Monitor the health of Clusters
  19. Delete clusters
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h