[openstack-dev] Continuous deployment - significant process change

Clint Byrum clint at fewbar.com
Tue Apr 30 22:33:27 UTC 2013


On 2013-04-30 14:52, Russell Bryant wrote:
> On 04/30/2013 04:59 PM, Clint Byrum wrote:
>> On 2013-04-30 13:12, Sean Dague wrote:
>>> On 04/30/2013 03:55 PM, Clint Byrum wrote:
>>> <snip>
>>>> 
>>>> I understand that this is a straw-man. I know that other things can
>>>> happen. But I see a lot of development happen under the stable 
>>>> release
>>>> process scenario above. I fail to see where having new code arrive
>>>> incrementally in small batches and protected by feature flags is 
>>>> going
>>>> to make anything worse. Those things, however, should make 
>>>> continuous
>>>> delivery of OpenStack much smoother.
>>> 
>>> Right, it's a straw man, which doesn't help generate any clarity. :)
>>> 
>>> I think instead of discussing philosophy here we should talk about
>>> specifics that happened in the source tree that caused deployers 
>>> pain,
>>> and take lessons learned out of them.
>>> 
>>> I think the reality is that openstack tree and process is very close
>>> to what the CD folks want. The only thing that's causing some 
>>> allergy
>>> among the core teams is the idea of features coming in in an off
>>> state, versus coming in default on so they get exercised by our 
>>> normal
>>> system.
>>> 
>> 
>> Thats exactly my point. Large changes are not being exercised by any
>> large scale system now while they're baking in a branch, so making 
>> them
>> enabled by feature flags versus by commit to trunk does not regress
>> that, but it does allow deployers to test both code paths and deploy
>> both without having to maintain branches of the software.
> 
> My biggest concern with this is applying it to an open source project
> with an unmanaged workforce.  Thierry captured it well when he said:
> 
>   Personally my experience of OpenStack project management makes me 
> fear
>   that your proposal ignores the reality of our unmanaged development
>   workforce: there is no way we can be sure that a feature will 
> actually
>   be completed. So you might end up having disabled code in 
> releases...
>   or force the removal of the already-landed parts at the very last
>   moment, which is disruptive to release quality and also sounds more
>   disruptive to CD than what you are trying to protect against.
> 
> I'm really worried about the transition of ownership going from the
> submitter to the project as a whole much earlier in the process.  I'd
> like to have a high confidence level that it's worth having this code
> for the long run before it starts coming in.  That to me requires it
> baking out of tree and getting completed before we accept it.

What is the negative impact of having disabled code in a release? I 
think we would need a good reason before we would back accepted code 
out. If the code is just sitting there, undocumented and turned off, not 
interfering with anything, I'm having a hard time thinking of a logical 
reason to back it out.

The fear that somebody will drop half-baked code into the project, and 
then never return, is valid. However the impact of such a heinous act is 
mitigated by the requirement for feature flags. If the half-baked idea 
is never completed, so be it, back it out as part of normal code 
housekeeping.

Didn't this exact scenario happen with hyperV?



More information about the OpenStack-dev mailing list