Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Kubernetes and Docker Containers in Practice
Rating: 4.3 out of 5(17 ratings)
202 students

Kubernetes and Docker Containers in Practice

Application containerization using a combination of the dynamic duo, Docker and Kubernetes: On-premise or in the cloud
Last updated 7/2019
English

What you'll 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.
  • Develop, test and debug code while it is running inside a container.
  • Plan, configure and run your first containerized applications in production.
  • Build apps in containers using Docker and deploy them on Kubernetes.
  • Improve the configuration and deployment of applications on Azure Cloud.
  • Create your Azure Container Registry to securely store your container images.

Course content

2 sections46 lectures4h 30m total length
  • Course Overview5:35

    This video provides an overview of the entire course.

  • Introduction to the sample application6:42

    This video demonstrates the sample solution that is used during the whole video series.

    • Give an architectural overview of the sample application

    • Quickly display the source code pertaining to the sample application

    • Run the application

  • Authoring a Dockerfile for Each Application Service8:55

    Shows how to author a Dockerfile for the two services of the sample application that are custom built.

    • Explain what a Dockerfile is

    • Author a Dockerfile for the Java-based application service

    • Build the Docker image using the Dockerfile

  • Develop, Test and Debug a Service Running in a Container11:49

    This video shows how to develop, test, and debug line by line a .NET core application that is running in a container whilst the code is edited in a code editor running natively on the developer’s laptop.

    • Create a .NET Core web application in a container

    • Enable edit and continue type development inside the container

    • Author and run unit tests inside a container

  • Minimizing Docker Images Using Multi-Stage Docker Builds8:38

    This video shows techniques to minimize the size of a Docker image for a Java-based and a .NET core based application service.

    • Explain the benefits of a minimal Docker image

    • Modify an existing Dockerfile to a multi-stage version

    • Build the Docker image using the multi-stage Dockerfile

  • Using Docker Compose to Run and Troubleshoot Our Distributed Application Locally11:01

    In this video, Docker Compose is introduced as a tool that is primarily targeted at running, testing, orchestrating, and troubleshooting a multi-container application on the developer’s machine.

    • Describe the main features of the Docker Compose tool

    • Use Docker Compose to run the sample application

    • Use Docker Compose to stop and start individual services

  • Stateless versus Stateful Services4:10

    This video demonstrates introducing the learner to stateless and stateful services and explain what their key differences are

    • Contrast the two types of services, stateless on one and stateful on the other

    • List the main characteristics of a stateless service

    • List the main characteristics of a stateful service

  • Why You Should Create Stateless Services at All Costs3:16

    This video explains to the user in some depth why they should create stateless services at all cost

    • Point out that stateless services are easy to implement and scale

    • Discuss that updating stateless services is easy and straight forward

    • Explain that stateless services are the ones that contain most of the business specific logic and algorithms

  • Stateful Services Are Hard - Deal with Persistent State5:13

    In the video I reason why it is so extremely hard to build stateful services.

    • Explain why we need transactional behavior in a stateful service

    • Reason why availability of a stateful service is paramount

    • Justify why replication is essential for a stateful service

  • Build Stateful Services That Are Resilient and Scalable7:57

    This video conveys key ingredients that are needed to build a stateful service that is resilient, scalable, durable and fault tolerant

    • How to make a stateful service scalable

    • How to make a stateful service durable

    • How to make a stateful service fault tolerant and resilient

  • Storage Latency versus Storage Availability, versus Storage Cost7:56

    Here we list and discuss the considerations that need to be accounted for when talking about storage that is backing a stateful service

    • Categorize the criteria to be considered when selecting storage

    • Explain what latency means in the context of storage

    • Elaborate on availability and cost of storage

  • What is Sensitive Data and How to Deal with It?4:07

    In the first video of the section we are going to explore what sensitive data is, and how we should deal with it in a mission critical, distributed application.

    • Provide motivation for securing our distributed applications

    • Explain what sensitive data is

    • List building blocks of a secure software supply chain

  • Using Kubernetes Secrets10:44

    This video presents how to define, create and use secrets when running an application service on Kubernetes.

    • Introduce Kubernetes secrets

    • Prepare a simple Kubernetes cluster for development

    • Define and use Kubernetes secrets

  • Dealing with Secrets in Development6:48

    This section shows techniques one can use when dealing with secrets in development.

    • Recap use of secret on Kubernetes cluster

    • Create temporary dev secrets and map into application container

    • Use temporary dev secrets same way as Kubernetes secrets

  • How to Use External Secrets Such as HashiCorp’s Vault6:15

    This video introduces yet another way how developers often have to deal with secrets, namely when they originate in external sources such as AWS IAM, Foxpass or Hashicorp's vault.

    • Retrieve secrets from a Vault instance

    • Use external secrets in application

    • Create entrypoint script for container that retrieves external secrets

  • Signing Your Docker Images9:37

    The last video of the section about Securing a Distributed Application teaches how content trust works and how one can sign Docker images.

    • Explain content trust

    • Setting up a trust sandbox

    • Work with content trust

  • Logging the Right Way7:17

    The first video of section 4 discusses why logging is important and explains how an application service can be instrumented to produce logging information.

    • Explain how to log

    • Instrument a Java application with logging capabilities

    • Analyze a Python sample application that logs messages

  • Implementing Health and Availability Checks8:09

    This video shows the user how to implement liveness and readiness probes

    • Define the two probes, liveness and readiness

    • Elaborate on how a liveness probe is implemented and configured

    • Repeat the same for the readiness probe

  • Defensive Coding Techniques to Increase Resiliency4:12

    This video describes some techniques commonly used to cope with external services that are not reliable

    • Explain that the applications service depends on other external services

    • Analyze what could possibly go wrong outside of the service

    • Provide a list of coding recommendations

  • How to Make Your Services Scalable8:03

    This video explains ways that allow an application service to be scalable

    • Explain why to use caching extensively

    • Promote asynchronous programming and show code example

    • Discuss additional patterns useful to make services scalable

  • Enabling Zero Downtime Updates11:07

    This last video of the section shows how to use the rolling update deployment technique with Kubernetes which allows for zero downtime updates of your application services

    • Show, build and deploy a Python app in version 1.

    • Modify the application to create a version 2

    • Use rolling update to deploy version 2 causing zero downtime

  • Quick Review of Kubernetes Pods, ReplicaSets, Deployments, and Services12:05

    The first video of section 5 provides a quick review of the main Kubernetes objects such as pods, replica sets, deployments and services.

    • Describe and deploy a simple pod to single node Kubernetes cluster

    • Do the same for ReplicaSet and Deployment

    • Explain and create a Kubernetes service for a Deployment

  • Creating Kubernetes Deployment Templates10:04

    This video leads through the definition and use of deployment templates for the various components of our sample application

    • Revisit the architecture of the sample app

    • Introduce Helm and deploy Kubernetes via Helm

    • Define and apply Deployment template for the producer

  • Using Kubernetes as Orchestrator11:58

    This video demonstrates some of the main features of Kubernetes as a container orchestrator

    • Explain how to show extensive information about the cluster

    • Deploy, scale and self-heal a service

    • Grow the cluster by adding a node

  • Deploying your Application On-Premise or in the Cloud4:46

    This video shows how the sample application can be deployed into a production ready, fully hosted Kubernetes cluster on Google cloud.

    • Deploy Kafka, ZooKeeper, Schema Registry and KSQL Server using Helm

    • Configure Kafka and deploy the producer

    • Test that the producer is working as expected

  • Peek into Two Hosted Kubernetes SaaS Offerings by Microsoft Azure & Google Cloud9:02

    The last video of the section introduces two fully hosted Kubernetes offerings in the cloud by Google, called GKE, and by Microsoft, called AKS.

    • Create a hosted cluster in GKE

    • Deploy and test a service on this cluster

    • Create a hosted cluster in AKS

