A chief concerns I’ve discussed with friends in the OpenStack community about and have expressed at past Summits is the possibility that OpenStack is turning into a niche technology. As readers of this blog know, I am a big OpenStack supporter and have spend the past several years working to help the project succeed in the open source space and also commercially. The truth, however, is my belief that OpenStack can be a ubiquitous platform for running modern applications is waning and I am seeing trends that lead me to believe it is becoming a niche technology that will be used only by a small slice of the market. I want to share why I think this way and where OpenStack may be headed. Again, I do so as a member of the OpenStack community who wants the project and technology to succeed.
Fundamentally, I believe that certain trends have put the project between a rock and a hard place. In particular, I see OpenStack being pressured by three trends.
- The continuing advancement of public clouds – Public clouds, like AWS and Azure, continue to gain adoption not only among startups but also enterprise customers. As that trend continues, OpenStack finds itself in a tough position. The more workloads which move to the public cloud, the smaller the addressable market is for OpenStack private clouds. And the past few years seems to support the thesis that the market can only support so many OpenStack vendors. Initially, the project had hoped to compete with AWS by offering an open source cloud alternative. But that has not worked out because OpenStack has not been able to deliver on either the richness of services to help developers or the economies of scale of the leading public clouds. Much of that failure has to do with the project’s decision to integrate OpenStack with an ever growing ecosystem of legacy vendors. As a result, the project has been more focused on integrating vendor products than on building useful services for developers. As noted cloud architect, Adrian Cockcroft observed, “OpenStack was focused on solving the operations problems, and didn’t do enough to solve problems for developers early on.”
- The Enterprise’s desire for an Open Source VMware alternative – OpenStack was initially created to provide an alternative open source platform to AWS for running modern cloud-native applications. However, with the increasing influence of traditional enterprises and legacy vendors, the focus is turning towards making OpenStack a vSphere alternative for running legacy applications (I am talking specifically about using OpenStack with KVM). Legacy vendors, in particular, see this turn as a way to stay relevant in a world where the public cloud and open source technologies grow in dominance. Those vendors who recognize that OpenStack was not initially architected to run these applications are now working to move the community towards adding infrastructure resiliency into the project. This has created a situation where we are actually trying to mesh two opposing architectural patterns. As a result, the project is becoming overly complex as OpenStack attempts to be a platform suitable for every workload that integrates with every infrastructure technology.
- The rise of containers for running modern applications – One trend that was not expected by the OpenStack community is the momentum behind containers for running modern applications. While the OpenStack community has been busy deciding what type of cloud they want to be, the container ecosystem has emerged to create an ecosystem focused on building a platform for modern applications. It appears likely now that users who want to run these applications on-premises will bypass OpenStack in favor of platforms that have been designed to use containers, such as Kubernetes, Apache Mesos, or Cloud Foundry. It is true that OpenStack has started focusing on running containers through projects such as Magnum. This makes sense if you are an a current OpenStack user and want to leverage the work you’ve put into creating your cloud for running containers. However, if you are not a current OpenStack user, what advantage do you gain by taking on the burden and added complexity of trying to stand up an OpenStack cloud underneath Docker and Kubernetes or Mesos? The incentive for running OpenStack in order to or in addition to running containers doesn’t seem to exist given the relatively low rate of current OpenStack adoption.
As I’ve said, I am not writing this as an OpenStack detractor but as a community member. I want OpenStack to succeed. But for OpenStack to progress beyond where it is today, the project should focus on a narrower set of use cases, like building an elastic infrastructure that enables developers building modern applications. OpenStack should focus on making it easier for developers to consume its services and less on how to integrate with every vendor technology in the world. Otherwise, we face a future where VMware and Microsoft dominate for running legacy applications, Container based platforms dominate for running modern applications, and OpenStack is squeezed into a narrow niche where it has only a small slice of the larger pie.