You don't have to be an Ops expert to make Kubernetes useful! In this workshop, you will learn how to overcome complexity, and love Kubernetes as a Platform to deploy a Python web application or your data science and machine learning pipelines. You will learn how and when to use basic elements of Kubernetes like Deployments and Stateful Sets.
Once you understand these basic elements, you will learn how to extend Kubernetes using Python. You will learn how to define custom resources and controllers to automate all things related to your applications' life cycle, from ETL through sending email for password reset to where your imagination stops.
In the end of this workshop, you will have deployed a python web application and successfully extend Kubernetes with so-called operators to manage the complete life-cycle of your application.
Why you need this workshop?
Kubernetes is a platform for running applications on one or more computer. It provides a command line and a set of APIs to provision applications, virtual machines and even a complete cloud infrastructure. In this workshop, you will learn why Kubernetes is a great platform to host your applications or run your data pipeline consistently - whether you run on a single Raspberry Pi or tens of Virtual machines in the public cloud.
What will you do in this workshop?
You will see that deploying Kubernetes isn't hard. You can use a single node or a cluster. Furthermore, you will learn the differences and trade-off between managed Kubernetes and DIY approach.
After a basic introduction to Kubernetes, you will learn to deploy and run a web application written in Python using a Kubernetes deployment and store data in a data using a Stateful Set. You will learn how to define these resources using YAML manifests and learn to use a pure Python alternative to create these manifests.
Finally, you will learn how you can extend Kubernetes to more than just serving a web application to almost anything you want, using so-called Kubernetes Operators. To do this, you will create a Kubernetes "extension". You first learn how to store your own data inside Kubernetes, using Custom Resources. Once you define your own custom definitions, you will learn how to create a controller that interacts with this data and other objects in your Kubernetes.
The ultimate goal of this training:
By the end of this workshop, you will know how to deploy a Python application, and you will be able to extend Kubernetes using operators written also in Python.