Welcome to OpenStack Outreachy
OpenStack provides open source software for building public and private clouds. We are constantly moving and growing and very excited to invite newcomers to our community. To this end, the OpenStack Foundation has joined the program Outreachy.
Outreachy helps people from groups underrepresented in free and open source software get involved. We provide a supportive community for beginning to contribute any time throughout the year and offer focused internship opportunities twice a year with a number of free software organizations.
The current round of internships is open internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it's open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. We are planning to expand the program to more participants from underrepresented backgrounds in the future.
- Current applicant/mentor list: https://etherpad.openstack.org/p/outreachy
- FAQs applicants
- FAQs mentors
- Internship ideas
- Internships mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-internships
GNOME Foundation has found that the program has dramatically improved the participation by women in their community. For example, at GUADEC they went from having around 4% women to around 17% in just a few years. Representation of women among free and open source participants has been cited at 3% ,  as contrasted with the percentages of computing degrees earned by women (all at over 10% higher) in the US.
At the October 2012 OpenStack Summit, Anne Gentle led an unconference session about including more women in OpenStack and identified one of the goals as bringing more newcomers to OpenStack. The Outreachy program is an excellent way to meet that inclusion goal. At the October 2013 OpenStack Summit, mentors and interns presented about their experiences in "[Everyone Ought to Know about OpenStack Internships]"
The program offers a good match for efforts to improve our community for women and all newcomers in OpenStack, making it more welcoming for all. The GNOME program specifically seems to be a perfect fit for OpenStack because it matches mentors with newcomers. Another expected effect is to increase women's attendance at the Summit, maybe in conjunction with scholarships and/or employer support. Contrary to Google Summer of Code, which is aimed only at developers, this program results in many strong applicants because it reaches and is suitable for many people with interests in coding, documentation, design, or marketing.
The Women in OpenStack group has already found 4-6 mentors for the program. Each internship requires $6,250 from OpenStack sponsors or by the Foundation. The Foundation is happy to help companies with sponsorship, and more funding is always welcomed. Please contact stefano at openstack dot org through email if you would like to sponsor.
- September 16: participating organizations start being announced
- September 16 - November 2: applicants need to get in touch with at least one project and make a contribution to it
- September 29: participating organizations are finalized and application system opens
- November 2: application deadline at 7pm UTC
- November 2 - November 17: applicants are encouraged to continue making contributions for the project they applied for; submitted applications are open for editing
- November 17: accepted participants announced on https://wiki.gnome.org/Outreachy/2015/DecemberMarch
- December 7 - March 7: internship period
What the heck is OpenStack?
In a sentence, OpenStack provides open source software for building public and private clouds. What does that mean? We're a collection of open source projects that integrate to help organizations deploy and run clouds for computing, networking, and storage (both block storage for providing volumes to VMs and object storage for storing objects such as images or music files). With OpenStack, you can control large pools of compute, storage, and networking resources throughout a data center, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface. The Start page on openstack.org has more details.
We have in-person Summits in the fall and spring. We're a community of a lot of companies and individual contributors with a Foundation providing governance and oversight. We collaborate together to build cloud software that's free from vendor lock-in.
Community members at the spring 2012 Design Summit in the Developer Lounge (Flickr:thegentles)
With the help of a mentor, you can navigate these projects to find out more specifics on the types of work available.
There are currently several components of OpenStack: Compute, Object Storage, Identity, Dashboard, Block Storage, Network and Image Service. Let's look at each in turn.
- Block Storage (codenamed "Cinder") provides persistent block storage to guest VMs. This project was born from code originally in Nova (the nova-volume service described below). In the Folsom release, both the nova-volume service and the separate volume service are available.
- Compute (codenamed "Nova") provides virtual servers upon demand. Rackspace and HP provide commercial compute services built on Nova and it is used internally at many companies.
- Dashboard (codenamed "Horizon") provides a modular web-based user interface for all the OpenStack services. With this web GUI, you can perform most operations on your cloud like launching an instance, assigning IP addresses and setting access controls.
- Identity (codenamed "Keystone") provides authentication and authorization for all the OpenStack services. It also provides a service catalog of services within a particular OpenStack cloud.
- Image (codenamed "Glance") provides a catalog and repository for virtual disk images. These disk images are mostly commonly used in OpenStack Compute. While this service is technically optional, any cloud of size will require it.
- Network (codenamed "Neutron") provides "network connectivity as a service" between interface devices managed by other OpenStack services (most likely Nova). The service works by allowing users to create their own networks and then attach interfaces to them. Quantum has a pluggable architecture to support many popular networking vendors and technologies.
- Object Store (codenamed "Swift") provides object storage. It allows you to store or retrieve files (but not mount directories like a fileserver). Several companies provide commercial storage services based on Swift. These include KT, Rackspace (from which Swift originated) and Internap. Swift is also used internally at many large companies to store their data.
- Telemetry Service (codenamed "Ceilometer") aggregates usage and performance data across the services deployed in an OpenStack cloud. This powerful capability provides visibility and insight into the usage of the cloud across dozens of data points and allows cloud operators to view metrics globally or by individual deployed resources.
- Orchestration Service (codenamed "Heat") is a template-driven engine that allows application developers to describe and automate the deployment of infrastructure. The flexible template language can specify compute, storage and networking configurations as well as detailed post-deployment activity to automate the full provisioning of infrastructure as well as services and applications. Through integration with the Telemetry service, the Orchestration engine can also perform auto-scaling of certain infrastructure elements.
- and more projects!
OpenStack stages integrated releases every six months, named according to a voted-upon geographic location nearest to the next Summit. Don't let all these crazy names (release names, project names, oh my!) stop you from jumping in though. We have a lot of fun in the cloud with names and word play.
How can I learn even more?
Read the project's page on Launchpad.
We communicate a lot on IRC and all the channels are listed at http://wiki.openstack.org/IRC. You can go to the project's IRC channel, such as #openstack-dev (where the developers are), #openstack (where the deployers are), and for each project you can also find channels with the project name like nova is at #openstack-nova, swift is at #openstack-swift, and so on. You can read the conversation there and jump in when you are ready.
As a prospective applicant, you should consider joining the #openstack-opw channel, where you can meet mentors, interns past and present, as well as other helpful members of the community.
If you are applying for a software development internship, run DevStack in a VM on your laptop to run all the integrated projects in one location. Do ask your mentor or people on IRC for help if you encounter any problems running DevStack. Make sure to have the Documentation/HowTo/FirstTimers wiki handy.
Look at the open bugs for the project Launchpad, the pattern is http://bugs.launchpad.net/nova where nova is the project name. There are many projects that are not completely code-related. For example, doc bugs are at http://bugs.launchpad.net/openstack-manuals, API doc bugs are at http://bugs.launchpad.net/openstack-api-site, continuous integration bugs are tracked at http://bugs.launchpad.net/openstack-ci, and quality assurance tooling bugs are at http://bugs.launchpad.net/tempest.
Look at the recent changes in the project's Git repository, for example https://github.com/openstack/glance/ shows the most recent changes to the Image service project, Glance.
Read about our use of Gerrit for code reviews in the Developer's Guide.
Read the recent discussion on the project's mailing list, such as http://lists.openstack.org/pipermail/openstack-dev/.
Read the blogs of the project's mentor and other project contributors (you can learn who they are when looking at the Git repository). Many contributor's blogs are collected at http://planet.openstack.org.
Introduce yourself to the project's mentor and discuss what your tasks during the internship program would be.
How do I apply?
The application process is described in detail at https://wiki.gnome.org/OutreachProgramForWomen#Send_in_an_Application. A contribution is required and you answer questions when you apply. You are expected to work full-time on the internship although you can indicate any pre-planned time off in your application. Please be available and responsive throughout the application period so we can work with you on improving your application.
What if I have a question about OpenStack?
With a large collection of projects, just finding out where to ask (or who) can be intimidating. We want you to feel free to contact anyone in the community, and for direct contact, contact the Internship coordinator mailing list you have any questions during the application process. There are other mailing lists available at http://wiki.openstack.org/MailingLists with many purposes.
For information about expectations for mentors and to volunteer to be a mentor, see Outreachy/Mentors. Mentors should login and apply for a mentor role for OpenStack on https://outreachy.gnome.org/ (the OpenStackID provider can be used).
The identified volunteer mentors are:
- Nikhil Komawar, Software Developer, Rackspace. Email: nikhil.komawar at rackspace dot com IRC: nikhil_k
- Rossella Sblendido, Software Developer, SUSE, Email: rsblendido at suse dot com IRC: rossella_s
- Mike Perez, Cross-Project Developer Coordinator, OpenStack Foundation, Email: thingee at gmail dot com IRC: thingee
- Victoria Martínez de la Cruz, Developer, Red Hat. Email: victoria at redhat dot com. IRC: vkmc
- Alexandra Settle, Rackspace. Email: alexandra.settle(at)rackspace(dot)com. IRC: asettle
- Victoria Martínez de la Cruz, Developer, Red Hat. Email: victoria at redhat dot com. IRC: vkmc
- Mahati Chamarthy, Software Engineer, Intel. Email: mahati.chamarthy at intel dot com. IRC: mahatic
- Lana Brindley, Tech writing manager, Rackspace. Email: lana.brindley(at)rackspace(dot)com. IRC: loquacities
More resources for Outreachy administrators.
Please see the Ideas page.