This is more of a note to self than anything. You never really get to appreciate the problem kubernetes solves till you have experienced the headache of managing things like service discovery, individual containers, metrics server, reverse proxy, certificate management and the slew of other things to run your applications. The sheer amount of things to juggle to keep everything green and running increases exponentially with large environments – and yet kubernetes can help in bot small and large environments.
With a small application infrastructure it’s easy to whip up a simple deployment pipeline with a few repos and run them on some app servers with an nginx proxy that forwards requests to the application. The issue starts when other concerns come in, like:
- Zero downtime deployments
- Certificate management
- Separate environments e.g. staging and development
- Secrets management
How do you monitor the application to ensure that all is running as expected, what type of logging solution will be used to ingest all the application logs? what metrics system will you use to collect metrics from the application and the underlying infrastructure? does the application need secrets? how do you manage secrets such that a disgruntled employee that left last may does not still have creds to destroy your whole infrastructure?
These set of concerns tend to mount and stack on each other as you set off on your journey to build a reliable, scalable and resilient infrastrucure. Kubernetes (I’ll call it k8s from here on) really aims to serve as the operating system for your infrastructure in the sense that k8s takes a LOT of the burden of handling most of the tasks involved in the application lifecycle. This is huge! it is also extensible such that you can add functionality you feel you need – but even what you get out of the box is an amazing body of engineering.
Yes it is opinionated, some you may like and agree with, some you may not – but you’ll get over it, if you don’t propose a change with a PR or just use something else – life’s too short to squabble over petpeeves.
This post is not really to go into k8s features or benefits, there are countless articles on that topic. This is kind of an appology to myself and k8s as a project – cos I did not take enough time or apply it to a meaningful project in the past.
Now I am – and fully intend to be an absolute k8s beast. I’ll post some adventures soon.
The more you know, the more you know there’s more to know.Okezie – I literally just said it.