The rise of CloudFoundry, Kubernetes have always been a curious thing for me. But, I understand why they are attractive to several organizations. These offer the next best thing to going 100% Cloud with a public cloud like AWS. This is attractive to several large organizations that are afraid of making full move to AWS. Developers can use CF or Docker+Kubernetes with existing skills. Embracing AWS 100% requires higher learning curve for Ops.
Lately I have been running into many more people that have adopted CloudFoundry. These are the organizations that have gone all-in with CF. ( When we say CF, it’s really Pivotal CF, others vendors don’t seem to have had any success ). They speak well about CF. CF is a comprehensive solution for them and they don’t need to go outside to get other components. CF has created an interdependent architecture offering much like how iPhone is. CF folks call this “Opinionated platform”. While CF is opensource and has a Foundation is irrelevant. Only thing relevant is Pivotal CF at this point. PCF has its own secret sauce that make their offering work well.
In contrast, Docker + Kubernetes is evolving in a different path. Kubernetes is not a complete enterprise platform, you have to bridge gaps yourself. There isn’t a single vendor in Kubernetes that offers a proven integrated solution. ( Redhat Openshift may come close to it, but I am not much in the know about OpenShift these days). There are developers who speak well of Kubernetes. In private conversations, enterprise architects say that it has gaps to make it an enterprise standard. Kubernetes ecosystem is an modular offering much like Android.
As you know, I am a huge fan of Clayton Christensen. In Innovators’ Solution he talks about Interdependent vs Modular architectures. Neither is good or bad. Each of these succeed during different phases of technology evolution. Interdependent architecture allow you to rapidly improve performance of not good enough systems. An example here is an existing application’s ability to be competitive against Cloud applications. Modular architectures allow you to get more efficiency from good enough commodity technologies.
When we talk about containers, several people would argue that they are a commodity technology. I tend to agree with this. There isn’t much competitive differentiation in containers, everyone can use them and everyone should. It is table stakes. The clustering and orchestration of containers is the new art. It is still new and evolving. This is not a commodity despite many solutions flooding the market.
So, what state is the market is in? It is early days. Which means an Interdependent architecture will continue to grow while modular will struggle. Modular will succeed when the market is over served. There is no evidence that market is over served at this point. I predict a rough terrain ahead for Kubernetes in the short term.
It is a realistic scenario that Docker (Swarm) and Mesos (DCOS) will succeed in create a compelling Interdependent architecture to compete against Kubernetes and overshoot the market.
At such point, Kubernetes based offerings can focus on being cost effective. In my opinion, we are still few years away from it. I do not see anyone trying to create an interdependent architecture using Kubernetes. Such an effort will not succeed given the dynamics of the foundation and community around it.
TL:DR — Rough days ahead for Kubernetes ecosystem and companies in it in the short term. It will need lots of patience and willingness to wait it out for them to succeed in future.