Deploy and Run Apps with Docker, Kubernetes, Helm, Rancher
Build, deploy, and run apps in Docker and Kubernetes. Use Helm to package apps. Manage multiple clusters with Rancher.
Description
In this course we will take a simple Angular Client application that talks to a Node.JS server and deploy and run it as Docker containers. We will learn how to build both development and production Docker images for these types of applications. We will then be introduced to basic container orchestration with Docker Compose.
After this we will refactor the application to be more decoupled, resilient and scalable by using a Microservice architecture, making the app more Cloud native. We will learn how we can build Docker images and publish them to Docker hub automatically with Travis CI. We will deploy the containerized application to the Cloud with the help of Amazon Elastic Beanstalk service. We will also look at automating the deployment to Elastic Beanstalk with Travis CI. When we deploy the application to Elastic Beanstalk we will also see how we can use AWS services such as AWS RDS, AWS Elasticsearch and AWS Elasticache instead of running these as our own containers.
Then it's time for Kubernetes. We will spend a lot of time on Kubernetes as it is the preferred choice for most people when they want to run a container workload in Production. We will write Kubernetes manifest files (YAML) to deploy the application to a Kubernetes cluster. We will look at deploying both to a local Docker for Desktop single node Kubernetes cluster and to a multi node Kubernetes cluster in the Cloud (Google GKE, Amazon Kops, Amazon EKS).
Then we will look at Kubernetes Helm that can be used to package the Kubernetes manifest files so they can be versioned and released as one entity. Learn how to use Travis CI to build docker images and deploy automatically to Kubernetes clusters. Finally see how you can manage multiple Kubernetes clusters with Rancher.
What You Will Learn!
- Docker fundamentals
- Building development and production Docker images
- Service communication in a Docker Network
- Automatically building Docker images with Travis CI and publish to Docker Hub
- Using Docker Compose for basic container orchestration
- Docker container deployment to Amazon Elastic Beanstalk
- Kubernetes Concepts, such as Pod, Service, Deployment, StatefulSet, ConfigMap, Secret etc.
- Kubernetes architecture and abstractions of hardware, storage, and network
- Running Kubernetes locally with Docker for Desktop on Mac and Windows and MicroK8s on Linux Desktop
- Microservices communication in a Kubernetes environment
- Using Helm to package your applications for deployment to Kubernetes cluster
- Setting up your own Helm Repository for your charts
- Deploy Helm charts automatically to Helm Repository with Travis CI
- Running Kubernetes in the Cloud with Google Cloud Platform and GKE
- Running Kubernetes in the Cloud with Amazon Web Services and Kops and EKS
- Using Travis CI to deploy to Kubernetes cluster in the Cloud
- Managing multiple Kubernetes clusters with Rancher
Who Should Attend!
- Developers
- Architects
- DevOps
- IT