Over the last couple of months I have been playing with Kubernetes (K8s) due to the addition of PKS (Pivotal Container Service) to the PCF offering.
The 1st thing that I noticed after using PAS (Pivotal Application Service) for 18 months is that with K8s you have to do more things to get you application running and accessible. A large number of people I talk to seem to think that K8s solves all the problems they have (forget culture and other non-technical aspects), I suspect this is all down to hype!
The key thing that we should be trying to do with new technology is help enable organisations to focus on what they are good at with the path of least resistance (e.g. banks focus on offering financial services rather than being the “best” at creating operating systems or building platforms). It is not just me that has these type of thoughts, someone much wiser and smarter than me in this space has commented on it in the past;
What we should be doing is looking at the right abstraction to run the business value workloads. PaaS are great for applications that are “cloud native” and are stateless while some workloads are great to run at a CaaS layer, and others much at a much higher abstraction like FaaS (Function as a Service).
To circle back round to the comment I made earlier about needing to consider more “things” to get applications up and running on vanilla K8s compared to a PaaS. A colleague Ben Wilcock put together a nice illustration of deploying an application to both a PaaS (cloud foundry, or PAS in this case) and K8s (CaaS, PKS in this case);
As you can see from a developer perspective much more configuration is needed, a good amount of YAML architecting.
So what is the point I am trying to make?
What I wanted to highlight is that we need to select the right level of abstraction for the workload rather than trying to shoehorn everything into the current hype technology. Some applications are perfect for CaaS, others PaaS and certain for FaaS. In fact standard VM’s from an IaaS could well be a good fit for some workloads. Don’t limit your thinking to try and find a problem for K8s to fix, or any technology for that matter. Look at what you are trying to achieve and select the best option to achieve it.