Tuesday, July 19, 2011

Eucalyptus 3 development

Tim Cramer, our VP of engineering, very eloquently explained at the last UDS the status of our branches and the steps we are taking to improve it. With the introduction of Eucalyptus Enterprise Editions (EE), we went to a 2 branches model. The 2 branches were supposed to be identical with the differences limited to the Enterprises bits added to EE (for example SAN and VMware support). The model was meant to follow a Tic-Toc release cycle: Tic for Eucalyptus EE and Toc for Eucalyptus.


Houston: we have a problem.

At first all was good, and the weekly merge of the two branches happened without hiccups. During the development of High Availability (HA - see our roadmaps for the list of upcoming features) we found the code changes to be intrusive enough that we didn't want to work off production level branches so we started to work off a third internal branch. And here the problems started: multiple branches merge started to be a time consuming proposition, and we thus switched to use our developer's branch only.

Now we got all the elements for the perfect storm: a very ambitious release packed with exciting features that our user base asked for, three different branches that started to grow apart and an impending release for our Tic cycle. With the development happening on the internal branch, the communication with our community and in particular with our bug reporter lagged behind: we were still fixing issues, but we couldn't communicate clearly since the code fix were not visible (check our developer's corner for information on code, bugs and nightly builds), and we could not point our loyal users to the specific commit resolving the issue.


We are going back to the textbook model

The first thing that Tim decided to tackle, was to simplify this process and to revert back to a single working branch, with a plug-in mechanism for the extra Enterprise level bits. The good news is that we are well into the QA phase of our code, which mean we will reach gold status soon. We will then proceed with our last 'code drop' into our public branch: development will proceed there afterwards. The code will be unstable at first while we develop the plug-in framework, but it will stabilize quickly.

Our most ambitious release of Eucalyptus is well on its way to your data center. We listened to you for Eucalyptus 3 features set: are you ready to help us for Eucalyptus 4?