How I Contribute To OpenStack: DreamHost’s Doug Hellmann

OpenStack is the platform upon which Rackspace has built its open cloud. The community-driven cloud operating system, which Rackspace co-founded, has sparked an open source cloud revolution. Enabling the community of hundreds of developers to contribute code and leverage the OpenStack cloud however they want has created a shift in how applications are developed. This blog series collects insight straight from key developers on the front lines about how they became involved in OpenStack and the open cloud, and what contributions they’ve made.

In this installment, DreamHost Senior Cloud Engineer Doug Hellmann discusses what drew him to OpenStack and open source and what he’s done to contribute to the open cloud.

Tell us about yourself.
I am a Senior Cloud Developer with New Dream Network, LLC (DreamHost). I have been programming in Python since version 1.4 in the late 1990s, and have worked on a variety of Unix and non-Unix platforms for projects in fields such as mapping, medical news publishing, banking and data center automation. I am an active member of the Python Software Foundation, and helped found Python Magazine (unfortunately, now defunct). Last year I completed my first book, “The Python Standard Library By Example.” I live in Athens, Ga. with my wife and two cats.

Why did you become involved in OpenStack?
I started contributing to OpenStack just before the Folsom Design Summit, after joining DreamHost in February of 2012. We are using OpenStack to build a public cloud service, so there are several of us contributing in different ways.

Tell us about your specific contributions to an OpenStack project (i.e. what the code was and what it did).
Most of my contributions have been on the new metering service, ceilometer. I have been involved at every stage, from requirements gathering, to design, to the ongoing implementation.

In addition to ceilometer, I have been working on the new unified command line project. I created the library cliff, which is serving as the basis for creating new command plugins to be run through the common main program.

I have also contributed some documentation patches to Nova, as well as some enhancements to the RPC API based on requirements from ceilometer.

Finally, I have done a lot of code reviews for openstack-common, and have core-reviewer rights there.

How does OpenStack change your approach to cloud development?
OpenStack has given me a chance to look at cloud development from a completely new perspective. Before joining DreamHost I was working on a closed-source tool for moving server images between service providers, so I was looking into the cloud from the outside as a consumer of the APIs. Now, I am working on an open source cloud service implementation and spending a lot more time thinking about how the cloud looks from the inside.

What are some of the benefits of an open collaboration effort among so many companies sharing open source code, like OpenStack?
The OpenStack community leaders have done an outstanding job of engendering a sense of cooperation in such a large group of contributors. The collegial attitude, combined with an openness to new ideas and a shared commitment to following the structured development process make it easy to join and contribute to the project in a meaningful way. As a result, the community has grown quickly and with a level of diversity exceeding the other open source projects I am familiar with, but without losing track of the shared goals that brought us all together in the first place.

The diversity of the contributors gave us more perspectives when gathering requirements for ceilometer, and resulted in some important design decisions early in the project that will make it a more flexible tool in the long term. Having such a large pool of collaborators also helps a lot during code reviews, since I can ask for input on how I am using tools or techniques that are new to me. It also means that DreamHost doesn’t have to build something this complicated on our own. We have a group of developers working on OpenStack in different areas at the same time, so our input is heard where we have specific requirements, but we can also spread out and work on those requirements in parallel.

Thank you, Doug, for your contributions to OpenStack and the open cloud.

Are you a developer contributing to OpenStack? We’d love to hear more about what you’re doing and why. Leave a comment here or contact me at

And check out previous installments in the series “How I Contribute To OpenStack.”