Jump to: navigation, search

Internship ideas

Revision as of 15:08, 17 March 2014 by Alejandro Cabrera (talk | contribs) (Coding: Added marconi storage project)

Outreach Program for Women Ideas List

The GNOME Foundation provides an outreach program for women. You can learn more here: https://live.gnome.org/OutreachProgramForWomen.

OpenStack would like to participate as a project for the Dec. 2013 to March 2014 session. We have identified some mentors and have sponsorship from the OpenStack Foundation, Rackspace and HP to participate in this program. This page should collect the ideas for applicants to work on.

GNOME OPW emphasizes that applicants may not have ever worked on FLOSS before. There are several stages to the program, but the first stage is to mentor during the application process itself. Joining mailing lists, IRC, understanding the channels of communication are good first steps. Logging bugs and fixing bugs are also good ideas.

Interns are expected to spend 40 hours a week on the project.

So, feel free to list ideas here:

Documentation

OpenStack documentation is highly technical and processed like the code itself.

Our tool chain is a maven plugin housed in http://github.com/stackforge/clouddocs-maven-plugin and currently includes all branding, CSS, and xslts. We would like to separate those out so individuals or organizations could maintain their own branding files separately from the plugin. We also are looking to output xhtml that could be styled separately.

Expected results: Patchsets to the maven plugin submitted for review, reviewed by community members.

Knowledge prerequisites: Documentation value proposition

Nice-to-have knowledge: git source control, Java, XSLT, CSS, HTML5, XML

Mentor: Contact Anne Gentle (anne dot gentle at rackspace dot com) for information. Your first documentation patch walk-through is documented at https://wiki.openstack.org/wiki/Documentation/HowTo/FirstTimers.

Community

  • Build a supply-chain management system to distribute merchandising to OpenStack User Groups around the world [reed on IRC / stefano at openstack org] Details
  • Add audio and video real time collaboration capabilities to OpenStack User Groups portal [reed on IRC / stefano at openstack org]
  • Write puppet scripts to automatically deploy/manage Ask OpenStack [reed on IRC / stefano at openstack org]

Coding

Marconi: Add a New Storage Backend

Description: This project aims to add a new storage backend for the Marconi message bus. Implementation, tests, and documentation - that's the goal!

Expected results: a working storage backend, demonstrated by a suite of tests, and with sufficient documentation to successfully install and deploy.

Knowledge pre-requisites: basic python, command line navigation

Nice-to-have knowledge: advanced python (ecosystem + language features), storage understanding, benchmarking

Mentor: Alejandro Cabrera

Additional information: here

Marconi: Shaping the API v1.1

Description: Marconi, is an incubated, messaging service for OpenStack. It's growing really fast and the team is already working on the next version of its API. The proposed project is to help the team to shape out the API v1.1, propose new features and make it rock-solid.

Related documentation: https://wiki.openstack.org/wiki/Marconi/specs/api/v1.1

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: RESTFul APIs, HTTP

Mentor: Flavio Percoco


Marconi: Py3K Support

Description: Marconi, is an incubated, messaging service for OpenStack. It's growing really fast and the team is already working on the next version of its API. The proposed project is to help the team to make Marconi work under Python >=3.3. This is a really important task since the team doesn't want Marconi to be cut off of some environments because of its lack of support for Py3K.

Related documentation: https://blueprints.launchpad.net/marconi/+spec/py3k-support

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python2, Python3

Mentor: Flavio Percoco Alejandro Cabrera

Surface the "Instance Actions" Information

Note from the mentor: Several applicants have already expressed an interest in this project and made their first contribution to Horizon as part of their application. If you're interested in working on OpenStack, I encourage you to look at the other projects and get in touch with the relevant mentor.

Description: In the web dashboard (Horizon), it is possible to see information about the instances currently running. It would be nice to be able to see the instance history when clicking on the details, e.g. to figure out when an instance was shut down and by whom, etc. This information is already provided by an API in the compute service (Nova), and needs to be surfaced both for the user (who can see the history for their own instances) and the admin (who can see the history for everyone). This will probably require using Horizon Tabs and TabGroups, adding it to the instance details and finding a nice way to display the data.

Related blueprint: https://blueprints.launchpad.net/horizon/+spec/instance-actions-dashboard

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python, Django, Selenium/UI Testing

Mentors: Julie Pichon

Glance - adding NoSQL support

Description: Glance is used as metadata repository management tool within OpenStack for server Images. NoSQL can be really useful for DB backend for Glance.

Members of the community already have ideas on how one might want to implement this, therefore the first step will be to reach out to the community to collect and discuss ideas. Glance folks are pretty active on #openstack-glance channel most of the time and would be willing to share their opinions on this or any other project.

Related blueprint: https://blueprints.launchpad.net/glance/+spec/enable-mongo-db

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python, NoSQL

Mentors: Nikhil Komawar

Glance - Implement Tasks scrubber

