All,

So far, we've accomplished more with Crowbar 1 than I imagined possible.  We 
have led an new generation of bare metal automated installation and set a 
standard that has been noticed.  More importantly, we've learned critical 
lessons about the right way to solve these hard problems.  Crowbar 2 (both 
iterations) are the embodiment of those hard won experiences.  Our experience 
with Crowbar 1 is driving a disruptive set of changes.

We've reached a critical point with the Open Crowbar Project where we have a 
stable refactored base (aka Crowbar 2) for the open source project.  This base 
was created incrementally inside the current project but reflects a 
fundamentally different code base.  It's truly a new generation and that means 
much of our legacy infrastructure is out of date.  Up to this point, we've 
worked very hard to keep both old and new code bases together and it has added 
complexity and confusion for both code lines.  We want to preserve the 
stability of the Crowbar 1 code base, yet the changes we are making to Crowbar 
2 pose significant risk of breakage.

With Crowbar 2, we have an opportunity to reach a broader audience of both 
users and developers.  Above all other objectives, expanding our community is 
our top priority because it ensures the relevance and longevity of the project.

In November, we held a review of the status of the Crowbar 2 project and it 
became clear that the code is ready for this challenge; however, the code is 
only a part of what we need to make Crowbar successful.

To be successful, the Open Crowbar project needs to improve/address the 
following challenges:
*         Documentation and materials that are clear and relevant
*         Build process and tools that are transparent and easy to use
*         Installation methodologies that align with industry practices
*         Test (especially automated) coverage that ensures consistent quality 
and stability
*         Community governance that encourages collaboration, exposes value 
that's being created and enables contribution
*         Consistent and clear version/release management that works for both 
community and commercial interests
*         Overall simplification of the project layout and infrastructure to 
accomplish the above.

Many of these changes are disruptive and/or would require substantial 
investment in Crowbar 1 infrastructure, to update and test.  In the absence of 
engineering resources that are committed to retrospectively retooling the 
Crowbar 1 code base the only safe solution is to separate the Crowbar 2 code 
from the current stable code tree.

There has already been a discussion about this on the list that did not result 
in a consensus.  At some point, we must make a decision and move forward to 
accomplish these goals because they are essential to the community's growth.

Unlike code changes that can be managed in a branch by a small team; these 
changes are highly visible and structural.  Mostly significantly, we need to 
eliminate layers of obfuscation that were built up over time.  For this reason, 
I believe that we need a clean base for this restructuring with the following 
likely impacts:

1)      Separate the Crowbar 1 and 2 documentation and wikis.  They are 
diverged enough to be confusing when intermingled.  Further CB2 docs are 
managed differently and already substantially ahead of CB1.
2)      Introduce a gated CI build process that can be managed by Gerrit (or 
similar) - there is a similar but unrelated effort going on for Crowbar 1.
3)      Break the "DevTool" functions into parts (or eliminate in places) to 
improve transparency
4)      Consolidate the core Crowbar barclamps into a single new repo (these 
are the ones active in Crowbar 2 dev)
5)      Converge other "workload" barclamps into bundles (such as all of 
OpenStack together to match the Stack Forge community)
6)      Reset our branching/versioning into something predictable and consistent
7)      Change the installation paradigm to be more consistent with best 
practices.  This likely means NOT including all the dependencies into the 
Crowbar ISO build and relying on the user to supply Internet access or a local 
repo/mirror.

These changes are opportunities for use to make it easier for everyone to 
participate in Crowbar and the current state inhibits our forward progress.  
We've got a gem in the Crowbar updated code base, now it's time update the 
infrastructure around it.

Rob
______________________________
Rob Hirschfeld
Sr. Distinguished Cloud Solution Architect
Dell | Cloud Edge, Data Center Solutions
cell +1 512 909-7219 blog robhirschfeld.com, twitter @zehicle
Please note, I am based in the CENTRAL (-6) time zone

_______________________________________________
Crowbar mailing list
Crowbar@dell.com
https://lists.us.dell.com/mailman/listinfo/crowbar
For more information: http://crowbar.github.com/

Reply via email to