Requirements

  • A Basic Knowledge of Linux and Docker is assumed.
  • No prior knowledge of Kubernetes is required.

Description

From handling versioning to enhancing security and portability, technologies such as Docker and Kubernetes have benefitted application development and cloud deployments. Microsoft offers excellent containerization services with its Azure Container Services, and also supports both Docker and Kubernetes. With the tool docker-compose, developers can then run, scale, test and debug the application, simulating a production like an environment on their development workstations. Docker allows you to package the many application services that are part of your distributed application into self-contained standard packages called containers. If you’re looking to ship and run distributed applications with Docker as well as manage container workloads at scale with Microsoft Azure then this Course is perfect for you!

This comprehensive 2-in-1 Course follows a step-by-step approach and focuses on how to use Docker and Kubernetes to package application services into standardized units of deployment. These units are easy to deploy and run on any platform on-premise and in the cloud. Initially, you’ll write Dockerfiles for each of the application services, develop, test and run service code running inside a container and optimize your Dockerfiles to use multi-stage builds to minimize the size of the resulting Docker images used in production. Moving further, you’ll learn to make an informed decision on Container orchestration in Azure. You’ll also learn to deploy, configure and manage Azure Kubernetes service clusters. Finally, you’ll learn to deploy applications to Azure Kubernetes Service and manage Container workloads at Scale!

By the end of this course, you'll learn all about Docker and Kubernetes and will be able to configure, manage, and deploy applications on Azure Cloud.

Contents and Overview

This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Hands-On Kubernetes, and Docker for Distributed Applications covers shipping and running distributed applications anywhere with Docker. 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. 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.

The second course, Containerization with Docker and Kubernetes in Azure, covers getting real with container orchestration in Microsoft Azure. The course focuses on application containerization using a combination of the dynamic duo, Docker and Kubernetes. It will show you how to get hands-on and take advantage of these two tools, alongside Azure Container Services, and improve the configuration and deployment of your applications on Azure Cloud. By the end of this course, you'll learn all about Docker and Kubernetes and will be able to configure, manage, and deploy applications on Azure Cloud.

By the end of this course, you'll containerize your applications to build a production-class container infrastructure in the ‘Kubernetes way’.

About the Authors

Gabriel N. Schenker has more than 25 years of experience as an independent consultant, architect, leader, trainer, mentor, and developer. Currently, Gabriel works as Senior Curriculum Developer at Confluent after coming from a similar position at Docker. Gabriel has a Ph.D. in Physics, and he is a Docker Captain, a Certified Docker Associate, and an ASP Insider. When not working, Gabriel enjoys time with his wonderful wife Veronicah and his children.

Karl Ots is a cloud and cybersecurity consultant, as well as an inventor, author, and international speaker, with a broad range of deep Azure expertise. He believes that cloud technologies are the key to successful digital transformation. He applies his passion and expertise to his work as a Managing Consultant at Zure. With professional experience in the technology field since 2007, Karl has been working with Microsoft Azure since 2011 in a variety of forums ranging from deep customer engagements to speak at large conferences such as Microsoft Ignite. Karl is a Microsoft Most Valuable Professional (MVP) in Azure, a Microsoft Certified Trainer (MCT) and holds the highest level MCSD and MCSE Azure certifications. Karl is a Certified Information Systems Security Professional (CISSP).

Who this course is for:

  • Developers, Architects, experienced DevOps & Software Engineers who:
  • - who want to use Docker and Kubernetes to solve many of the hard problems they run into with distributed applications.
  • - who are interested in learning all about Docker and Kubernetes, to practically configure, manage and deploy applications on Azure Cloud.