Kubernetes and parenthood     
In the course of moving our applications to Kubernetes, we noticed a few analogies to parenthood.

Applications start small and need little space to be happy: a small bare-metal server is more than enough. It's easy to access them, they're usually at the same place you left them. A quick ping will check they're doing OK, and if you want to find out what's going on behind the front-end then a brief ssh is all you need.

As they start to grow these enclosures become too small. Initially you applaud their development and help them explore new geographies with a couple of new servers. Complexity is almost the same, and it actually helps you address concerns such as disaster-recovery location diversification.

But they keep growing. The more they want to break free, the more you doubt the next move. It all seems so complicated. What if they get lost and have a problem? Will you be able to help? Will you even find them? Finally, you take the leap and let them get onto a container orchestrator.

Life changes... Communication is harder: now you need to announce yourself with ingresses and interact through weird deployment facades. You never know where they are, you're not even sure how many there are, it seems like a small miracle when they respond after 3-4 service bounces. They're more distant than before. Gone are the days when you would access their command line. Now it's all about keeping secrets, predefined configmaps and resource quotas.

But goodness: the things they can do! They scale at the flick of a variable, they become resilient to hardware failures, they seamlessly jump from local machine to private cloud, they're never off even when they upgrade. In short they turn into something you don't quite comprehend, that scares you a bit, but that also makes you proud.
Click here to show all blog posts
Powered by Sense6