One of the things I can be thankful for in my role as an SRE is that I get to investigate and chime in on how we should be deploying and hosting the software services we build.
Predominantly my days involve working with Microsoft Azure as this is where most of the services I look after are hosted, I'm regularly jumping between the UK and European data centres as we deploy things and tune them to make them run better.
One of the on going tasks I've taken on is the care and feeding of our Kubernetes environments. We currently have three of them, one pre-production service and two production services (Mirrored in different data centres, in case one has 'issues'). I can safely say that after nearly 8 months of looking after them, upgrading them and rebuilding them that I truly am Jon Snow.
I know nothing of Kubernetes.
I've barely scratched the surface of how you manage and run Kubernetes, only the fact that Azure looks after the masters and gives us a starter for 10 which makes running things even remotely viable.
Okay okay so maybe, just maybe, this is a little bit hyperbolic but trust me - it's how I feel most days when new unknowns are hitting me.
Kubernetes is a wonderful tool with many great features some of which really suit what we are doing, I was thinking about how we can leverage Kubernetes for future projects and it hit me.
Maybe we shouldn't.
The thought went further, if we shouldn't - maybe other people shouldn't either?
The overhead that Kubernetes brings is only worth it is probably only suitable for large IT estates, or high functioning IT Teams who have the innate ability to deliver software services on top of a complex system like Kubernetes.
New projects in their infancy, or small to medium enterprises should probably steer clear of Kubernetes until it provides some killer feature or functionality that they cannot be in production without. Otherwise these S.M.E's risk taking on a large portion of technical complexity for reason beyond the cool factor of the software.