Container and Kubernetes Essentials
Containers are becoming a fundamental technology skill to master for any job: DevOps Engineer, Software Engineer, Data Engineer or Data Scientist.
This course will start by answering the questions of why and how the container revolution came about by providing a short history of container technologies, from bare metal servers to virtual machines, to cloud-native microservices running in Docker.
The course will continue with a hands-on introduction to Docker and docker-compose. We will show why the portability of containers is so important in running the same application in multiple environments.
The last section of the course will consist of a hands-on demonstration of the most popular container orchestration technology today, Kubernetes. We will show how to run our application in a Kubernetes cluster, both locally and in the AWS cloud.
What you'll learn-and how you can apply it
- Determine what problems containers solve
- Create, use and update your own container images
- Witness the portability of containers by running the same images locally and on a remote server
- Use a container orchestration technology such as Kubernetes both locally and in the cloud
This training course is for you because...
- You a developer who wants to stay current with the latest technology
- You are a manager who needs to understand how containers work so you can manage teams that use them
- You work as a data scientist and are realizing you need to master containers to perform at the highest level
- You are in DevOps and want to solidify your knowledge of core container concepts
- Familiarity with Docker Guide: https://docs.docker.com/get-started/
About your instructor
Grig Gheorghiu works as the DevOps Lead at Reaction Commerce in Santa Monica. Grig has 25+ years of industry experience working in diverse roles such as programmer, test engineer, research lab manager, system/network/security/cloud architect, and DevOps lead. For the past 20 years Grig has been architecting and building the infrastructure for large consumer-facing and e-commerce websites such as Evite and NastyGal, as well as leading technical operations and engineering teams. Grig has a B.Sc. degree in CS from the University of Bucharest, Romania, and a M.Sc. degree in CS from USC in Los Angeles.
The timeframes are only estimates and may vary according to how the class is progressing
Part 1: Overview of containers and Docker. Running containers with Docker and ComposeLength (75 min)
- What is a container and why do I care?
- History of containers: bare metal, VMs, Linux lxc/Solaris zones, Docker
- Importance of Docker making it easy to manage what you used to be a complicated technology
- Containers help with packaging and portability
- Containers also help with getting more bang for your buck in terms of server resources that might be idle otherwise
- What is the container revolution and how is it uniquely relevant today?
- Containers have become the unit of deployment
- Containers play very well within the new “cloud native” world
- Containers can almost be identified with microservices
- In production, you need an orchestrator - hence the popularity of Kubernetes
- As you scale, you also need a service mesh (e.g. Istio)
- Things get complicated fast
- Things move very fast and break so you need to constantly be on your toes
- Running a Flask application in a Docker container
- Install Docker for Mac
- Write a Dockerfile
- Build and run a standalone Docker container
- Push Docker image to DockerHub
- Running a multi-tier Flask application with Docker Compose
- Install Docker Compose
- Write a docker-compose.yaml file for installing a more complex application (Flask + redis + PostgreSQL)
- Run application locally, then take the same docker-compose.yaml file and run it on an EC2 instance to show portability
- Break (10 min)
- Q&A (20 min)
Part 2: Introduction to Kubernetes Length (60 min)
- Show Kubernetes as part of Docker for Mac
- For non-Mac users, install minikube and use it for the rest of the demo
- Take the docker-compose.yaml file from the previous demo and turn it into Kubernetes manifest
- Run the Flask app inside Kubernetes
- Q&A (15 min)