[openstack-dev] The future of Incubation and Core

John Dickinson me at not.mn
Thu Nov 8 16:20:59 UTC 2012


Deciding what to call it ("core" v "collection" v "pickle" v etc) get's too much into bikeshedding, I think. The important question is what's in whatever it ends up being called.

While I agree that it is vital that we focus on the users, OpenStack's users are generally operators, not end-users. The companies who are part of the community are building the products for the end-users. OpenStack projects are not products. To be very explicit, nova is not EC2, swift is not S3, and Cinder is not EBS. Therefore if our users are the people deploying and running the building blocks upon which they can build products, OpenStack's common release should include the fundamental infrastructure components. Let's focus intently on these pieces to provide world-class cloud infrastructure ("do one thing and do it well").

But OpenStack as a whole does rely upon a thriving ecosystem. Focusing releases and most of the foundation's resources on promoting and polishing the core infrastructure projects doesn't preclude encouraging an ecosystem. I'd love to see the foundation host and manage an "ecosystem projects" portal, for example. Promoting (ie marketing) the ecosystem falls very much in line with promoting core infrastructure pieces.

So, what I'd like to see is core projects as infrastructure components (API+implementation) that are part of the common release. Docs must be included in this release and should be part of core. "Release management" pieces (a superset of the CI tools) are vital to the project, but are not part of the release itself and should therefore not be in core. Other non-IaaS pieces should not be in core but may be promoted as a group by the foundation as the openstack ecosystem.

--John





On Nov 8, 2012, at 7:47 AM, Anne Gentle <anne at openstack.org> wrote:

> Lots of great discussion here - had me awake at night (okay, early
> early morning) thinking of what to respond.
> 
> On Wed, Nov 7, 2012 at 1:47 PM, Gabriel Hurley
> <Gabriel.Hurley at nebula.com> wrote:
>> We need to step back for a minute and question the supposition that a
>> “non-core but blessed by OpenStack” category is benefical. I don’t believe
>> it is.
>> 
>> 
>> 
>> There are serious implications to creating a space which is not core but is
>> blessed by the foundation/TC. It sends mixed messages to the community and
>> has a significant impact on the ecosystem. All the concerns the TC has about
>> crushing ecosystem competition when debating incubation apply just as much
>> to creating a second “non-core” space.
>> 
>> 
>> 
>> There should be Core, and then there should be a thriving community which is
>> supported equally by the foundation. Nothing in between. We can’t play
>> favorites there.
>> 
>> 
>> 
>> I also think we’re placing too much weight on the value of CI infrastructure
>> and release management. Projects have been doing that for themselves forever
>> and there’s lots of free (or nearly free) services for Open Source projects
>> readily available.
>> 
>> 
>> 
>> Ultimately making another category is just a way to dodge the hard issue of
>> what is truly core. Whether core is Iaas or a viable cloud at all levels of
>> the stack… that’s the real debate here.
>> 
>> 
>> 
>> I agree (even at peril to my own project’s status) that Horizon (currently
>> core), Ceilometer (currently incubated) and Heat (incubated largely by a
>> plurality of abstentions) fall above the realm of IaaS. However I think that
>> Core would be excruciatingly lacking without the inclusion of higher-layer
>> projects for two main reasons:
>> 
>> 
>> 
>> 1.       Higher-layer projects are the only check on the unity of the “core”
>> projects. Projects that span the APIs of Nova, Glance, Swift and Quantum are
>> the ones that discover the pain points. They’re the ones that can work
>> towards OpenStack feeling cohesive. Without those OpenStack is just a
>> trademark and a bunch of arbitrary code.
>> 
>> 2.       Higher-layer projects (particularly Horizon) improve the
>> discoverability, usability and visibility of OpenStack. At this point most
>> new users considering OpenStack experience Horizon first. When people want
>> to demo OpenStack’s functionalities, they use Horizon. That’s quite telling.
>> Humans are inherently visual creatures and the majority of the future users
>> of “cloud” are not the type who want arcane CLIs. Folks from Amazon,
>> Rackspace and any other cloud provider will tell you that services
>> experience a huge increase in usage when they integrate into the dashboard.
>> Losing that from Core benefits nobody.
>> 
> 
> This point on improving the discoverability, usability and visibility
> of OpenStack is mostly what I would look for in a project that wants
> to be near OpenStack.
> 
> My thinking is that originally when we "invented" incubation it was to
> increase usability and much of the sentiment was to increase adoption.
> We also wanted to give support to projects who wanted to fit into our
> system because we thought we had a pretty good one - great CI,
> coordinated releases, integration testing, organized in-person
> meetings, and docs (for pete's sake, docs in open source!)
> 
>> 
>> As a final argument, let me flip things the other way and suppose that
>> Horizon was designated a “supported” project. If that entails the arduous
>> Gerrit review process and having to clear major decisions with the broader
>> community rather than just letting my team keep building great things…
>> that’s enough of a disincentive that I’d rather not be “supported”. I’ll go
>> build something autonomously, promote it aggressively, make it dead-simple
>> to install, and if it’s cool people will use it. People will use it in spite
>> of a core component if it’s better in every metric.
>> 
> 
> There was a lot of this sentiment in "incubation" discussions too -
> that the best projects would float to the top because our system and
> OpenStack are so great. What happens now is incubation is the only way
> to core and core is perceived as the "end game." I don't think we want
> to encourage that only core matters.
> 
> I think it's okay to step back at this time and see if "incubation"
> really offers the value we wanted in the first place. Gabriel's points
> are well-taken by me - that the original intent (give projects great
> systems to make OpenStack better to increase adoption) could also be
> served by keeping core small and focused. Enabling as many additional
> projects without focusing on trademark is what we want.
> 
>> 
>> Long story short, I don’t see value in creating another category; I think we
>> need to fundamentally define Core, let things be in or out, and then devote
>> the foundation’s resources to supporting the *entire* ecosystem, not just a
>> handful of projects.
> 
> The only part I disagree with here is "devote the foundation's
> resources" -- this work is the work of companies and their employees,
> making projects (including core) better and serving users. The
> Foundation serves to keep OpenStack going for a long, long time by
> increasing adoption and collaboration among frenemies. So if by
> "support" you mean promotion and inclusion at events, connecting the
> dots, finding areas of common ground, sure. But it doesn't mean
> Foundation employees keep projects on track (other than Theirry's
> paycheck coming from the Foundation because he wants to remain
> vendor-neutral which is respectable.) It means that we all have to
> work together to keep core great and to give all projects a chance to
> rise to the top for increasing adoption and aiding users.
> 
> My proposal would be to keep core small and highly resourced for
> integration, and make incubation less of a gatekeeping process and
> more of an inclusion process. Probably this means I agree most with 2
> which gets rid of incubation, though I don't know if it offers a
> crisp-enough definition of Core. Do we need a better definition of
> Core to propose 2 to the Board?
> 
> 2. Product core (gabrielhurley)
> Do not have an intermediary category which could carry more duties than
> rights, but have an inclusive definition of Core that would include
> necessary/recommended projects.
> 
> Also did we intend to start this on openstack-dev and then go to the
> wider OpenStack list for discussion? I don't think this discussion
> just concerns devs.
> Thanks,
> Anne
> 
>> 
>> 
>> -          Gabriel
>> 
>> 
>> 
>> From: Doug Hellmann [mailto:doug.hellmann at dreamhost.com]
>> Sent: Wednesday, November 07, 2012 10:45 AM
>> To: OpenStack Development Mailing List
>> 
>> 
>> Subject: Re: [openstack-dev] The future of Incubation and Core
>> 
>> 
>> 
>> 
>> 
>> On Wed, Nov 7, 2012 at 12:13 PM, Russell Bryant <rbryant at redhat.com> wrote:
>> 
>> On 11/07/2012 12:04 PM, Doug Hellmann wrote:
>>> 
>>> 
>>> On Wed, Nov 7, 2012 at 11:40 AM, Thierry Carrez <thierry at openstack.org
>> 
>>> <mailto:thierry at openstack.org>> wrote:
>>> 
>>>    Hi everyone,
>>> 
>>>    Incubation is currently an OpenStack project status that grants a
>>>    promising project more access to OpenStack shared resources,
>>> especially
>>>    in the CI, release management and QA space. That status lets the
>>>    promising project prove that it is ready to join other official
>>>    OpenStack core projects for the next full development cycle.
>>> 
>>>    In the past governance the Project Policy Board was the only decider
>>> on
>>>    Incubation and Core inclusion. With the new governance, the Technical
>>>    Committee is still the only decider on Incubation status and still
>>>    proposes projects for Core inclusion, but the Board of Directors has
>>> the
>>>    possibility to veto that Core inclusion.
>>> 
>>>    This creates an awkward process where a project could go all the way
>>>    through Incubation and be denied Core inclusion at the end of that
>>>    process, basically wasting OpenStack resources. We need to evolve the
>>>    Incubation process so that the question of whether a project belongs
>>> in
>>>    "Core" is fully resolved as early as possible. And define how a
>>> project
>>>    can enter, grow or exit the incubation process.
>>> 
>>>    This also raises the question of whether "Core" should really be the
>>>    only destination of an Incubated project. Which triggers the very
>>>    question of what OpenStack Core actually is. For some it's the
>>>    collection of OpenStack projects that work well and complement each
>>>    other, for others Core should only include the IaaS pieces, for others
>>>    they should represent the bare minimum you need to implement to be
>>> able
>>>    to be called an "OpenStack Cloud"...
>>> 
>>> 
>>> It would be healthy to allow the scope of projects managed by the
>>> foundation to evolve over time to be broader than IaaS components. If we
>>> need to define "OpenStack Cloud" for brand management, we should be
>>> thinking about it at the different levels of the stack. There could be a
>>> separate set of "core" projects for IaaS and PaaS, for example.
>> 
>> I agree that I'd like to see the project overall be inclusive instead of
>> exclusive.
>> 
>> 
>>>    Once "Core" is defined we can evaluate the need for a category that
>>>    would still be in "OpenStack" but not have the "Core" label on it.
>>>    Incubation could then lead two ways.
>>> 
>>> 
>>> It seems like we want a "supported" category for projects the TC feels
>>> are worth spending foundation resources on but the BoD does not want to
>>> include in "core" and require that deployers use them to be able to
>>> claim they are an "OpenStack Cloud" as you mention above. So projects
>>> would start out in the community, move to "incubated" and then to
>>> "supported" after the incubation period is up. They could apply
>>> separately for "core" status, after being declared "supported" by the TC.
>> 
>> This seems to be the crux of the issue.  If the OpenStack mark is going
>> to be wrapped up in what "core" is, then I think it seems fine to keep
>> it very limited, and perhaps to minimal IaaS components, but *only* if
>> we have a place for everything else that is a positive addition to go.
>> A new category like "supported" seems like a great idea to me.
>> 
>> My gut feeling of where the line would be is that Heat, Ceilometer, and
>> Horizon would all be in this new category, while everything else would
>> remain the core.
>> 
>> 
>> 
>> That makes sense to me.
>> 
>> 
>> 
>> Doug
>> 
>> 
>> 
>> 
>> --
>> Russell Bryant
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- 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/20121108/f0e9962c/attachment.bin>


More information about the OpenStack-dev mailing list