When Gregor Pipan from XLAB called me into his office one day last year and told me that he needed someone to work on OpenStack, I had never heard of that name before. But I said yes and here I am a little over a year later: two OpenStack summits behind me, both in Hong Kong and in Atlanta, and currently working on OpenStack for Red Hat!
What is OpenStack?
OpenStack is a free and open-source software cloud computing platform. In simple terms, you install it on a bunch of computers which then become your private cloud. You can then start, stop and manage virtual machines, virtual networks and many more things via a web or a command line interface provided by OpenStack. It was initially started as a joint project of Rackspace Hosting and NASA, but is now developed by many companies around the world.
Why work on OpenStack?
To be part of something big!
As Gregor Pipan put it, OpenStack is the Linux of our time. While still very young, it aims to be the ubiquitous cloud computing platform that will meet the needs for all kinds of cloud deployments regardless of size.
To work in open-source.
Open-source fosters innovation more than any other kind of software licensing. Since starting out being developed by only two companies, the latest release of OpenStack had contributions from 1235 engineers working for 117 companies. Which brings us to the next reason.
To get in touch with lots of talented people.
When working on a project with such a mass of developers, it is very easy to get to know many extremely talented people who will help you advance both your knowledge and your career.
To get a job.
Last but not least: OpenStack is hot stuff at the moment. At the summit in Atlanta, almost every booth had a big sign saying "We're hiring". If you'd like to work in something else than web development, here's a great chance. It's a very open community, easy to join, and a huge amount of doors will open for you.
How to get started?
- If you'd like to get your feet wet first, fire up a VM and install devstack on it. Devstack is a bash script that installs a development version of OpenStack completely automatically.
- After that, I'd recommend reading up about OpenStack on Wikipedia, which gives a great overview of the project.
- Read the code! Check out the OpenStack repository on GitHub. After doing #2, you know that OpenStack is comprised of multiple projects. Find out how the one you're most interested in works in detail by reading its code.
- Join IRC.
- Start reviewing. Go to https://review.openstack.org and search for project of your choice (for example 'project:openstack/nova' in the search bar). Reviewing code might look daunting, but in reality it's the best and quickest way to become a part of the community. Pick a few patches that you can get to know better, then follow what other reviewers are saying about them. This way you will learn the style of communication within the community, the typical mistakes and you'll get to know the inner workings of your project better!
- Fix bugs. When you're familiar enough with the code, you can start fixing bugs, which will probably be the gateway to actually getting your code into OpenStack. This is the really fun part, but it takes some setting up, check out OpenStack Gerrit Workflow.
Communication in the community
In the world of open source, where most of the communication is done over text-only channels like e-mail and IRC, solid communication skills are even more important than elsewhere.
Be communicative, constructive, friendly, patient and the community will welcome you. Be needy, spammy, arrogant and the community will ignore you.
A protip for those of you that aren't used to IRC: if you write something in the channel, you probably won't get a response. People don't watch their IRC clients all day, they get a notification when their nick is included in some text. It's therefore best to figure out beforehand who you want to ask and then ask them directly.
Get cracking, good luck and see you at the next summit!