Name Shashank Sahni
I'm currently pursuing my MS in IIIT Hyderabad, India. My work has primarily been focused on Virtualization technologies for last two semesters and am currently working on VM Migration as part of my Thesis research.
I participated in GSoC 2011 for Scilab and successfully completed the project.
I'm interested in this project because
- I've been working extensively on Openstack for the past 6-8 months as part of setting up a private cloud in my research lab. I've been involved in the project from the beginning and am currently the administrator.
- I plan to opt for System Administration/DevOps as a career, hence this project will allow me to interact with different system administrators from all over the world, providing valuable experience.
- I've dealt with various deployment scenarios of Openstack - single node, dual, multiple(production class) deployment. As a result, I understand the need of automating/easing certain deployment cases.
I've been a tech-writer and co-founder of the website http://linuxers.org where I wrote various HowTos and articles on Linux and System administration. This along with my experience with openstack will allow me to easily and correctly document various use cases.
Project title Package an Openstack usecase
Currently, Openstack deployment on Debian requires installing the packages available in the repository, configuring each component(manually) to peacefully coordinate with others.
This is a very slow approach, even if one is trying to setup a simple proof-of-concept server. My task is to improve and optimize this process. At the end of the project, during the installation of openstack, the user will be able to choose from a set of use cases(deployment scenarios) and in the subsequent steps will be asked for respective configuration options required for the deployment. Hence, the installation of a package will be equivalent to deployment of a specific use case.
Here is how I'm planning to proceed:
As soon as a user enters the command to install the openstack(nova) package he'll be prompted to select one of the following options.
- single node - This means all the components will be installed on the local server. Once the user selects this, in the subsequent steps he'll be asked to provide the internal network IP, device for volume node etc.
- dual node - Here, we assume that except nova-compute all the components are on one machine. The subsequent steps will be - install controller or add compute node. If controller then simply provide the basic option(refer the single node case) and if compute node then provide the controller IP.
- multi node - Here the user is simply asked to mention which component he wishes to install - controller, network, volume or compute. And further he's asked to provide options specific to each component. This scenario is well suited for production class deployments. This approach is similar to the one provided by Ubuntu as part of UEC(when they're using Eucalyptus).
This isn't a completely new approach. Postfix/sendmail installation is similar. Debconf asks for the type of installation you want and then asks various options specific to the selected use-case.
These scenarios are motivated from the work of http://stackops.org folks who provide a web based installation method for deploying an openstack cloud. The three scenarios will be useful for all range of expertise - beginner => guru and will indeed fasten & simplify the whole process.
Currently, admins have to manually edit configuration files of each openstack component to setup a cloud. This project will try to simplify the process by packaging various use cases of openstack which will ensure that the deploying cloud becomes as simple as installing a package(at least for a single server setup ;)).
Benefits to Debian
Debian is widely used as a server class operating system and with the advent of cloud computing its essential for Debian to provide administrative tools which ease and simplify the deployment of cloud infrastructure. A debconf script may not be the best solution but is certainly a good start. With this project, Sysadmins/DevOps will be quickly able to deploy Openstack clouds making Debian a viable platform for setting up production class Clouds.
- Detailed documentation of various deployment use-cases.
- Set of debian packages implementing simplified deployment of Openstack.
24th April - 14th May(2-3 weeks) - Learn about Debian packaging - debconf capabilities and check out the packaging of existing python packages in the repo to get a better understanding.
15th May - 7th June(3 weeks) - Set up a small experimental env. for testing out various use cases and prepare rough drafts of the use-cases. Get constant feedback from the admins about the design and services to be included - openstack-dashboard, swift etc.
8th June - 21st June(2 weeks) - Implement at least one use case. I'm new to packaging so I believe two weeks should be enough to tinker around and produce a working package.
22nd June - 14th July(2-3 weeks) - Implement the rest of them.
Mid Term Evaluation By the time of mid term evaluation, I plan to complete the packaging of all use cases(a little buggy may be).
15th July - 31st July(2 weeks) - I'd like to host a public package repository so that users can try the packages and provide valuable feedback and bug reports
1st Aug - Pen Down - Fix bugs, refine the documentation and try to upload the package in the stable branch.
Exams and other commitments I'll have system administration responsibilities, but no academic obligations during summer compensate for it.
Other summer plans: A couple of vacations at most(3-4 days each). Nothing planned currently.
I've been a Debian for the past one year. I got to know about Debian through Ubuntu which I've been using for quite some time and then came across the book Debian System by Martin F. Krafft. That's how I came to know about Debian, the policies behind it and its value. I still use Ubuntu on my personal computer but prefer Debian for most of the server deployments. For this project, its not Debian as much as Openstack which interests me. I've been using and depending on these project for a long time and want to make some valuable contribution to both. Additionally, I've been meaning to learn Debian packaging for a while. I started off with Ubuntu last year but couldn't continue due to academic obligations. This project provides a good opportunity to gain such skills.
Are you applying for other projects in SoC? No