Course Code: dockubadvbsk
Duration: 30 hours
Prerequisites:

For Docker

  • A general idea of virtualization or container software
  • Familiarity with Linux and the command line, but not mandatory
  • A general understanding of software installation, packaging, dependencies, etc.

For Kubernetes

  • Experience with Docker containers
  • Familiarity with the Linux command line
  • An understanding of networking concepts
  • A general understanding of "continuous integration" (CI) / "continuous deliver" (CD) concepts

This course is for following professionals:

  • Software Professionals (Developers & Operations)
  • Testing Professionals
  • Software Architects and Designers
  • DevOps Engineers
  • Managers who are technical subject matter experts, leading software development projects
Overview:

Docker is an open-source platform that automates the building, shipping and running of software applications inside containers. Multi-container Docker applications can be further defined using Compose. Swarm is a tool that controls a cluster of Docker hosts and exposes them as a single "virtual" host. By pooling together numerous Docker engines, Swarm allows IT operations teams to transparently scale up their software deployment to many hosts. You will also learn how to use Kubernetes to automate deployment, scaling, and management of containerized applications at scale in a clustered environment. Finally, on how to streamline the process of installing and managing Kubernetes applications with Helm.

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

  • Set up and run a Docker container.
  • Deploy containerized server and web application.
  • Build and manage Docker images.
  • Set up a Docker Swarm and Kubernetes cluster.
  • Deploy Docker hosts across multiple machines using Compose and Swarm.
  • Manage a Swarm cluster in a live lab environment.
  • Secure and troubleshoot Docker hosts within their Swarm cluster.
  • Use Kubernetes to deploy and manage different environments under the same cluster.
  • Secure, scale and monitor a Kubernetes cluster.
  • Share applications as Helm charts.

Each topic features a variety of exercises & assignments for learners to practice and meet the learning objectives of this course.

Course Outline:

 Docker (1 - 2 day)
 Concepts / intro
 Virtualization overview
 Building images
 Using volumes
 Networking and service discovery
 Docker-Compose
 Troubleshooting
 Kubernetes (1,5 - 3 days)
 Concepts / intro
 Cloud native apps design
 Core concepts: Pods, Labels, Controllers, Services, Secretes, Namespaces
 Service discovery, scaling and load balancing
 Ingress controller and reverse proxy
 Networking and Network Policies
 Volumes, PVC and Storage Classes
 Kubernetes installation, initialisation and maintenance
 Authentication, Authorization and Access Control
 Applications Auto Scaling
 Advanced Scheduling
 Achieving High Availability on the cluster and application level
 Helm
 Troubleshooting
 DevOps and automation beyond Kubernetes (0 - 0,5)
 Concepts / intro
 CI/CD using GitLab (demo)