The Apache Software Foundation (ASF) just announced the graduation of Apache CloudStack to a Top Level Project.  In this blog post I’d like to share my thoughts on what I’ve learned participating in this transition and what I see for the project going forward.

In early 2012, before the move to the ASF, we were discussing options for the project’s home going forward.  At the time CloudStack was almost 100% Citrix by contributors and the governance model was undefined, which essentially left the decision authority with Citrix.  We knew both of those characteristics limited the project’s future and that they had to change.  We quickly settled on the ASF as the best home.  We believed the structure of the ASF separated the funding of the foundation from the influence on the project.  We knew that the ASF had a clear process for project entry and incubation / maturation, and it had mentors that would step forward and help the evolving community learn to work like an Apache project.  We also believed that the Apache governance model would bring many more ecosystem partners into the project, increasing the diversity and value of integrations available with CloudStack.

A year after the project entered the ASF, all the things we believed turned out to be true.  Citrix became a platinum sponsor of the ASF, but that didn’t give Citrix any vote on the ASF board nor did it give Citrix any special privilege on the CloudStack PMC (the project’s management committee).  In the past year, the variety of contributors increased dramatically, with both users and vendors stepping forward to add features they wanted or integrations with their products for specific use cases.  In fact, the users of CloudStack with KVM have been so active that very little of the recent Citrix contributions to the project have been to support KVM.  The project has also received a large number of contributions for storage and network / SDN integrations from vendors, with more under development.  Our mentors donated their time to guide all members of the CloudStack community to work like an Apache project, with development and discussion in the open and consensus-based decision making.  Thanks to all of these groups — mentors, users, and vendor-sponsored contributors — for their huge role in helping the project grow and graduate!

Along the way a few things surprised me.  First, I was surprised by how many vendor partners and users engaged and how quickly they did so.  Whether I looked at new committers, mailing list participants, or attendees at December’s CloudStack conference, there were always about twice the number of people or vendors that I expected.  Some of that is due to CloudStack’s adoption with users, but a lot of is due to the genuinely open nature of Apache projects, where merit and influence are earned by contribution.  I was also surprised by how much effort was required to transition from how we (Citrix) were working to the Apache way.  I knew that we’d have to move the bug database, code repo, and wiki pages to ASF infrastructure, and that was about what I expected.  The Apache way requires taking decisions on the mailing list so that all can engage and participate.  This works well to ensure the project is inclusive, but it does take more effort than taking decisions around the water cooler.  And, of course, we had to police ourselves to make sure we were working in the Apache way.  On that note, I’d like to offer a big “thank you” to the initial committers, who did a great job of making the transition, and to the community and mentors for graciously pointing out when they didn’t.  We also had to make development (with DevCloud) and testing (with Maven + Marvin) simpler than it had been so people that don’t have experienced CloudStack developers near them can be successful.  If you’re thinking about moving a project to the ASF, I would wholeheartedly recommend it to help grow the developer community and to get a proven governance model.  Just set your expectations that the workstyle changes may be bigger than you expect.

I expect CloudStack will gain contributors and committers at an even faster rate now that it has graduated.  There is a degree of permanence associated with Top Level Projects in the ASF that projects in Incubation do not have.  At OSCON a few people told me they were reluctant to engage on projects in Incubation because they didn’t know if those projects would graduate and persist or if they would stall out and fade away.  That’s an unfortunate perception, and could be self-fulfilling at its extreme, but I don’t think it will stop a project with really motivated people behind it (like CloudStack!).  The Citrix commitment to CloudStack has never wavered, but I do feel that it’s now clearer that CloudStack is here for the long term.  With graduation the community received an endorsement from the ASF that the community has proven that it can self-govern in accordance with the behaviors that define the Apache way.  In that sense we do not need to do more in the future, but the community has to keep governing itself at least as well as it has been.  I’m sure it can, and I’m looking forward to seeing that and helping it grow over the coming years.