Better libraries and larger paychecks for contributors: how the two communities work together

image

Programming language Python and OpenStack work with and depend on each other. For starters, six-year-old OpenStack consists of more than 4.5 million lines of code, 85 percent of which is Python. That said, these symbiotic communities can always improve how they work together.

Thierry Carrez, director of engineering at the OpenStack Foundation, and Doug Hellmann, senior principal software engineer at Red Hat, recently engaged in some stack diplomacy at EuroPython 2016.

The pair of Python Software Foundation Fellows cleared up some misconceptions about OpenStack. Carrez introduced OpenStack as open source infrastructure software that can be deployed on top of a secure data center to make it programmable infrastructure. That means OpenStack is usually deployed by decent-sized companies that happen to own a data center and want to provide resources for their internal development efforts or companies that want to run a public cloud basically an offer resources for rent to the wider public.

“OpenStack’s not exactly something you would deploy in your garage on a Sunday,” says Carrez. “That’s where the corporate image comes from, because the users are large organizations…This translated into a negative corporate image for the project itself, which is a bit unfair because it’s actually one of the most community-led project out there.”

cxjuzsvdhibclffxxt50

The Four Opens of OpenStack

Carrez points to OpenStack’s independent technical governance— community-elected project technical leads (PTLs) and an oversight board — the technical committee —whose election runs on a “one contributor equals one vote” basis.

“If you contribute to OpenStack to get one vote to elect the leadership of the project that will decide where the project goes and if something gets done or not,” he says.

Following their talk, which also delves into tools and resources for Python contributors developed by the OpenStack community, the pair sat down in Bilbao with David Flanders, OpenStack community wrangler, to talk about how working with Python and OpenStack can translate into a heftier paycheck with more job mobility. The transcript of their conversation was edited for clarity and brevity.

You can also catch the entire 40-minute talk on YouTube.

You guys gave some really cool viewpoints, but first I want to talk about how you came to OpenStack and Python.

Hellmann: I’ve been working with Python since the mid-to late 90s in different capacities and I came to OpenStack through the DreamHost company. I was hired to work on their OpenStack projects there and I got involved in the community and things just sort of took off for me after that.

Carrez: I came into contact with Python quite early on, but I did not consider myself a Python developer in any capacity back then. It was when we formed the OpenStack project that I really dived into Python. I’m coming from the OpenStack perspective and encounter Python through OpenStack, but only in the other way around.

Talk to me about the value that OpenStack receives from Python.

Hellmann: Originally, Python was selected in large part because it was very easily readable and it was integrated well with the distribution, so software distributions. That made it easy to ensure that OpenStack would be easy to distribute.

Carrez: We chose Python for OpenStack for a variety of reasons. The most obvious one at that time was the integration within distributions was really important for OpenStack at the very beginning to be well supported in distributions. Picking a language that was highly integrated with existing distributions was critical.
It’s also a language that was familiar to operators as an integration language. Since OpenStack operators were our target primary users, having the opportunity for them to look into the code and propose patches was also critical in choosing Python.

And what about the benefits to people who know both OpenStack and Python?

Hellmann: One of the benefits that we’re seeing from OpenStack within the broader Python community is an increased interest in hiring people who would want to write Python code and work on open source projects doing that. We’re seeing a lot of extra demand in jobs, job listings, salary rates, that sort of thing, it’s about 17% higher for OpenStack developers over standard Python developers. (That’s U.S. data from indeed.com.) It’s a little bit limited, but OpenStack is a global project and I would expect the same sort of thing to apply elsewhere.

k2ickovhz7ejytjdch5k

You also made a really cool point about the mobility of OpenStack developers. Can you talk a little bit about that?

Hellmann: I got into OpenStack with DreamHost and I’m now at Red Hat. This is actually my third job where I’ve been working on OpenStack. We have a lot of other members of the community who have moved around. They’ve been able to find a company where they fit well and a role within that company and a role within the community, and that’s a big benefit just from your own personal happiness day to day, finding a place that fits for you.

Do you want to talk a bit about how much the OpenStack community really tests Python?

Carrez: OpenStack runs 23,000 tests jobs on a typical work day — that means every four or five seconds and in most cases we’ll deploy a complete cloud and test it over one hour.

The consequence for the Python community is that their code is tested almost continuously. We integrate new versions of our libraries as they come out and there are lots of times we detect problems before anyone else…

The Python community benefits from having their libraries (if we are using them) being tested so heavily. We will report bugs back and usually that results in higher quality for Python libraries as well.

wty5tqn2ypeghs54uy7t

How are OpenStack developers contributing to a lot of Python packages and libraries and making sure that there’s more longevity as well as quality?

Hellmann: Recently we did a pretty informal poll on the developers’ list just to ask where people who were contributing to OpenStack were also contributing. We saw a huge range of applications and libraries and tools and things like that all the way from the Linux kernel down into very specific Python modules that are used widely within OpenStack and outside of OpenStack. Those range from packaging tools, web frameworks, test tools, all the way to database libraries and that sort of thing.

sdgp0eqwzzbq5i99t6d8

How can Python developers engage the OpenStack community?

Hellmann: To engage with the OpenStack community, you might want to look at some projects like Oslo project where there are libraries that are usable outside OpenStack and that sort of thing. If you start looking for employment related to OpenStack work, most of the big sponsors have job listings and there’s a job board on the openstack.org website as well.

svx78qoytzfxoq50n2sk

How can OpenStack developers get engaged in the Python community?

Hellmann: There are a couple of great ways to do that. First would be to look for a local meet-up group. We have Python meet-ups in most major cities around the world. There are also a lot of regional conferences now and you can find those on python.org Then if you’re interested in code contributions and that sort of thing, finding some of the dependencies that we use around the OpenStack ecosystem that can use a little help upstream, identifying ways that we can add features there instead of writing features in our own code, etc.

Cover Photo // CC BY NC