|By Ignacio M. Llorente||
|February 21, 2014 01:00 PM EST||
We've crafted this post to answer a recurring question we've been hearing lately, specially from organizations planning to build their own private cloud:
How do you compare OpenNebula with OpenStack?...
This is indeed a complex question. There is no single answer because open-source projects and technologies present several dimensions. But we are far from afraid to answer it: the short, tl;dr version would be that they represent two different open-source models. While OpenNebula is an open-source effort focused on user needs, OpenStack is a vendor-driven effort.
This is neither a question of one being better than the other, they simply represent different approaches. Let us compare both open source options based on the following criteria: internal organization, governance model, roadmap definition, contributor profile, target user, product, and market competition. Obviously this comparison is biased (no way around that), but we have tried to be as neutral as possible.
A. Different Open-Source Project Models
Both projects release code under the liberal Apache 2.0 license, follow a transparent development process with a public roadmap, and have the same license agreement for new contributions. They present significant differences though, specially in:
- Internal Organization. While OpenStack comprises many different subprojects (14 at the time of writing this post) aimed at building the different subsystems in a cloud infrastructure, OpenNebula offers a single integrated, comprehensive management platform for all cloud subsystems.
- Governance Model. The main difference between both projects is in their governance model, mainly for the definition of the architecture, the release cycle and the roadmap. While OpenStack is controlled by a Foundation driven by vendors, OpenNebula follows a centralized, "Benevolent Dictator" approach. OpenNebula is managed by a single organization that focuses on the interest of the project and strategically leads it to ensure that meets users needs.
- Roadmap Definition. OpenNebula roadmap is completely driven by users needs with features that meet real demands, and not features that result from an agreement among the different vendors participating in the management board of the project.
- Contributor Profile. While in OpenNebula most of contributions come from the users of the software, the contributors to OpenStack are mostly vendors building their own OpenStack-based cloud product. Since we started OpenNebula six years ago, we wanted users to have a voice in the project and not to privilege contributors over users.
Now the question is,
Why is OpenNebula following a "Benevolent Dictator" management model?.
In our view, OpenStack is governed by a consortium of competitors, trying to create its own product or to provide compatibility for its particular device. The mixture of vendor motivations makes it increasingly difficult for a foundation to meet both the needs of the project and the monetization goals of each vendor. It is also interesting to remark that many of these vendors are also offering commercial products that directly compete with OpenStack components.
Traditionally, multi-vendor industrial consortiums are the best approach to commoditize a core component in the long term, mainly when there exists solid base software, but not to bring to market a complete enterprise-ready solution from scratch in the short term. In these situations the addition of more developers and members slows the project down, and the well-known Brooks law (The Mythical Man-Month) applies both at development and governance levels. OpenStack is reaching a point where the consensus based approach has limited the competitiveness of the project.
We believe that a centralized model with a strong individual leadership is the best way to quickly build a production-ready enterprise-class open-source product, mainly in the early stages of a fast growing market. Please do not pin this on us being control freaks; we do so because we want to create a great product and we want to take responsibility for the entire product and need to be responsive to our users. Benevolent dictator governance is the model followed by other successful open-source projects like Android or Linux Kernel, and, in our view, it is the most effective way to focus on engineering quality, to prioritize user needs, and also to ensure long term support.
The above reasons are the foundation of this claim: OpenNebula is made for users by users, OpenStack is made for vendors by vendors. This may seem like a daring statement, but we have been following this path for years, and haven't observed anything that proves this wrong.
B. Different Cloud Models
Although there are as many ways to understand cloud computing as there are organizations planning to build a cloud, they mostly fall between two extreme cloud models:
- Enterprise Cloud Model (Datacenter Virtualization): On one side, there are businesses that understand cloud as an extension of virtualization in the datacenter; hence looking for a VMware vCloud-like infrastructure automation tool to orchestrate and simplify the management of the virtualized resources.
- Public Cloud Model (Infrastructure Provision): On the other side, there are businesses that understand cloud as an AWS-like cloud on-premise; hence looking for a provisioning tool to supply virtualized resources on-demand.
Although OpenStack now tries to be everything for everyone, it was created as an open-source effort to compete against Amazon Web Services (AWS). Therefore while OpenStack is addressing the Infrastructure Provision segment; OpenNebula better meets the needs of Enterprise Cloud Computing. Since both tools enable infrastructure cloud computing, there is some overlap in the features they provide. However, each cloud model presents different architectural constraints and requires specialized interfaces, management capabilities and integration support. OpenNebula and OpenStack serve different needs and implement completely different philosophies.
C. Different Product Views
OpenNebula is a single enterprise-ready open-source product, easy to install and operate, with a single installing and updating process, a one-stop community and a long-term commercial support. Any organization can use the open-source distribution to build a production cloud, and receive best-effort support through the community mailing list. Additionally, any organization can purchase commercial support directly from the developers. The important aspect is that we do not deliver enterprise editions of the software, we commercially support the community software.
On the other hand, OpenStack comprises many subprojects with different levels maturitythat require complex integration to achieve a functional cloud infrastructure. A growing number of components and subprojects is making even more difficult their integration and coordination, and the delivery of a single coherent solution. No update path is provided if you want to install a new version, and there is not commercial support. Any organization interested in using OpenStack, and requiring commercial support and enterprise maturity, is recommended (by the vendors running the project) to deploy any of the several enterprise distributions.
From a business perspective, OpenNebula does not compete with OpenStack but with the many existing vendor "stacks" based on OpenStack, mainly with those by HP, Red Hat and IBM. These enterprise-grade distributions incorporate different versions of the OpenStack components with extended features, custom enhancements and integrations that may erode their compatibility and interoperability. Moreover many of them include proprietary components and exhibit significant differences in the implementation of critical underlying functionality.
So the organization that chooses OpenStack is actually using proprietary software based on OpenStack, and is locked into that specific distribution given that the vendor only supports its own stack, not the community version. Even worse, there is no way to migrate to another vendor distribution. In other words, these distributions do not offer the main benefits of open-source: low-cost, no lock-in, flexibility and interoperability.
D. A Look To the Future
We expect OpenStack to further fragment into more vendor specific "stacks" with narrow test matrices and extended proprietary features that lock customers in and don't interoperate well. OpenStack's biggest success is marketing. These vendor "stacks" and cloud providers will continue marketing "OpenStack" as the primary and, in most cases only, differentiator.
However OpenStack penetration in the market is relatively small compared with the investment made by vendors and VCs. These vendor specific "stacks" are not only competing with OpenNebula, other open-source cloud management platforms like CloudStack and Eucalyptus, and proprietary incumbents, they are also competing between them and with the open source community itself. All vendors claim they are the OpenStack leader because it's a winner-take-all game. Only one of the OpenStack distributions will gain critical mass on public and private clouds. Red Hat, now the dominant contributor to OpenStack, is in our view the only plausible winner.
Don't get us wrong, OpenStack is an open-source project with excellent developers, and some of its components are great from a technology point of view. Because a single cloud management platform can not be all things to all people, we will see an open-source cloud space with several offerings focused on different environments and/or industries. This will be the natural evolution, the same happened in other markets. OpenNebula and OpenStack will coexist and, in some cases, work together in a broad open cloud ecosystem. In the meantime, we will continue with our focus on solving real user needs in innovative ways, and getting our users involved in a fully vendor-agnostic project.