I had the opportunity recently to join in an OpenStack User Group meetup down in Texas and to participate in a very important discussion on the subject of the “OpenStack Core.” The discussion was primarily led by OpenStack Foundation Board members, Rob Hirschfeld, Sean Roberts, and Troy Toman.
It was a reminder of how important community to the present and the future of the OpenStack project. It also got me thinking about how else I can do to contribute to the community, even as a non-developer.
In almost every talk I’ve heard about the OpenStack community, speakers have touted the number of code contributors to the project and highlighted that as evidence of the health of the project. While I agree that is an important benchmark and sign of health for an open source project, what if you are a member of the community but not a code warrior with serious Python skills? Does that mean you can only be a user of OpenStack and perhaps a community member, but not an actual contributor?
Having spoken with some of the Foundation board members in the past , I know that is in fact not the case and that they are looking for members of the community to contribute in ways other than just code contributions. That was very important for me to hear when I initially became involved with OpenStack because while I am not a developer, I wanted to give back to a project and a community that I believed in. Thankfully, I’ve able to find small ways in which to contribute and want to encourage those who are on the sidelines but want to get involved to do the same.
In this post, I want to outline some ways that I can see community members becoming contributors without having to write a line of Python code. (I do want to note that while I believe what I will be sharing is in line with the goals of the OpenStack Foundation, I am in no way claiming that this should be considered officially endorsed recommendations. In fact, I welcome any corrections and additions that the Foundation may wish to make to my recommendations) I see 2 categories of contributions that do not require writing code – People and Process. I define them, in this context, as follows:
- People – Contributions in this category would include anything that helps to enlarge and to empower the OpenStack community. It includes recruitment and anything that helps to foster a culture of collaboration.
- Process – Contributions here include creating processes that enable the community to more easily deploy and to use OpenStack to solve real-world problems. It includes training and collateral creation.
As OpenStack continues to gain traction in the market, it becomes even more important for the community to expand, both in size and in the diversity of its members. In particular, i believe that the community needs to maintain a good balance of end-users, partners, and vendors. To do that, we need to get the word out to end-users that are valuable to the community. Some ways to foster that include:
Tech Evangelism – It would be great to see more people, beyond folks in the OpenStack Foundation, who can tell the Open Cloud story to partners and users. Not just to IT Operations folks either, but developers and business leaders. Time and again, I talk to people who are interested in OpenStack but do not yet have an understanding of the technology or the project. What if we had community members at every tech conference and every tech user group meetup (not just OpenStack meetups) who would be able to tell the story and explain the value of OpenStack?
User Stories – Time and again, I speak with users who want to know who else, among their peers, have deployed OpenStack. Community is built through shared experiences, not only the experience of writing code for an open source project, but of learning and deploying a new and exciting technology. We all learn something valuable when we hear fellow members share their experiences. The OpenStack Foundation has done a really good job of gathering those stories so they can heard at the OpenStack Summits and on their website. It would be great to see more users share at the Summits, on video, and also at user group meetups.
User Groups – Speaking of meetups, one of the best ways to cultivate community and to create a culture of collaboration is to gather regularly with other community members. The number of OpenStack user groups are growing and the membership within these user groups are growing as well. However, it would be fantastic to see more participation at each meetup and to see more community members recruiting others to attend and to be members of the organizing committees for these user groups. Also, since there still community members who are situated too far from the user group closest to them, a major way to contribute back to the community would be to start new user groups.
One criticism I hear from OpenStack detractors is the seeming lack of production deployments out in the field. When I speak with users who are evaluating OpenStack and ask why they have not moved into production with their Cloud, i often hear concerns about lack of knowledge on how to design, to deploy, and to use OpenStack. Some ways I see to potentially address this include the following:
Training – The OpenStack Foundation has recently called for contributors to help create OpenStack User Training Guides. That is a fantastic way to give back to the community and to help ensure that more people understand how OpenStack works and how it can be deployed to solve business and technical problems. Along the same lines, the OpenStack forum, Ask OpenStack, is another great way for community members to contribute their experience and knowledge of the platform.
Reference Architectures and Use Cases – Another request I frequently receive are for OpenStack reference architectures (RA) and use cases. These stem from a desire to know how to optimally deploy an OpenStack Cloud and to use it to enable applications. So the RAs and use cases requested may include:
- Running OpenStack at scale
- Using multiple hypervisors in OpenStack
- Deploying NoSQL on OpenStack
- Deploying Hadoop on OpenStack
There are many more such examples that users are actively asking about and the more contributions are made in this area, the more success we will see in production deployments.
Documentation – Like the OpenStack code, documentation is a community project, requiring contribution from community members. Currently, most of the documentation is focused on installation and there have been significant additions to the library, in terms of operational guides. However, I believe there is more to be done to enhance both the existing documentation as well as to create new ones. For example, I’ve been speaking with some other folks in the community about the need for a design guide.
So, these are my modest proposals for how everyone, including non-developers, can make significant contributions to the OpenStack community. What do you think and what other contributions would you suggest?
- OpenStack Icehouse Incubation Roundup (zerobanana.com)
- OpenStack: open source cloud software marks third birthday (zdnet.com)