My first attempt at learning Kubernetes was about a year ago. I've managed to setup a minikube instance and run a cluster of RabbitMQ + monitoring stack on top (Prometheus and Grafana). While this all worked well inside a single minikube instance, doing such lab activities without being able to project my meager experience onto real-life project did not provide for a great learning opportunity.

Since then I still didn't get my hands really dirty with k8s in any way. Fact is - I almost gave up hope learning it someday. But that was until I found that you can get Brendan Burns' "Designing Distributed Systems" e-book for free from Microsoft.

The book is basically a catalog of different patterns that could be used when you run your application in containers - so we're talking Docker and k8s in particular. It is conveniently broken down into articles each dedicated to specific pattern, and all articles are grouped into three parts:

  1. Single-node patterns - covers only patterns applicable to just one node in a cluster.
  2. Serving patterns - those that define how entire application runs in a cluster
  3. Batch computational patterns - covers different aspects of processing large amount of data

My plan of course is to go through each pattern while supporting theory with hands-on examples from the book. For that I've created a GitHub repository, where I'm going to track my progress of working on those hands-on examples.

So, happy trails to me!