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.
Each internship requires $6,500 from OpenStack sponsors or by the Foundation. The Foundation is happy to help companies with sponsorship, and more funding is always welcomed. Please take a look at the sponsors info page if you would like to sponsor.
- 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
- February 16: participating organizations are announced and application system opens
- February 16 - March 30: applicants need to get in touch with at least one project and make a contribution to it
- March 30: application deadline at 4pm UTC
- March 30 - April 28: applicants are encouraged to continue making contributions for the project they applied for; submitted applications are open for editing
- April 28: accepted participants announced on this page at 4pm UTC
- May 30, 2017 - August 30, 2017: 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.
- Data Processing Service (codenamed "Sahara") allows users to provision and scale clusters of popular "big data" processing frameworks, including Hadoop, Spark, and Storm. Users can then store their own distributed computing applications in Sahara and use its Elastic Data Processing capabilities to run data processing jobs easily and repeatably. Sahara is an OpenStack service in its own right, but interacts with almost all of the services above, so learning Sahara can provide an excellent overview of OpenStack as a whole.
- 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 , for instance, 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.
- Check here on how to start off with process set up - Documentation/HowTo/FirstTimers. 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.
- 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.
- Read about our use of Gerrit for code reviews in the Developer's Guide.
- 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 to apply and Application Tips
The application process is described in detail at https://wiki.gnome.org/Outreachy#Application_Process. 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.
In order to make your application stronger, here are a few things you could consider including:
- Previously worked projects/coding experience. If it is docs, related experience if any
- What do you intend to learn from the selected project? Or rationale behind choosing the specific project
- How do you think this internship is going to help you achieve what you wanted?
- Your next choice of projects if your first choice is not available
Also include information or link on your merged patch (which is a requirement to be considered for the internship). 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 nik.komawar AT gmail.com - nikhil - Glance (Images catalog), Searchlight
- Rosella Sblendido - rsblendido AT suse.com - rosella_s - Neutron (Networks)
- Mike Perez - thingee AT gmail dot com - thingee - Cinder (Block storage)
- Jon Bernard - jobernar AT redhat.com - jbernard - Cinder (Block storage)
- Sayali Lunkad - sayali.lunkad AT suse.com - sayalilunkad - Horizon (Dashboard) and Docs
- Kirill Zaitsev k.zaitsev AT me.com - kzaitsev_* - Murano (Application catalog)
- Davanum Srinivas - davanum AT gmail.com - dims - Oslo (Common Libraries), Nova (Compute), Magnum (Containers)
- Devdatta Kulkarni - devdatta.kulkarni AT rackspace.com - devkulkarni - Solum
- Ivan Kolodyazhny - e0ne ATe0ne.info - e0ne - Cinder (Block storage)
- Elise Gafford - egafford AT redhat.com - egafford - Sahara (Data processing) (Note: Are you trans? Me too. Feel free to connect!)
- Rodrigo Duarte - rduartes AT redhat.com - rodrigods - Keystone (Identity) and Tempest (QA)
- Raildo Mascena - raildom AT gee mail.com - raildo - Keystone(Identity) and Infra
- Telles Nobrega - tenobreg AT redhat.com - tellesnobrega - Sahara (Data processing)
- Tim Burke - tim AT swiftstack.com - timburke - Swift/Swift3 (Object storage)
- 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
More resources for Outreachy administrators.
Please see the Ideas page.