September 5th, 2013

Canonical uses Cassandra as part of its information infrastructure, notably as the backend for our service. This error collection service serves as a real time data source of crashes for millions of Ubuntu users, and serves as a metric on how reliable Ubuntu is and where it can be improved. has over 65 million error reports with new ones added every second. The processed reports are stored in a 12 node Cassandra ring. This ring stores 12 TB of data (before replication) and is running in a private OpenStack cloud using Ceph for volumes. We’re hoping to present our findings on the performance of Cassandra on Ceph at a future conference.


We deploy Cassandra onto OpenStack via a tool called Juju. Juju is a service orchestration tool that deploys and manages services. For example we use Juju to deploy OpenStack with Ceph as a block storage component, and then we use Juju to deploy Cassandra on top of that. This allows us to deploy nodes quickly and repeatably, and since Cassandra is designed to scale out, we need to ensure that we have the ability to grow capacity quickly.  


The Cassandra orchestration script, or “charm” as we like to call it, is available for usage and improvement to anyone in the community. In fact, this charm has served as a prototype for all of our future Cassandra deployments and will soon be rewritten to take into account all our lessons learned and will ship in the Juju Charm Store for any Ubuntu user to deploy in minutes.


So why does this matter to you? Well, we’re currently in the process of running the Juju Charm Championship and want to see what interesting sets of charms the Cassandra community can come up with.


There are currently 6 categories, each with a $10,000 USD prize attached.  It’s a competition in which contestants use Juju to wrap an application into a self-contained, reusable charm bundle — essentially a blueprint for how the services in an environment should connect together. For example here’s what our Cassandra deployment looks like, can you build a better one?



In each category, we’re looking for a charm bundle that really innovates, bringing simplicity and speed to an otherwise complex task. A high quality bundle will reflect best practices of services that run in production and solve “infrastructure gunk” and solve real world problems. The great thing about a charm bundle is that it can then be shared with the community and re-used anywhere, by anyone. That means the smallest start-up can benefit from the same easy deployment as the biggest companies. It’s out-of-the-box infrastructure deployment.


Each winner will receive $10,000 and the chance to participate in a joint marketing campaign to promote their charmed solution to users. With 6 categories this means $60,000 in grand prizes to be won. In addition, charm maintainers whose charms are used in winning bundles can win $200 each time their charm is used in a winning bundle. We’ve got all the rules and details available on the github page.


The contest runs until 22nd October 2013.