Description: Glance Tasks are currently never deleted. This project would involve writing a scrubber logic for soft-deleting tasks as a part of Glance codebase.

Glance folks are pretty active on #openstack-glance channel most of the time and would be willing to share their opinions on this or any other project. Please reach out to me on IRC to get a detailed information on this.

Related blueprint: https://blueprints.launchpad.net/glance/+spec/async-glance-workers

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python

Mentors: Nikhil Komawar

Glance - Swift ranged uploads

Description: We currently retry the entire upload process if it fails. Need to add the ranged uploads logic from swift store to improve performance.

Glance folks are pretty active on #openstack-glance channel most of the time and would be willing to share their opinions on this or any other project. Please reach out to me on IRC to get a detailed information on this.

Related blueprint: TBA

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python

Mentors: Nikhil Komawar

Neutron - add an extension for port statistics

Description:

Members of the community already have ideas on how one might want to implement this, therefore the first step will be to reach out to the community to collect and discuss ideas. Neutron folks are pretty active on #openstack-neutron channel most of the time and would be willing to share their opinions on this or any other project.

You´ll create an extension for Neutron [1] to be able to expose monitoring data regarding ports (byte or packets transmitted or received). You´ll provide an implementation of the extension using the ML2 framework [2] and openvswitch. This feature will be implemented end to end, from api design to unit testing.

Related blueprint: https://blueprints.launchpad.net/neutron/+spec/port-statistics

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python, Openvswitch

Mentors: Rossella Sblendido

Ceilometer - Period-spanning statistics

Description: Currently, in Ceilometer, statistical aggregates are calculated over discrete periods. However, there are many interesting statistical techniques that naturally span across multiple periods. Examples range from simple moving averages to more sophisticated exponential smoothing with the potential for forecasting & prediction bands. This project would involve designing the method for calculating period-spanning statistics and implementing period-spanning statistics in the storage drivers (MongoDB, SQL, etc.)

Related blueprint: https://blueprints.launchpad.net/ceilometer/+spec/period-spanning-statistics

Expected results: Patchsets submitted for review, reviewed by community members

Knowledge prerequisites: programming knowledge

Nice-to-have-knowledge: Python, MongoDB, SQL, basic statistics

Mentors: Eoghan Glynn

Design

Persona research and design for Horizon UI

Description: There has been some initial work done in a few different areas around generating Personas for the Horizon UI. This task/project would allow someone to lead the effort to pull the research together, perhaps perform further end-user interviews or surveys, analyze data, form groups of personas, and put together an initial set of target Horizon personas that we can use during requirements gathering, design phases, and general discussion.

Related blueprint: https://blueprints.launchpad.net/openstack-ux/+spec/horizon-personas

Expected results: Initial set of Personas for people to use during requirements gathering, design phases, and general discussion of our target Horizon users.

Knowledge prerequisites: basic interviewing skills, willingness to talk with a lot of new people, readiness to listen and report back findings

Nice-to-have knowledge: User Experience Design basics

Mentors: Liz Blanchard, Ju Lim

Redesign for the Object Storage -> Containers section in Horizon

Description:

Currently, there is a section under the Object Storage panel that allows users (e.g. Consumers and/or Project Administrators) to Create, Delete, and Edit Containers. It would be great to do a little bit of research into identifying the use cases around these features and then proposing a redesign of these features based on the findings. This will include learning some basic Usability best practices and applying them to a design. The design would be done in wireframe format, so it could be done in any tool that allows for this. The design would be reviewed on the UX AskBot site, a new blueprint would need to be created as well. This would take a new designer through the process that currently exists for proposing an updated design to a current feature in Horizon.

Related blueprint: N/A (To be created by intern as part of process)

Expected results: Redesign of "Containers" section in Object Storage panel proposed and approved by Horizon community.

Knowledge prerequisites: basic sketching or wireframing skills

Nice-to-have knowledge: User Experience Design basics

Mentors: Liz Blanchard, Ju Lim


Horizon Concept Review and Usability Testing

Description: There has been very little work done around Horizon UI concept reviews and usability testing. This task/project would allow someone to lead the effort to put together a test plan, identify customers as test participants, conduct (contextual) inquiry / interview, survey users, analyze data to share results / findings with the community findings regarding how current production OpenStack users are using the software, their use cases, and whether the Horizon UI meets their needs. Along the way, you may identify areas of improvement, concepts that need further refinement, and new use cases or opportunities that have not yet been addressed.

Related blueprint: https://blueprints.launchpad.net/openstack-ux/+spec/ux-users-community-testing

Expected results: (1) Identify a community of users willing to participate in Horizon UI usability testing and participate in various OpenStack concept reviews. (2) Share usability test findings with the community that will be used for design and general Horizon discussions.

Knowledge prerequisites: usability testing skills, basic interviewing skills, willingness to talk with a lot of new people, readiness to listen and report back findings, ability to analyze data to find patterns.

Nice-to-have knowledge: User Experience Design and/or User Research basics

Mentors: Ju Lim, Liz Blanchard