“Upgrades of a cluster to a new OpenStack version required moon-landing-type planning and execution”
Yesterday SUSE, the once Red Hat competitor, announced they were discontinuing their development and sales of their OpenStack-based offering, to focus on their Kubernetes-based one, writes CloudBees CEO and co-founder Sacha Labourey. This announcement is interesting, not so much because it comes from SUSE, but it re-affirms once again, that Kubernetes has won the cloud API war. Let’s go back in time to see how…
As AWS started to have initial success with its public cloud offering, enterprises were quick to see the business agility and differentiation that a fully elastic, self-service infrastructure could give them. Who wouldn’t want that? But it was going to take enterprises a long time before they’d be willing to move their workloads to the public cloud en masse. Consequently, there was a big desire for an open cloud implementation that they could install on-premises. And so the market saw a flurry of startups and Open Source projects try to become the “next generation Linux”.
Born in 2010, OpenStack was one of those options and it had a lot of things in its favor. Backed by credible founders (NASA and Rackspace), implemented in Open Source, OpenStack was getting great visibility and massive contributions. Boosted by this initial success, an OpenStack Foundation was created in 2010 to manage the hundreds of companies that were investing on OpenStack: a true success story!
But OpenStack also faced unique challenges. It was a very big codebase, with lots of different modules, stabilization of the whole “thing” seemed to be an impossible mission, two installations would rarely be compatible, upgrades of a cluster to a new version required moon-landing-type planning and execution, and, an underlying tension among some of the key contributors didn’t help to get things resolved for the common good. Furthermore, the lack of a true certified environment slowed down the creation of a healthy ISV ecosystem, and, because its core mission was really focused on virtual machines, storage and network, OpenStack remained very “Ops”-centric: much like AWS at that time, developers were not considered a prime audience.
See also: Mark Shuttleworth on Taking Canonical Public, Legacy IT and Ubuntu, and his Botanical Garden
But while this was happening, the rest of the market didn’t stand still.
The acceptance of public cloud deployments was accelerating and a new cloud layer was starting to grow fast. Kubernetes, created by Google, made the strategic choice to not try to win the “VM” war, but to focus on a new and nimble “Lego block” that was getting all the attention from developers: containers. In doing so, Kubernetes also made sure to provide a number of core services that were directly useful to developers. And because it was (initially) pushed by a single vendor, albeit a big one, who didn’t intend to repeat OpenStack’s mistakes, Kubernetes was much simpler to install and maintain, and offered certified distributions that quickly led to the development of a healthy ecosystem. Furthermore, because it was not trying to be a VM-solution, but instead focused on “containers”, it was possible to install Kubernetes on top of any public cloud.
This means that unlike OpenStack – which was really a competing implementation and set of API to AWS, Azure and Google – Kubernetes became a new cloud abstraction layer that could run on top of any cloud (VM) solution! As an organization, it wouldn’t matter if you were to use AWS, Google Cloud, Azure or your own servers on-premises. You’d be able to deploy Kubernetes everywhere and use it as your new cloud API. Furthermore, because it was conceptually appealing to developers, they ended up being the first driver of that change. 20 years after J2EE, Kubernetes ends up playing the exact same catalyst role for the cloud-era.
In the last two years, all public cloud vendors have decided to offer Kubernetes as a native set of APIs (and services) on top of their cloud, for free. This, in turn, truly enabled the “hybrid-cloud” (or/and multi-cloud) strategy that enterprises have been dreaming about: a single development and deployment open platform, backed by any public cloud or on-premises.
At CloudBees, this is what we we help customers with every day: developers need the best DevOps platform to continuously build, stage and deploy their applications, throughout their hybrid Kubernetes journey, on-premises, and to multiple clouds. The destinations evolve, but the continuous delivery process they build remains the same.
The bottom line is that while OpenStack was trying to provide an equivalent to AWS to manage VMs, it was really only ever interesting to the IT-Ops audience. And that audience probably never felt it ever reached a level of simplicity and reliability that ever put at risk of displacement traditional VM solutions. Kubernetes on the other hand, took a paradigm shortcut, and by focusing on a finer-grain concept, containers, it was able to offer a unique agile mechanism on any infrastructure, a true experience for developers, and became the new abstraction layer for the cloud era. SUSE’s announcement is a late recognition of that reality.