Name
- Aron Xu
Contact/Email:
Email: happyaron.xu@gmail.com
- IRC: happyaron @OFTC/@Freenode
- TZ: Asia/Shanhai (GMT +8)
Background:
Who are you?
- I'm a senior high school student from High School Attached to Northeast Normal University, and is going to set off for my college life very soon.
Technical skills
- Operating system: GNU/Linux (Debian, Ubuntu, CentOS), Windows.
- Programming: Shell, C, Python.
Experience
- Taking a very active part in Debian's IME Packaging Team, maintaining packages for CJK users, mostly input methods.
- Co-founder of Debian Network Simulator Team, which is working on providing an enterprise class deployment solution of the de facto (open source) network simulator applications (ns2, and its successor, ns3).
- Porter and maintainer of netcat-openbsd in Debian.
- Work experience in university network operation center, maintaining DNS infrastructure, co-maintaining cluster server infrastructure.
What makes you the best person to work on this project?
- I'm confident in my ability of completing the given task, and the time to be invested is affordable.
- I've already working on Debian stuff for nearly two releases, and I know about how to properly deal with common problems in maintaining complex package set.
- I have experience working on real stuff of networking, cluster and virtualization (especially vmware and kvm).
Project title
Package an OpenStack use case
Project details:
OpenStack is expected to be the leading open source cloud computing software by a larger community, which is definitely a target of Debian to provide a common solution for its users and developers. Building a series of use cases is a critical task for cloud computing deployments after having all the bare packages in hand. It's a great opportunity to shape the future of cloud computing, as Debian, the universal operating system, can play a leading role in the future of cloud.
As the project is for Debian, an OS vendor, I'd like to package an use case which focused on polishing our packages and ease the deployment of cloud infrastructure (both smaller and larger ones) during this GSoC project's development, rather than focusing on simply working out a quick-and-maybe-complex use case because users who have higher demands always need to make a plan specifically for them to meet their special needs.
Synopsis:
The basic idea here is maintaining VM and resources in relation to it (CPU time, network, storage, etc). Users need to be able to activate new VMs and optionally load balance between them when certain term has been triggered (manual operation, per node's loading, API, etc), so that a service can take the advantage of the robust scalability provided by cloud infrastructure.
In conclusion, the use case itself can be described as Deploying OpenStack on two or three physical hosts, and configure them to work together to easily provide manageable VMs on administrator's demand.
Benefits to Debian
- Provide a common example use case for users, the example is not very complicated so that other people can easily build their own instance based on it.
- Improve related packages so that they are tested and polished (maybe better designed in some aspects) with real use case, and generally improve the packaging quality. Manual interaction should be minimized when someone wants to configure an installation on single or multiple hosts.
- Possibly make the deployment process be even friendlier to tools like Puppet, which manages configurations for large deployments at a central place.
Deliverables:
- Provide an example use case so that a user can deploy and use a cloud infrastructure within hours. Components needed:
- A set of documentation. This includes a general document to illustrate the steps a user need to complete, and a series of manuals or tips for different situations. The general document is obviously required, and other ones should be dealt when needed during the project by a case by case manner.
- A mechanism on packaging Openstack use cases. This include a new design of managing example use cases using meta/seed packages, and of course the use case implemented during this project will have one.
Debian's OpenStack packages get polished and can be deployed more easily, and clear out the way of enabling other mass deployment strategies.
- Provide an example use case so that a user can deploy and use a cloud infrastructure within hours. Components needed:
Project schedule:
- April 23, 2012 - May 06, 2012 (2 weeks):
- Learn about cloud computing and Openstack basics.
- May 07, 2012 - May 21, 2012 (2 weeks):
- Learn about existing packaging efforts, set up a small experimental environment.
- May 22, 2012 - June 10, 2012 (3 weeks):
- Need to prepare and finish important school exams, thus I don't schedule too much work in this period, but just be flexible to work on coming items when time permit.
- June 11, 2012 - June 24, 2012 (2 weeks):
- A rather complete design of prototype should be finished here. The most important thing during this time is to experiment different approaches and figure out a best design, but not emphasis on implementing a (maybe very very buggy) example. During the time I need to query mentors for their input on important design decisions. This item is the 1st milestone.
- June 25, 2012 - July 08, 2012 (3 weeks):
- Implement and experiment the design in real world, the small case would be for two computers, and scale up to real cluster environment (thanks the NOC I'm working at to support my work). During the time we are not aiming at get the actual easy-to-use stuff ready, but complete/solve the technical issues behind. Also we are able to measure how much the use case can scale. During the time I need to work with mentors to resolve most outstanding problems. This item is the 2nd milestone.
- July 09, 2012 - July 15, 2012 (1 week):
- Finish mid-term evaluation. During the preparation of mid-term evaluation, sort out the track of previous work, so we can be very clear on actually implementing things intend to be provided to users.
- July 16, 2012 - July 29, 2012 (2 weeks):
- Do everything necessary on the technical side to work out the implementation of the use case and use case packaging mechanism. Start to unscramble previously written materials into formal documentation.
- July 30, 2012 - August 05, 2012 (1 week):
- Finish the implementation of the project goal, complete documentations. Start to improve details of everything, including finding and fixing bugs, improve documentations (like mistakes, wording problems, etc). This item is the 3rd milestone.
- August 06, 2012 - August 24, 2012 (3 weeks +):
- Previous items like fixing bugs still continue. Prepare final evaluation, and prepare the summary of the project, which I believe is valuable to publish to everyone.
- April 23, 2012 - May 06, 2012 (2 weeks):
Exams and other commitments:
- I have an important exam in June, which cost me quite a lot of time to work on it before the exam finish. After the exam it comes to my summer vacation and I'm writing here to plan to code through the time.
Other summer plans:
- I do need to work a part-time job for the NOC mentioned above, but I don't see any conflicts because it's supporting me to participate the project, so as they might benefit to use the result in production in near future.
Why Debian?:
- I've already worked in this community for some time, though this time I'm exploring a brand new field to me. Debian project is an outstanding one that I'm proud to be a part of it, because it consist of very different people, who are behaving in nice way that everyone work together to make a common dream come true. We are not just making an "universal operating system", but also making a community where people can participate with joys and happiness.
Are you applying for other projects in SoC?
- No.