Kubernetes Kickoff

In this workshop we will cover the Kubernetes architecture and way of thinking. We will start the workshop with a theoretical overview of the Kubernetes architecture, way of thinking and general best practices. After that we will continue with the hands-on part - building a real ecommerce system.

The hands on part has a goal of building a real production-ready ecommerce system, which we evolve from a basic configuration of a Pod running a database and a web server, to a scalable system supporting Stateful databases, scalable frontends, networking and ingress.

Full agenda:

Intro to Kubernetes

We’ll start off by introducing the major components of Kubernetes and their interactions with each other. The intro will cover how to think in Kubernetes concepts, interacting with your cluster, what are the main Kubernetes primitives and how controllers do the heavy lifting for you.

Deploying a sample app

Next we’ll deploy a ecommerce solution, including a frontend, backend and database, albeit in a very simplistic configuration. This will provide a foundation which we will evolve into a real production system. We’ll cover the issues this configuration presets and a plan to evolve it.

Extracting microservices and setting up networking

During this part we’ll extract various components into standalone units - frontend, backend and database, using proper controllers to ensure scalability and self healing and setting up appropriate network mechanisms to ensure their communication.

Exposing your app to the world

With the basic architecture in place, we’ll expose your ecommerce store and microservices on a public IP using the Kubernetes Ingress mechanisms. We’ll cover the most common Ingress controllers and how to expose different services through different API endpoints.

Adding persistence

The MSB Platform supports real Persistent Volume support, which we’ll integrate using appropriate Kubernetes Controllers to ensure recovery of data in case of failures. We’ll transform our database configuration to utilise these mechanisms and analyse how the system recovers from failure scenarios.