StudentProjectIdeas
Version 45 (Tino Vázquez, 03/25/2010 12:55 pm)
| 1 | 19 | Borja Sotomayor | h1. Project Ideas for Students |
|---|---|---|---|
| 2 | 2 | Ruben S. Montero | |
| 3 | 28 | Ruben S. Montero | !>2010_300x267px.jpg! |
| 4 | 28 | Ruben S. Montero | |
| 5 | 33 | Borja Sotomayor | OpenNebula has been accepted as a Google Summer of Code 2010 mentoring organization. "Google Summer of Code (GSoC)":http://code.google.com/soc/ is a program that offers student developers stipends to write code for various open source projects. To get more information on the program please "take a look to the GSoC FAQ":http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs. This page lists projects we would be willing to mentor as part of Summer of Code. |
| 6 | 4 | Borja Sotomayor | |
| 7 | 34 | Borja Sotomayor | Once you are ready to submit an application, remember that you must do so before *April 9th* through the "GSoC webapp":http://socghop.appspot.com/ |
| 8 | 34 | Borja Sotomayor | |
| 9 | 1 | Ruben S. Montero | h2. OpenNebula in a Nutshell |
| 10 | 1 | Ruben S. Montero | |
| 11 | 24 | Borja Sotomayor | OpenNebula is an open-source toolkit to easily build Infrastructure-as-a-Service clouds. In a nutshell, it is a piece of software that manages the deployment of virtual machines (Xen, KVM, VMWare are currently supported) on a pool of physical resources. OpenNebula has also been designed to be integrated with existing networking and storage solutions, meaning OpenNebula will also handle VM image transfers, VM setup, network setup, etc. |
| 12 | 1 | Ruben S. Montero | |
| 13 | 24 | Borja Sotomayor | You can read more about OpenNebula on our "main website":http://www.opennebula.org/ |
| 14 | 16 | Borja Sotomayor | |
| 15 | 18 | Borja Sotomayor | h2. Required skills |
| 16 | 1 | Ruben S. Montero | |
| 17 | 1 | Ruben S. Montero | To work on any of these projects, you will need to be familiar with the languages and technologies used to write OpenNebula. Unfortunately, we cannot mentor students who are just getting started in computer programming, or would have to learn a completely new language for the project (unless you feel you can learn this language on your own). |
| 18 | 1 | Ruben S. Montero | |
| 19 | 18 | Borja Sotomayor | The skill you should have are: |
| 20 | 1 | Ruben S. Montero | |
| 21 | 18 | Borja Sotomayor | * Competent in C++ or Ruby. These are the two languages used in OpenNebula, and most components use only C++ or Ruby exclusively, so you only need to know one of them. |
| 22 | 24 | Borja Sotomayor | * Working knowledge of Git. |
| 23 | 24 | Borja Sotomayor | * Being familiar with Xen, KVM or VMWare is not required, but it certainly helps. |
| 24 | 1 | Ruben S. Montero | |
| 25 | 18 | Borja Sotomayor | Each project idea may have more specific requirements beyond those listed above. |
| 26 | 18 | Borja Sotomayor | |
| 27 | 18 | Borja Sotomayor | |
| 28 | 18 | Borja Sotomayor | h2. Project Ideas |
| 29 | 18 | Borja Sotomayor | |
| 30 | 43 | Tino Vázquez | > *!!! IMPORTANT NOTE !!!* |
| 31 | 40 | Tino Vázquez | |
| 32 | 45 | Tino Vázquez | > Jaime Melis and Constantino Vazquez won't be available during 27th March through the 4th April, if you have any urgent doubts regarding one their mentored projects during this period, please contact one of the following mentors: |
| 33 | 44 | Tino Vázquez | > |
| 34 | 44 | Tino Vázquez | > * Ruben S. Montero (rubensm@dacya.ucm.es) |
| 35 | 44 | Tino Vázquez | > * Javier Fontán (jfontan@fdi.ucm.es) |
| 36 | 44 | Tino Vázquez | > * Borja Sotomayor (borja@cs.uchicago.edu) |
| 37 | 37 | Tino Vázquez | |
| 38 | 1 | Ruben S. Montero | h3. OpenNebula Management Console |
| 39 | 16 | Borja Sotomayor | |
| 40 | 1 | Ruben S. Montero | ** *Description*: OpenNebula provides a powerful API and CLI, in this project we will develop a web-based console for OpenNebula. The user will login in a configurable dashboard with specific widgets/tabs for monitoring the physical infrastructure, boot a new virtual machine, or control running VMs. |
| 41 | 1 | Ruben S. Montero | ** *Links*: To get an idea you can check for example the "AWS console":https://console.aws.amazon.com/ |
| 42 | 1 | Ruben S. Montero | ** *Requirements*: Web programming (as part of the project we will decide upon the specific platform, e.g. Ruby on rails...). In this project you'll be interfacing with OpenNebula, and you will have the opportunity to learn the basics of virtualization and cloud computing. Difficulty: medium-low |
| 43 | 30 | Ruben S. Montero | ** *Mentor*: Jaime Melis: j.melis@fdi.ucm.es |
| 44 | 20 | Tino Vázquez | |
| 45 | 16 | Borja Sotomayor | h3. Improve OpenNebula EC2 interface |
| 46 | 31 | Ruben S. Montero | |
| 47 | 24 | Borja Sotomayor | ** *Description*: OpenNebula can be used to build a public cloud accessible through EC2 or OCCI interfaces. However, OpenNebula currently implements only a subset of the Amazon EC2 interface. The goal of this project is to refine the existing methods and to implement additional EC2 calls. |
| 48 | 1 | Ruben S. Montero | ** *Links*: "OpenNebula EC2 configuration guide":http://www.opennebula.org/documentation:rel1.4:ec2qcg and "user guide":http://www.opennebula.org/documentation:rel1.4:ec2qug |
| 49 | 24 | Borja Sotomayor | ** *Requirements*: Familiarity with EC2 interfaces preferred. Difficulty: medium |
| 50 | 30 | Ruben S. Montero | ** *Mentor*: Jaime Melis: j.melis@fdi.ucm.es |
| 51 | 18 | Borja Sotomayor | |
| 52 | 35 | Tino Vázquez | h3. OCCI Web Interface |
| 53 | 35 | Tino Vázquez | |
| 54 | 35 | Tino Vázquez | ** *Description*: OCCI is the OGF Interface proposed for Cloud Computing, lightweight yet powerful. A possible problem can be user adoption, since the REST interface with XML representation is not appealing for the general public. This project aims to build a web interface for OCCI to ease the lifecycle management of Virtual Machines using the public cloud interface. |
| 55 | 35 | Tino Vázquez | ** *Links*: To get an idea you can check for example the "AWS console":https://console.aws.amazon.com/ |
| 56 | 35 | Tino Vázquez | ** *Requirements*: Web programming (as part of the project we will decide upon the specific platform, e.g. Ruby on rails...). In this project you'll be interfacing with OpenNebula, and you will have the opportunity to learn the basics of virtualization and cloud computing. Difficulty: medium-low |
| 57 | 36 | Tino Vázquez | ** *Mentor*: Constantino Vázquez Blanco: tinova@fdi.ucm.es |
| 58 | 35 | Tino Vázquez | |
| 59 | 24 | Borja Sotomayor | |
| 60 | 1 | Ruben S. Montero | h3. Improve integration between Haizea and OpenNebula |
| 61 | 31 | Ruben S. Montero | |
| 62 | 24 | Borja Sotomayor | ** *Description*: The "Haizea":http://haizea.cs.uchicago.edu/ Lease Manager can be used as a drop-in replacement for OpenNebula's scheduling daemon. Although this allows OpenNebula to support more complex scheduling scenarios, such as advance reservations, some Haizea features have not been integrated with OpenNebula yet, and are only available when running Haizea in simulation. The goal of this project would be to improve the integration between Haizea and OpenNebula. Although the most notable features not yet integrated are VM image deployment scheduling and cold migration, there are several other features the student could work on. |
| 63 | 24 | Borja Sotomayor | ** *Requirements*: Some knowledge of Python is essential. Some familiarity with Haizea is preferred, but not strictly necessary. |
| 64 | 1 | Ruben S. Montero | ** *Mentor*: Borja Sotomayor: borja@cs.uchicago.edu |
| 65 | 1 | Ruben S. Montero | |
| 66 | 20 | Tino Vázquez | |
| 67 | 20 | Tino Vázquez | h3. Implement new scheduling algorithms in Haizea |
| 68 | 20 | Tino Vázquez | |
| 69 | 24 | Borja Sotomayor | ** *Description*: The "Haizea":http://haizea.cs.uchicago.edu/ Lease Manager can be used as a drop-in replacement for OpenNebula's scheduling daemon. Haizea's scheduling code currently supports scheduling VMs for best-effort leases, advance reservation leases, deadline leases, and immediate leases (see the Haizea website for more details on what these leases are). However, there are other types of interesting leases that could be supported in Haizea such as lease futures (where a user wants guaranteed resources at some point in a known time interval, but doesn't know exactly when), etc. The scheduling problem becomes more interesting when even more policy-driven constraints are added (Haizea includes a policy engine). The project goals are open-ended, and it is up to the student to propose specific scheduling algorithms or new types of leases he/she wants to implement and experiment with. This project can be an excellent learning experience for students (specially at a graduate or advanced undergraduate level) who are interested in resource management, VM scheduling, etc. |
| 70 | 16 | Borja Sotomayor | ** *Requirements*: Some knowledge of Python is essential. Some familiarity with Haizea is preferred, but not strictly necessary. Just to be clear: no knowledge of scheduling algorithms is strictly required; this is a project that will allow you to learn about them. |
| 71 | 16 | Borja Sotomayor | ** *Mentor*: Borja Sotomayor: borja@cs.uchicago.edu |
| 72 | 1 | Ruben S. Montero | |
| 73 | 1 | Ruben S. Montero | |
| 74 | 24 | Borja Sotomayor | h3. Appliance Catalog for OpenNebula |
| 75 | 24 | Borja Sotomayor | |
| 76 | 1 | Ruben S. Montero | ** *Description*: Current VM descriptions in [[OpenNebula]] are based in low-level image/device mapping pairs. The ability of choosing a VM based on a set of characteristics will ease the deployment of pre-configured applications. For example, a sysadmin could request a "Linux machine with LAMP". In this project we will developing this tag based VM catalog. |
| 77 | 24 | Borja Sotomayor | ** *Links*: "OpenNebula VM description file":http://www.opennebula.org/doku.php?id=documentation:rel1.4:ug |
| 78 | 24 | Borja Sotomayor | ** *Requirements*: Ruby programming and DataBase. In this project you'll be interfacing with OpenNebula, and you will have the opportunity to learn the basics of virtualization and cloud computing. Difficulty: medium |
| 79 | 30 | Ruben S. Montero | ** *Mentor*: Javier Fontan: jfontan@fdi.ucm.es |
| 80 | 24 | Borja Sotomayor | |
| 81 | 24 | Borja Sotomayor | |
| 82 | 16 | Borja Sotomayor | h3. Haizea Management Console |
| 83 | 16 | Borja Sotomayor | |
| 84 | 16 | Borja Sotomayor | ** *Description*: [Note that this project can be done in collaboration with the "!OpenNebula Management Console" proposed above]. The "Haizea":http://haizea.cs.uchicago.edu/ Lease Manager can be used as a drop-in replacement for OpenNebula's scheduling daemon. However, when querying OpenNebula through its API and CLI, some information is not available to users (particularly information related to leases). The goal of this project is to develop a web-based interface to Haizea, the centerpiece of which should be an AJAX calendar-like interface showing all the leases currently scheduled by Haizea. This interface should also allow users to create new leases, cancel leases, etc. |
| 85 | 1 | Ruben S. Montero | ** *Requirements*: A good knowledge of web programming is essential (the platform to use is left up to the student). Some familiarity with Haizea is preferred, but not strictly necessary. |
| 86 | 1 | Ruben S. Montero | ** *Mentor*: Borja Sotomayor: borja@cs.uchicago.edu |
| 87 | 18 | Borja Sotomayor | |
| 88 | 24 | Borja Sotomayor | h3. Improve fault-tolerance in Haizea+OpenNebula |
| 89 | 1 | Ruben S. Montero | |
| 90 | 24 | Borja Sotomayor | ** *Description*: When using OpenNebula and Haizea together, Haizea does not react to unexpected changes in the physical resources or the VMs. OpenNebula's new hook mechanism should be used to make sure that Haizea is aware of when an unexpected change happens. Additionally, Haizea does not react to delays in the schedule. For example, if Haizea estimates that an operation (such as a suspension) is going to require T seconds, but this operation ends up taking T + 10 seconds, Haizea is unaware of this delay and proceeds with its regularly scheduled operations. At the end of an operation, Haizea should query OpenNebula to see if the operation completed and, if not, it should reevaluate its schedule to accomodate this delay. |
| 91 | 24 | Borja Sotomayor | ** *Requirements*: Some knowledge of Python is essential. Some familiarity with Haizea is preferred, but not strictly necessary. |
| 92 | 24 | Borja Sotomayor | ** *Mentor*: Borja Sotomayor: borja@cs.uchicago.edu |
| 93 | 21 | Jose Luis Vazquez-Poletti | |
| 94 | 26 | Jose Luis Vazquez-Poletti | h3. OpenNebula goes Academic! |
| 95 | 24 | Borja Sotomayor | |
| 96 | 21 | Jose Luis Vazquez-Poletti | ** *Description*: In Computer Science studies there are many practical subjects that demand access to PC's with certain applications installed. These resources are usually limited by means of schedule and occupation, making homework preparation difficult for the students. The objective of this project is to create a frontend over OpenNebula that a student will use for specifying subject to prepare. The system will then provide the user access to a fresh VM, corresponding to the desired subject. |
| 97 | 21 | Jose Luis Vazquez-Poletti | ** *Requirements*: Web programming can be an idea, but the system should provide all possible mechanisms for a "click and use" behavior, so a reasoned proposal for implementation will be considered. In this project you'll be interfacing with OpenNebula, and you will have the opportunity to learn the basics of virtualization and cloud computing. Difficulty: medium-low. |
| 98 | 21 | Jose Luis Vazquez-Poletti | ** *Mentor*: Jose Luis Vazquez-Poletti: jlvazquez@fdi.ucm.es |
| 99 | 21 | Jose Luis Vazquez-Poletti | |
| 100 | 25 | Tino Vázquez | h3. OpenNebula OCCI Implementation update |
| 101 | 25 | Tino Vázquez | |
| 102 | 25 | Tino Vázquez | ** *Description*: The OGF Open Cloud Computing Interface has been implemented in OpenNebula at a very early stage. In fact, the specification wasn't complete at the time of the implementation, so voids had to be filled in order to have a fully working prototype. Nowadays, the OCCI spec has matured, and includes new features (collections, metadata in HTTP headers) and new representations, like XHTML 5. as a reference implementation, it is important to catch up with the specification, so an implementation update of the OCCI interface is a must-have. |
| 103 | 25 | Tino Vázquez | ** *Requirements*: Web programming, XHTML5, HTTP. In this project you'll be interfacing with OpenNebula, and you will have the opportunity to learn the basics of virtualization and cloud computing. Difficulty: medium. |
| 104 | 25 | Tino Vázquez | ** *Mentor*: Constantino Vázquez Blanco: tinova@fdi.ucm.es |
| 105 | 25 | Tino Vázquez | |
| 106 | 25 | Tino Vázquez | h3. OpenNebula Service Management |
| 107 | 25 | Tino Vázquez | |
| 108 | 25 | Tino Vázquez | ** *Description*: Since its conception, an effort was made to keep OpenNebula agnostic to the service being executed within the VMs. Nevertheless, experience has shown that an extension to OpenNebula to handle services as an entity can be extremely useful. This project involves the (guided) creation of a Service Descriptor Language(to describe the service as a collection of VMs with dependencies) and the development of a new command ('oneservice') that will understand such language and handle the service execution. |
| 109 | 25 | Tino Vázquez | ** *Requirements*: Ruby, XMLRPC. In this project you'll be interfacing with OpenNebula XMLRPC API, and you will have the opportunity to learn the basics of virtualization and cloud computing. Difficulty: medium. |
| 110 | 25 | Tino Vázquez | ** *Mentor*: Constantino Vázquez Blanco: tinova@fdi.ucm.es |
| 111 | 25 | Tino Vázquez | |
| 112 | 29 | Ruben S. Montero | h3. Virtual Environment Builder Integration |
| 113 | 1 | Ruben S. Montero | |
| 114 | 29 | Ruben S. Montero | ** *Description*: A VM builder provides the developer with easy to configure, lightweight, reproducible, and portable virtual machines. "Valgrant is one of this tools":http://vagrantup.com/, and it is based on "Sun's Virtual Box":http://www.virtualbox.org/ to create the VMs and chef to configure/install them. This projects aims to extend the provisioning engine by taking advantage of the "OpenNebula Cloud API":http://opennebula.org/doc/oca/. In this way VMs could be provisioning from a cloud and automatically set for a web development. |
| 115 | 29 | Ruben S. Montero | ** *Requirements*: Some knowledge of Ruby is essential. You should be able to understand the basics of Linux administration and networking. Difficulty: medium. |
| 116 | 29 | Ruben S. Montero | ** *Mentor*: Ruben S. Montero: rubensm@dacya.ucm.es |
| 117 | 16 | Borja Sotomayor | |
| 118 | 1 | Ruben S. Montero | |
| 119 | 29 | Ruben S. Montero | h3. Grid Authentication Mechanisms for Cloud Interfaces |
| 120 | 29 | Ruben S. Montero | |
| 121 | 29 | Ruben S. Montero | ** *Description*: OpenNebula Cloud APIs (OCCI and EC2 Query API) use standard web authentication mechanisms, usually based on HTTP basic plus some sort of cryptographic support. In this project we will extend the OpenNebula Cloud interfaces to include support for Grid authentication mechanisms. Grid security is based on x509 certificates and the concept of Virtual Organizations. By integrating this distributed security schemes, this project will allow us to architect federated clouds. |
| 122 | 29 | Ruben S. Montero | ** *Requirements*: Some knowledge of Ruby, Web programming, HTTP and public key security. Difficulty: medium. |
| 123 | 29 | Ruben S. Montero | ** *Mentor*: Ruben S. Montero: rubensm@dacya.ucm.es |
| 124 | 29 | Ruben S. Montero | |
| 125 | 29 | Ruben S. Montero | h2. Blue-sky Ideas |
| 126 | 29 | Ruben S. Montero | |
| 127 | 6 | Ruben S. Montero | These are shorter, more informal, project ideas proposed by mentors. They can be used by students as a starting point to propose a new project: |
| 128 | 24 | Borja Sotomayor | |
| 129 | 16 | Borja Sotomayor | ** Write additional VMM drivers for OpenNebula (KVM, Xen, and VMWare are supported currently, but the OpenNebula architecture can accommodate drivers for lots of other VMMs). |
| 130 | 6 | Ruben S. Montero | |
| 131 | 24 | Borja Sotomayor | |
| 132 | 16 | Borja Sotomayor | h2. OpenNebula Mentors |
| 133 | 16 | Borja Sotomayor | |
| 134 | 18 | Borja Sotomayor | ** Javier Fontan: jfontan@fdi.ucm.es |
| 135 | 24 | Borja Sotomayor | ** Ignacio M. Llorente: llorente@dacya.ucm.es |
| 136 | 24 | Borja Sotomayor | ** Jaime Melis: j.melis@fdi.ucm.es |
| 137 | 18 | Borja Sotomayor | ** Ruben S. Montero: rubensm@dacya.ucm.es |
| 138 | 18 | Borja Sotomayor | ** Borja Sotomayor: borja@cs.uchicago.edu |
| 139 | 21 | Jose Luis Vazquez-Poletti | ** Tino Vazquez: tinova@fdi.ucm.es |
| 140 | 1 | Ruben S. Montero | ** Jose Luis Vazquez-Poletti: jlvazquez@fdi.ucm.es |