dgt_k8s07 – Containers intro

Module Description: dgt_k8s07 – Containers intro

Overview

The module “dgt_k8s07 – Containers intro” is an introduction to the fundamentals of containerization technology for beginners. It covers the architecture of containers, their benefits, and their applications in modern software development.

Module Objectives

By the end of this module, participants will be able to:

  • Understand what containers are and how they work.
  • Compare and contrast containers with virtual machines VMs, focusing on their architectural differences and use cases.
  • Direct the machine in natural language to set up and manage containerized environments with popular tools like Docker and Kubernetes, and check that the result is what they asked for.
  • Describe how an application should be deployed in a containerized environment, and review the Dockerfiles and manifests the machine produces to do it.

Key Modules

  1. Introduction to Containerization
  2. Defining Containers: What are they, and why are they important?
  3. Historical Context: Evolution from traditional VMs to modern containers.

  4. Differences Between Virtual Machines and Containers

  5. Architectural Distinctions: Understanding the underlying technology.
  6. Performance Considerations: Resource efficiency of containers vs. VMs.
  7. Use Cases: When to choose containers over virtual machines, and vice versa.

  8. Container Orchestration with Kubernetes

  9. Introduction to Kubernetes: Core concepts and architecture.
  10. Managing Containers at Scale: Deployments, scaling, and management strategies.

  11. Natural-Language Lab Sessions

  12. Docker: asking the machine to install Docker and start your first container, then inspecting what is actually running.
  13. Kubernetes: describing to the machine the application you want deployed on a cluster, and reading the manifests it applies.
  14. Real-world Scenarios: practical exercises in which you verify and correct the machine’s work to solidify your understanding.

Here the approach of the academy is easy to see: once you know what namespaces, cgroups and images are, you can let the machine build and run containers for you while you stay in control, checking which image it pulled, which ports it exposed and whether the pod is really healthy rather than just “created”.

Special Consideration

As part of our exploration into the evolution and impact of computing technologies, we will reference Kat Cosgrove’s talk “Fly Me to the Moon: Punch cards, Supercomputers, and Kubernetes.” This presentation provides historical context on how far technology has evolved from early computing systems to today’s container orchestration platforms like Kubernetes, covering both the technical advances and the impact these technologies have had.

Target Audience

This module is intended for:

  • Software developers adopting containerization in their workflows.
  • IT professionals moving into DevOps roles.
  • Anyone interested in modern application deployment strategies.

The students can push their exercises to the Academy DevOps & SRE Git project. For this module, create a folder with your username as its name in the following subfolder: https://github.com/Garanti-Del-Talento/gdt_academy