Today I am at the OpenStack day at OSCON… spending the day chatting with developers and OpenStack community stakeholders. Here are some real-time thoughts, directly from the trenches of the open source ecosystem…
There appears to be many disagreements about code maturity of the OpenStack projects and the number of OpenStack production deployments. However, everybody agrees that OpenStack community of actively contributing developers is the largest of all open cloud initiatives. So what is the main attraction behind OpenStack that has propelled the developer community towards it over very credible and well-funded alternatives like Eucalyptus and Citrix CloudStack?
Here is my take: Open source is not just about open codebase and a software license; it is a subculture of IT heavily driven by a do-it-yourself mentality. OpenStack is the only project that has gracefully embraced this idea. But before I dive deeper, let me take a step back to set better context.
First, let’s talk about vendor lock-in. It is a big marketing deal that drives sales. One of the ways to solve for it is to call your solution open source. Most people tend to believe that open source means no vendor lock-in. That’s bullshit, but it’s what people believe. Because of this, many projects in cloud and elsewhere have open-sourced their stuff so they can wave the flag and declare: “Our solution is open source, use it and you are free from vendor lock-in.” The marketing value is clear. But while you can open source any software, there is only a small subset of products where it actually creates added value, over and above the closed-source route.
One of the main values of the open source is in the ability to tweak and customize it to unique contexts. An open source project is like a do-it-yourself toolkit. It sets out architectural principles and provides key building blocks, leaving edge complexity free for independent optimization. Eventually, this continuous optimization and extension for edge cases reveals certain recurring patterns. Solutions for recurring problems are then submitted back to the upstream codebase; ultimately, this is the process that drives community innovation.
For this to work, however, the development process and governance must be carefully structured in a way that facilitates meritocratic community innovation. Specifically, all technical decisions have to adhere to the principles of protecting extensibility and flexibility. A rigid and complete solution to a narrow problem greatly stifles the community’s desire to innovate and extend. At the same time technical governance has to be fairly liberal with respect to accepting this innovation upstream; the common codebase that all future changes will reference. Properly managing an open source community is a very delicate balancing act.
When using open source as a marketing tactic, most organizations don’t give much thought to any of the above. A monolithic, inextensible piece of code gets dumped into an open repository where the employees of a single organization continuously push the code forward. A single, highly opinionated organization decides what bits and bytes make it to the upstream codebase. While I agree that a tightly controlled and centralized development process aimed at producing a well-integrated solution has a lot of value, it is not what open source is about and it is not what solves for vendor lock-in issues.
Most traditional IT decision-makers eat up this ‘openwashing’, i.e., the propaganda tactic saying that open source code alone neutralizes vendor lock-in. However, diverse developer communities never form around faux open projects.
Bottom line: the OpenStack community is the largest because it is the only open source cloud initiative truly positioned to leverage community innovation. Most alternatives, thus far, are openwashing — a veil of “no-vendor-lock-in” thrown over a proprietary solution.
Finally, I want to note that I don’t mean to bash CloudStack and Eucalyptus here… I honestly believe that they are good products with real customer traction. In fact, I could even echo the statements re CloudStack and Eucalyptus being more mature, less buggy etc. It’s just that in their present state, there is no value added by their open strategy. I wouldn’t call them open projects. I would call them proprietary projects, with development environment hosted in the open repository.
So if you are looking for a cheaper (and much needed) alternative to vCloud Director – CloudStack and Eucalyptus are very credible options. If you are looking for vendor independence and community driven innovation, OpenStack is what you are after…