O'Reilly logo
live online training icon Live Online training

Container and Kubernetes Essentials

Grig Gheorghiu

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

Prerequisites

  • Familiarity with Docker Guide: https://docs.docker.com/get-started/

Recommended Preparation:

Recommended Follow-up:

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.

Schedule

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)