Managing Stateful Applications
The Managing stateful applications workshop is a whole day workshop designed to teach participants concepts and techniques regarding managing State in Kubernetes.
As any other resource, Kubernetes abstracts the interface to Storage providers, but additional considerations have to be taken compared to more ephemeral resource like Compute and Memory.
After being introduced to the Kubernetes storage concepts, this workshop will take participants through a series of exercises covering use-cases using real world technologies.
Introduction to Kubernetes storage concepts
We’ll start by covering basic Kubernetes storage abstractions and usage patterns, including Multi-container Pods, StatefulSets, PersistentVolumes and PersistentVolume claims using real world examples. We will also cover interfacing with public cloud providers.
Deep dive into building a scalable MySQL master-slave cluster
At this point, we’ll move from abstract into concrete and analyse a set of StatefulSet provisioning scripts designed to use the StatefulSet identity and networking mechanisms to build a working database cluster that supports scaling, backups, replication recovery and a clear separation of read and write access.
Building a real world system
This is an intensive hands-on session where we’ll use a real world example to manually build a set of provisioning scripts designed to use Kubernetes mechanisms to ensure persisted and scalable solution.
Scaling an Elasticsearch cluster
After having a deep understanding of Kubernetes mechanisms, we’ll cover using production-grade systems using open source packages. We will be deploying an Elasticsearch cluster using an operator, performing scaling of the cluster and recovering from failure scenarios.
Deploying a Cassandra Cluster
After getting introduced to deploying with Operators, we will deploy a Cassandra cluster by manual provisioning using StatefulSets, to understand how the guaranteed identity of StatefulSet Pods can be used to agree on Worker and Master nodes. We will cover scaling and recovering from failure scenarios in this environment.