<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 25, 2014 at 6:36 AM, Sean Dague <span dir="ltr"><<a href="mailto:sean@dague.net" target="_blank">sean@dague.net</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 08/20/2014 12:37 PM, Zane Bitter wrote:<br>
> On 11/08/14 05:24, Thierry Carrez wrote:<br>
>> So the idea that being (and remaining) in the integrated release should<br>
>> also be judged on technical merit is a slightly different effort. It's<br>
>> always been a factor in our choices, but like Devananda says, it's more<br>
>> difficult than just checking a number of QA/integration checkboxes. In<br>
>> some cases, blessing one project in a problem space stifles competition,<br>
>> innovation and alternate approaches. In some other cases, we reinvent<br>
>> domain-specific solutions rather than standing on the shoulders of<br>
>> domain-specific giants in neighboring open source projects.<br>
><br>
> I totally agree that these are the things we need to be vigilant about.<br>
><br>
> Stifling competition is a big worry, but it appears to me that a lot of<br>
> the stifling is happening even before incubation. Everyone's time is<br>
> limited, so if you happen to notice a new project on the incubation<br>
> trajectory doing things in what you think is the Wrong Way, you're most<br>
> likely to either leave some drive-by feedback or to just ignore it and<br>
> carry on with your life. What you're most likely *not* to do is to start<br>
> a competing project to prove them wrong, or to jump in full time to the<br>
> existing project and show them the light. It's really hard to argue<br>
> against the domain experts too - when you're acutely aware of how<br>
> shallow your knowledge is in a particular area it's very hard to know<br>
> how hard to push. (Perhaps ironically, since becoming a PTL I feel I<br>
> have to be much more cautious in what I say too, because people are<br>
> inclined to read too much into my opinion - I wonder if TC members feel<br>
> the same pressure.) I speak from first-hand instances of guilt here -<br>
> for example, I gave some feedback to the Mistral folks just before the<br>
> last design summit[1], but I haven't had time to follow it up at all. I<br>
> wouldn't be a bit surprised if they showed up with an incubation<br>
> request, a largely-unchanged user interface and an expectation that I<br>
> would support it.<br>
><br>
> The result is that projects often don't hear the feedback they need<br>
> until far too late - often when they get to the incubation review (maybe<br>
> not even their first incubation review). In the particularly unfortunate<br>
> case of Marconi, it wasn't until the graduation review. (More about that<br>
> in a second.) My best advice to new projects here is that you must be<br>
> like a ferret up the pant-leg of any negative feedback. Grab hold of any<br>
> criticism and don't let go until you have either converted the person<br>
> giving it into your biggest supporter, been converted by them, or<br>
> provoked them to start a competing project. (Any of those is a win as<br>
> far as the community is concerned.)<br>
><br>
> Perhaps we could consider a space like a separate mailing list<br>
> (openstack-future?) reserved just for announcements of Related projects,<br>
> their architectural principles, and discussions of the same?  They<br>
> certainly tend to get drowned out amidst the noise of openstack-dev.<br>
> (Project management, meeting announcements, and internal project<br>
> discussion would all be out of scope for this list.)<br>
><br>
> As for reinventing domain-specific solutions, I'm not sure that happens<br>
> as often as is being made out. IMO the defining feature of IaaS that<br>
> makes the cloud the cloud is on-demand (i.e. real-time) self-service.<br>
> Everything else more or less falls out of that requirement, but the very<br>
> first thing to fall out is multi-tenancy and there just aren't that many<br>
> multi-tenant services floating around out there. There are a couple of<br>
> obvious strategies to deal with that: one is to run existing software<br>
> within a tenant-local resource provisioned by OpenStack (Trove and<br>
> Sahara are examples of this), and the other is to wrap a multi-tenancy<br>
> framework around an existing piece of software (Nova and Cinder are<br>
> examples of this). (BTW the former is usually inherently less<br>
> satisfying, because it scales at a much coarser granularity.) The answer<br>
> to a question of the form:<br>
><br>
> "Why do we need OpenStack project $X, when open source project $Y<br>
> already exists?"<br>
><br>
> is almost always:<br>
><br>
> "Because $Y is not multi-tenant aware; we need to wrap it with a<br>
> multi-tenancy layer with OpenStack-native authentication, metering and<br>
> quota management. That even allows us to set up an abstraction layer so<br>
> that you can substitute $Z as the back end too."<br>
><br>
> This is completely uncontroversial when you substitute X, Y, Z = Nova,<br>
> libvirt, Xen. However, when you instead substitute X, Y, Z =<br>
> Zaqar/Marconi, Qpid, MongoDB it suddenly becomes *highly* controversial.<br>
> I'm all in favour of a healthy scepticism, but I think we've passed that<br>
> point now. (How would *you* make an AMQP bus multi-tenant?)<br>
><br>
> To be clear, Marconi did made a mistake. The Marconi API presented<br>
> semantics to the user that excluded many otherwise-obvious choices of<br>
> back-end plugin (i.e. Qpid/RabbitMQ). It seems to be a common thing (see<br>
> also: Mistral) to want to design for every feature an existing<br>
> Enterprisey application might use, which IMHO kind of ignores the fact<br>
> that applications need to be rewritten to use these new APIs anyway, and<br>
> we would be better off presenting _simple_ interfaces that attract<br>
> developers, lead to good design for new applications and provide<br>
> flexibility on the back-end side. I digress though, because that wasn't<br>
> the mistake. The mistake was failing to educate the entire community<br>
> (but in particular the TC) on the relative merits of this feature enough<br>
> get either buy-in or rejection on this critical detail much earlier in<br>
> the process.<br>
><br>
> By the way, I claimed without justification earlier that "there just<br>
> aren't that many multi-tenant services floating around out there", but<br>
> there is actually a very good reason for that. Before there were open<br>
> source IaaS platforms out there, there wasn't any reason to build such a<br>
> service. And now that there are, _the obvious place to build such a<br>
> service in in OpenStack_. We have the users, we have the authentication<br>
> API that already ties in to their existing directories (Keystone is<br>
> well-named) and we have the community.<br>
<br>
</div></div>I think this is a very crisp view of what OpenStack is trying to do. I<br>
like it. :)<br>
<div class=""><br>
>> This all has created a world where you need to be*in*  OpenStack to<br>
>> matter, or to justify the investment. This has created a world where<br>
>> everything and everyone wants to be in the "OpenStack" integrated<br>
>> release. This has created more pressure to add new projects, and less<br>
>> pressure to fix and make the existing projects perfect. 4 years in, we<br>
>> might want to inflect that trajectory and take steps to fix this world.<br>
><br>
> We should certainly consider this possibility, that we've set up<br>
> perverse incentives leading to failure. But what if it's just because we<br>
> haven't yet come even close to satisfying all of our users' needs? I<br>
> mean, AWS has more than 30 services that could be considered equivalent<br>
> in scope to an OpenStack project... if anything our scope is increasing<br>
> more _slowly_ than the industry at large. I'm slightly shocked that<br>
> nobody in this thread appears to have even entertained the idea that<br>
> *this is what success looks like*.<br>
<br>
</div>That's a fair point of view. However I'm sure the AWS team is staffed a<br>
bit differently where the feature implementers don't outnumber the<br>
QA/Docs/Infra folks by a factor for 10 to 1.<br>
<br>
I'm also sure there are a lot more dedicated folks to cross project<br>
effort than we see today.<br>
<br>
If we weren't so feature biased in our effort, 30 services might be a<br>
sensible target. But the lack of folks working on some of the holistic /<br>
cross project efforts means I don't think it's really viable.<br></blockquote><div><br></div><div>I couldn't agree more. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class=""><br>
> The world is not going to stop because we want to get off, take a<br>
> breather, do a "consolidation cycle".<br>
<br>
</div>Most deployers I've talked to would actually love for OpenStack to slow<br>
down a bit. They are at least a year behind on their deployments, and a<br>
stabalization cycle is something they'd lvove to see.<br>
<div class=""><br>
> I think we can all agree that any cross-project function program that<br>
> aims to _be_ that function for all of OpenStack, as opposed to enabling<br>
> that function in the individual projects, will not scale. It won't scale<br>
> even if we never accept another new project. It won't scale even if we<br>
> de-integrate some projects pour encourager les autres. I think that the<br>
> work that Doug has been doing with Oslo points the way here. Every<br>
> cross-project function (including release management - get rid of PTLs)<br>
> should have a designated co-ordinator/liason in each project.<br>
<br>
</div>This becomes an N^2 communication problem and eventually consistency<br>
problem. </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div class="h5"><br>
> The move of functional tests out of Tempest and into the individual<br>
> projects' repositories is a great step in the right direction. Hopefully<br>
> that will also address the growth of CI testing capacity requirements -<br>
> while projects like Nova, Cinder and Neutron all depend on and benefit<br>
> from being gated against each other, that is not at all true for many<br>
> projects, and in particular the kinds of new projects that are now<br>
> appearing. Let's take actual dependencies into account when we choose<br>
> what to gate on - the resulting growth might not be sublinear, but it<br>
> needn't be n^2 either.<br>
><br>
> Simply put, I don't think we're anywhere near so close to running out of<br>
> ideas that we have to stop and freeze the world. We have scaling<br>
> challenges, and we'll have to make changes, and we'll have to do it -<br>
> sometimes under pressure - even as the world changes around us because<br>
> that's just how life works.<br>
><br>
> The question that is not being asked enough IMO is how exactly does it<br>
> benefit our *users* (it is still all about the users, right?) to be<br>
> telling developers "you arrived too late, so you're not real OpenStack<br>
> developers, with free conference tickets and ATC badges and stuff".<br>
> Because if it's just that the support functions within OpenStack can't<br>
> handle them yet, that's on us not them. If it's that we don't have a<br>
> clear way of communicating to users the information they need to make<br>
> the right decision (for them) on whether to deploy some code, then we<br>
> need to communicate that information more clearly. And if we believe<br>
> that somehow companies will magically divert all of the resources they<br>
> would otherwise have committed to new projects into bug fixing on<br>
> existing projects, I think we're being incredibly naive. If companies<br>
> are not seeing the value in strategically contributing to the core of<br>
> projects then it's because we have failed to demonstrate the value, and<br>
> simply blocking off other avenues for them to create value (or blocking<br>
> recognition of those avenues) will absolutely not solve it.<br>
<br>
</div></div>I also think it's completely fair to think about this as small tent,<br>
large ecosystem. The Linux Kernel stops at a certain function point for<br>
a reason. That didn't prevent a ton of exceptionally useful function to<br>
exist above it. But it also mean that things like c library / init<br>
system / packaging / compilers were things where innovation could play<br>
out. And where things could evolve over time.<br>
<br>
I don't think small test / big ecosystem prevents anyone from working on<br>
what they are passionate about. It does bring the value of n in n^2<br>
relationships to something tractable.<br></blockquote><div><br></div><div>Definitely, at some point it sounds like half this thread is arguing over the right to use the OpenStack trademark. Our current approach has left little space outside of the OpenStack namespace for OpenStack related services to be recognized by the community.</div>

<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Maybe there are better people to handle the cross project interactions<br>
that can handle the value of n we currently have, or the value of n we<br>
might have in the future. But I'm watching the strain on the existing<br>
teams doing this and I think under current course and speed we mostly<br>
will lose key leadership (under burn out), and not grow more of it. And<br>
that's a really important thing to consider in keeping something like<br>
OpenStack a functioning base. If the replacement rate of key leadership<br>
does not exceed the fall off rate we won't end up in a happy place in a<br>
few more cycles.<br>
<div class="im HOEnZb"><br>
        -Sean<br>
<br>
--<br>
Sean Dague<br>
<a href="http://dague.net" target="_blank">http://dague.net</a><br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>