Containers have more or less taken over the world of application, web APIs, mobile endpoints and other forms of deployment. They have become the currency, the “table stakes” and de-facto application deployment unit. Their raise to the fore has brought about a whole host of use cases which weren’t practical or accessible in the world of “classic” paradigms of infrastructure and virtualization. Containers have also brought application deployment closer and more accessible to developers.
But as more use cases, deployment styles and exponential adoption of containers was ongoing, a new set of problems began to surface: how do you manage the ever growing number of containers in a deployment? How do you make sure containers have the right resources, deployed to the right machine, running with the correct parameters, how do you scale in and out without disruption? How do you make sure in a fleet of X containers that they’re all running and in healthy state? Enter Kubernetes.
Initially developed internally by Google to replace their own aging and complex container orchestration and management framework. It had to meet all the stringent standards and mind-boggling scale that Google operates on, but from the get-go an effort was made to make the learning curve and developer experience as approachable as possible. At certain point the creators made the case to Google to release kubernetes to the open source community – a crucial decision that has helped “k8s” (as it’s commonly referred to as) reach rock star levels of fame and mind share not just in the FOSS community but also across industries and businesses from small operations to gigantic multinational corporations with thousands.
The goal of this course is to give the attendees a solid foundation of the core concepts mentioned above both in theory and hand-on practice using docker, kubernetes and friends to deploy a sample multi-tier python web application. All attendees need is a laptop with minikube installed and an Internet connection.
Course Outline:
A few things to note:
* Due to the potentially high number of attendees, I will change the original format a little bit to make it a bit more lecture-style. It will have quite a bit of practical, hands-on parts, but those be mostly "follow along" style. The original format was optimal to up to 30 attendees, I was told by organizers it could up to 90! at EuroPython.
* If you want to follow along in the hands-on exercises it is *absolutely required* you have the following packages running on your machine (or a VM elsewhere):
* VirtualBox or xhyve (if OSX)
* Recent python and pip
* Docker
* Minikube
* kubectl
It's a lot of material to cover and most likely I won't be able to help you debug installation of the packages mentioned above.
`docker pull ipython/ipython`
`doker pull python:2`
`docker pull python:3`