Hands-On Kubernetes and Docker for Distributed Applications

Video description

If you have a mission critical application that needs to be up and running 24/7 and each outage would cost you a lot of money and reputation then it is important that you have the right tools and processes in place to handle this requirement. Docker allow you to package the many application services that are part of your distributed application into self contained standard packages called containers. With the tool docker-compose developers can then run, scale, test and debug the application, simulating a production like environment on their development workstations.

This course shows you how Docker can be used to isolate your application services and their dependencies into a single self-contained unit that can reliably run anywhere. You will learn to build, ship and run distributed applications on any platform using Kubernetes as the orchestrator.

With Docker containers, your applications can run smoothly without you worrying about the environment where they run. This aids in improved security, better scalability, resilience and fault-tolerance, making life easier for developers and operators alike who need a standardized deployment and operations model.

By the end of this course you will be able to use Docker and Kubernetes to build distributed applications that are scalable, resilient, fault tolerant and secure. Furthermore you will be able to deploy these applications to any Kubernetes cluster running on any platform on premise or in the cloud.

What You Will Learn

  • Build resilient, scalable and highly available distributed applications running on any platform on premise or in the cloud.
  • Secure your distributed applications by using container’s built in security features and Kubernetes secrets to protect confidential data such as passwords and certificates.
  • Monitor and troubleshoot your application running in production and allow the application to self heal.
  • Update any service of your application at any time without causing downtime using rolling updates, blue-green deployments or canary releases.
  • Avoid cascading failures in your highly distributed application by anticipating failure and coding defensively.
  • Use Docker Compose to simulate a production like environment on your personal development laptop or workstation.
  • Develop, test and debug code while it is running inside a container.


This video course is for experienced DevOps and software engineers who want to use Docker and Kubernetes to solve many of the hard problems they run into with distributed applications. If you want to keep track of all you application components, orchestrate and administrate them in a consistent way, then you've come to the right place.

About The Author

Dr. Gabriel N. Schenker: Gabriel N. Schenker has more than 25 years of experience as an independent consultant, architect, leader, trainer, mentor, and developer. Currently, Gabriel works as Lead Solution Architect at Techgroup Switzerland. Prior to that, Gabriel worked as Lead Curriculum Developer at Docker and at Confluent. Gabriel has a Ph.D. in Physics, and he is a Docker Captain, a Certified Docker Associate, a Certified Kafka Developer and Operator, and an ASP Insider. When not working, Gabriel enjoys time with his wonderful wife Veronicah and his children.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Containerizing a Distributed Application
    1. Course Overview
    2. Introduction to the sample application
    3. Authoring a Dockerfile for Each Application Service
    4. Develop, Test and Debug a Service Running in a Container
    5. Minimizing Docker Images Using Multi-Stage Docker Builds
    6. Using Docker Compose to Run and Troubleshoot Our Distributed Application Locally
  2. Chapter 2 : Dealing with Persistent State
    1. Stateless versus Stateful Services
    2. Why You Should Create Stateless Services at All Costs
    3. Stateful Services Are Hard - Deal with Persistent State
    4. Build Stateful Services That Are Resilient and Scalable
    5. Storage Latency versus Storage Availability, versus Storage Cost
  3. Chapter 3 : Securing Your Distributed Applications
    1. What is Sensitive Data and How to Deal with It?
    2. Using Kubernetes Secrets
    3. Dealing with Secrets in Development
    4. How to Use External Secrets Such as HashiCorp’s Vault
    5. Signing Your Docker Images
  4. Chapter 4 : Building Resilient and Scalable Services
    1. Logging the Right Way
    2. Implementing Health and Availability Checks
    3. Defensive Coding Techniques to Increase Resiliency
    4. How to Make Your Services Scalable
    5. Enabling Zero Downtime Updates
  5. Chapter 5 : Preparing Production Deployments
    1. Quick Review of Kubernetes Pods, ReplicaSets, Deployments, and Services
    2. Creating Kubernetes Deployment Templates
    3. Using Kubernetes as Orchestrator
    4. Deploying your Application On-Premise or in the Cloud
    5. Peek into Two Hosted Kubernetes SaaS Offerings by Microsoft Azure and Google Cloud

Product information

  • Title: Hands-On Kubernetes and Docker for Distributed Applications
  • Author(s): Dr. Gabriel N. Schenker
  • Release date: January 2019
  • Publisher(s): Packt Publishing
  • ISBN: 9781788994033