The OpenStack Big Tent
OpenStack is big and complicated. It's composed of many moving parts, and it can be somewhat intimidating to figure out what all the bits do, what's required, what's optional, and how to put all the bits together.
In the attempt to tame this confusion, the OpenStack Technical Committee defined what's part of the Integrated Release and what's not, so that you, the consumer, know what's in and what's out. One of the unintended side effects of this was that new projects were treated as second class citizens, and had trouble getting resources, developers, and a seat at the table at the developer summit.
As OpenStack continues to grow, this became more and more of a problem.
With the Liberty cycle, the Technical Committee has taken another look at what makes a project part of OpenStack, to make things better for the projects, as well as for the consumers.
Are You OpenStack?
The question that has been asked all along about any project wanting to be part of OpenStack was, is this thing OpenStack? To answer this question, a number of criteria were applied, including interoperability with existing bits, maturity, diversity (i.e., is this thing entirely developed by one company, or does it have broader participation?), and other things. This process was called Incubation, and once a project graduated from Incubation, it could be part of the integrated release.
As the stack grew, these questions became harder to answer, and more projects were getting left out of the tent, to everyone's detriment, and to the growing confusion of the folks trying to use the software.
So, in recent months, the Technical Committee (TC) has decided to turn the question around. Rather than asking "Is thing thing OpenStack?" the new question is "Are You OpenStack?"
This changes how we look at making the determination on a few fronts.
OpenStack is People!
As Thierry Carrez Sean Dague said in their Summit presentation, OpenStack is composed of teams of people, working towards the betterment of the overall project. To that end, we'll now welcome everyone to the table, if they are OpenStack.
So ... how's this defined?
Something is OpenStack if it:
Aligns with the OpenStack Mission: to produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.
Follows the OpenStack Way - Open Source, Open Community, Open Development, and Open Design. (More here)
Strives for interoperability with other things that are OpenStack.
Subjects itself to the governance of the Technical Committee
But while this solves one problem, it creates another. As a user of the OpenStack software, I really still need to know what's in and what's out.
There is no longer going to be a single release that is defined to be OpenStack, how do I know which bits I need, and which bits I can live without?
To help sort this out, a system of community-defined tags will be applied to the various pieces of OpenStack, starting with "tc-approved-release" which will, initially, just reflect what was already the integrated release. These tags will indicate project maturity, as well as other considerations. Packagers, like the CentOS Cloud Sig, can then use those tags to determine what they want to include in distributions.
As a result of this change, we immediately have several new projects that are part of OpenStack, that were previously held at arm's length:
People are still going to expect a release, and exactly what that means going forward is a little unclear. Every six months there will be a release which will include stuff tagged 'tc-approved-release'. It will be opt-in - that is, projects can participate, or not, as they like. Or they can release on their own cadence, as was discussed about a year ago.
There are still some details to be worked out, but the overall benefit to the community seems like it's going to be huge, as we include more great ideas, and more passionate people, inside the Big Tent.