[openstack-dev] The future of Incubation and Core

John Dickinson me at not.mn
Thu Nov 8 05:34:18 UTC 2012


On Nov 7, 2012, at 5:10 PM, Gabriel Hurley <Gabriel.Hurley at nebula.com> wrote:

> Let me throw out a different possible definition of Core:
> 
> 
>    OpenStack Core is a set of recommended components which work together to comprise a "batteries-included" OpenStack Cloud.
> 
> 
> That definition does not imply that any component in Core is irreplaceable or that they all must be deployed, and it leaves room for the technical judgment of the TC and the Board to determine what projects benefit the entire community and project by being "recommended" at the expense of hindering ecosystem competition.
> 
> In case you couldn't tell, I'm not in favor of an IaaS-only Core... I don't want to see the voices of arguably *critical* non-IaaS projects (Horizon, Ceilometer, Heat, and even Keystone) be sidelined.
> 
> Speaking of Keystone, it's not infrastructure either. It doesn't compute, store or move data (not in the way John meant), but your stack is gonna suffer without it. It's *recommended*. You can run OpenStack with only Nova and Glance if you want to. Quantum, Swift and Cinder may be infrastructure but they're nice-to-haves. Swift isn't even enabled by default in DevStack. Defining what is *necessary* infrastructure (e.g. Core) is a complicated issue. The bar can't just be "IaaS".


While I think your definition is pretty good, you have a false dichotomy that an IaaS-only Core requires that all must be deployed at the same time. To rephrase your last statement (with tongue firmly planted in my cheek): You can run OpenStack with only Swift if you want to. Nova, Quantum, and Cinder may be infrastructure, but they're a nice-to-haves. Swift solves storage needs, and it also happens to be useful in storing Nova's VM images.

Now, I'm not saying that the Core projects don't need to work together or integrate. I think core-project cooperation is an important part of being "core". But an IaaS-only core still allows for the individual core projects to be deployed independently and be useful on their own. (The trademark branding on how such a deployment can use the OpenStack mark is a separate discussion for the board of directors.)

The problem with a "core as necessary projects" definition is that it's fuzzy and is different to each deployer. Rackspace doesn't use Keystone. Does that mean it's not "necessary"? SwiftStack customers don't use Nova. Is it "necessary"? What about the Nova deployments that don't use Swift or Cinder? Beyond these, the general usefulness of ceilometer, heat, and horizon becomes even more unsure. They absolutely solve important problems, but they do so in a way that is not as generally applicable to deployments (from a "you must install this for it to work" perspective).

The way around this is for projects to be API integration points, but that implies that OpenStack becomes an API standards body. That's a separate discussion, but something I'm completely opposed to--implementations matter and are a vital part of the project definition.

The important thing is that deployments solve use-cases. In my mind, those use cases are commonly rooted in infrastructure (compute, storage, and networking). That's why OpenStack Core should be defined as IaaS, and the "batteries-included" parts should be part of the ecosystem but not part of core.

--John



-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4329 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20121107/b3963290/attachment.bin>


More information about the OpenStack-dev mailing list