First things first
If you really think about it, the biggest difference between the wildly popular Kubernetes project and the once-popular but now in-transition OpenStack project is the 4-year gap between when they were launched publicly. OpenStack was launched in 2010, when AWS was really the only game in town and Google Compute Engine didn't even exist. Kubernetes was launched in 2014, at which time it was abundantly clear that AWS, Azure and GCP were going to dominate the infrastructure for decades to come.
So while it made some sense for OpenStack to directly position itself as a private alternative to AWS, it would have been crazy for Kubernetes to do anything similar. Rather, the Kubernetes community was able to position the technology as a bridge between those big three cloud providers and even private data centers. Write once, deploy anywhere is a much more compelling vision.
You could go on all day about the technological differences -- containers versus Iaas/VMs, primarily -- but those might have sorted themselves out in the end anyhow. Let's not forget, Docker wasn't even a thing in 2010, and the world learned a lot about DevOps, microservices and infrastructure in general in the period between 2010 and 2014 (think about NoSQL, Hadoop, Cloud Foundry, PaaS, etc). Webscale, mobile, streaming and other outside forces helped fundamentally change the way applications had to be built and their infrastructure had to be managed.
All these things also helped change the world's views about and relationships with open source. And by the time Kubernetes was launched, it was pretty clear that the one-project-to-rule-them-all approach probably wasn't going to work. Modularity, composability and community contributions were going to be critical to its success -- a vision amplified by the creation of the Cloud Native Computing Foundation, with its collection of projects all following the same direction but not all intrinsically related to one another.
I say all this because I read a bunch of really good pieces this week analyzing the state of both OpenStack and Kubernetes. Check them out:
- OpenStack at a crossroads (RedMonk)
- OpenStack in transition (TechCrunch)
- Will Kubernetes collapse under the weight of its complexity? (InfluxData)
- The Kubernetes ‘fork’: Open source purists miss the point (InfoWorld)
- Kubernetes won – so now what? (RedMonk)
Also, if you're curious about the future of Docker in a world of Kubernetes and open container formats, check out this blog post about Kubernetes supporting Containerd. I don't think it's a critical situation yet, but it will put more pressure on Docker to ramp up the value of its commercial offerings and keep its open source projects innovating strongly.