OpenStack and CloudStack are open source software to create infrastructure as a service (IaaS) clouds. Both are under the Apache License, which allows creating derivative projects, and even close sourcing them as long as you maintain the copyright notices. They represent a new wave of open software, where companies open their code to pool resources to other interested parties (another relevant example of that trend is CloudFoundy to create PaaS). I recently attended the respective conferences for these software packages. More than the contents, the dynamics of each conference provided a very representative insight of the software.
The OpenStack summit took place April 2013 in Portland, Oregon. With an estimated 2600 attendees, there were very few places to be alone at the Oregon convention center. The summit contained an expo exhibit where several companies tried to attract the attention of the attendees, with arcade games, spin the wheel and all this county fair antics that we conference goers love to hate. The conference itself provided several tracks (not very well planned, with serious overcrowding) and a particular track for developers with this motto: if you do not code OpenStack, you should not attend that track. It was even located behind curtains, to deter the casual attendee to enter. In all, the conference was overpopulated, chaotic and fun. In the developer track (ahem, I am a coder), you could see how the different projects bash at each other about the APIs (If you ever tried to install by hand OpenStack, you understand why). And in the main tracks, CEOs and other three letter people amazed us with the stunning OpenStack magic with IBM, RedHat and other, but let us fast forward a couple of months to the Hyatt in Santa Clara.
With 300 estimated participants, the Apache CloudStack Collaboration conference looked more like a reunion of old friends. The talks were less flamboyant and some even discussed technical aspects. In particular I was surprised about the depth of the Software Defied Networking talks. Except for Citrix, which open sourced CloudStack in 2011, there were no big names endorsing the Software, and some of the tracks where only attended by handful of people. But in general most talks were informative. The CloudStack community was much less gimmicky, and the conference discussion more solid. I came to the conference with experience installing OpenStack, and I was amazed how simple was to get CloudStack up and running. Besides, the reception was held at Great America so we can enjoy the roller coasters. So how this relates to the Software itself? Like its conference, OpenStack is the chaos, poorly documented, featuring a complex installation, but providing seemingly endless opportunities for improvement. OpenStack is composed by small projects with cool codenames, such as Nova, Horizon and Neutron, that communicate between them with APIs. This provides flexibility for companies to focus in one aspect (e.g. Software Defined Networking in Neutron) without the need to care what others do. But also makes the vanilla product almost unusable, and that is OK because that is how companies make money with OpenStack. OpenStack is more an ecosystem than a stable package.
CloudStack, like its conference, is under the radar for many companies, but the product is stable out of the box, and features an excellent UI, good networking capabilities and an easy installation process: You can have a functional cloud in just a day. I say functional cloud to avoid the comparison with devstack, a shell script that installs OpenStack in a SINGLE computer, fancy but useless as to how actually install OpenStack. In reality, if you are any serious about it, you need to install utilizing orchestration tools such as Puppet or Chef. CloudStack architecture is monolithic with only three main components without flamboyant names: A management server, storage and compute nodes. This simplifies installation but complicates involvement of third party companies, as you cannot work independently on a specific project. The next CloudStack conference will be held in Europe, where the stability of the code seems to be better received. The conference will be geared again to a reduced community looking forward to concrete work rather than showmanship. The next OpenStack conference promises to be bigger, more chaotic and further away, in Hong Kong. My advice is that if you just want to create a small private cloud, say, less than 20 physical nodes, use CloudStack. If instead you want to be part of an ecosystem and a movement, go for OpenStack, but I advise you to have a developer team or use the service of a knowledgeable consultant, like me. Is simple: You want to have fun, get into problems? OpenStack. You want something boring that works - go for CloudStack.