Containers have taken an important role in existing IT configuration and deployment stacks. In the first part of this lecture we will go through the internals of what a container is made of, why they work well as a basic building block for complex applications, and cover cgroups and the different linux namespaces available as the key features they rely on.
The second part will focus on orchestrating complex distributed applications using Kubernetes, which in the last few years has built a large community around it. We will start with how to define and manage the deployment of a multi-tier application and go through how Kubernetes handles replication, restarts, log collection and other key features. We will finish briefly covering more advanced features such as ingress, pod and cluster auto scaling and monitoring.