Cross-compilation and cross-virtualisation, cross-cloud with Eucalyptus
Debian is proud of its achievement to provide mostly functionally identical compute environments for all the most common platforms. And that should also be available for virtual machines, i.e. one can emulate an ARM processor on an Intel machine and start an ARM-image on it. Project will provide an common base for cross-platform development, identifying and fixing existing problems and also integrating Cloud environments such Eucalyptus.
Benefits to Debian:
This project intends to improve and increase the resources for current porters and downstream developers, thus enabling them to do their work more efficiently. Also, having a revamped cross-building and cross-virtualization framework will allow Debian to embrace more quickly any new architecture and support it.
The project's main goal is to enable developers to leverage existing cloud-based IaaS to be used as environment for arch-specific development by providing a set of tools they can use to setup and run an extended platform for their development and testing tasks.
In the first part of the project we will identify most common processes for cross-platform development. The purpose is to have a clear understanding of the needs, missing bits and things that need to be fixed for cross-platform development. Very related to this task is working on the identified problems together with the involved teams or people. This part will output the necessary underlying technical reference and framework for porters and developers.
The second part is effectively working on three of the upfront issues that has been identified that need to be addressed. Based on the previous task and integrating the work done on previous GSoC's, I'll work on updating the cross-virtualization support for ARM. Currently it's support in Debian has been improved with the work done by Aurelien J., however the goal will be integrate this work on the official images. Finally, I'll work on supporting Eucalyptus, and if time allows, OpenStack, for allowing cloud-based infrastructure to be used for cross-building. The idea is to leverage the computing power that this IaaS can deliver in order to have faster and more efficient cross-development process.
Eventually, I'll write technical reference and documentation as part of the software development process. This part is revelevant, so the *special* note, since the intention is that developers and future contributors to the project will have a guide.
There are 3 main deliverables I believe can be done during the project's timeframe.
- Cross-virtualization preparation: Based on issues that are still present, elaborate a route plan for fixing existing problems and working on missing bits.
- Update the ARM-based virtualization support for qemu images (including kernel bits) Benchmark for cross-building on virtualized architectures: test building time for kernel, KDE packages.
- Set of tools to enable development using cross-virtualization and cloud-based (IaaS)
- Develop a set of tools to enable the setup and management of a private could-based environment for Debian development. Package and upload Eucalyptus 2.x / update existing packages from upstream. Benchmark cross building using cloud-based IaaS. test building time for kernel.
- Technical reference: to be written as a guide for developers and project contributors. We would welcome others to contribute on this.
The "big picture" schedule is:
April 30 - May 14: Phase 1
- One week for getting information and documentation ready to address existing issues. One week for fixing existing issues and benchmark current build-time.
May 15 - July 10: Phase 2
- 6 weeks for the development of the set of tools to enable cloud-based platform for cross-building. 2 weeks for enabling Eucalyptus support.
July 11 - August 10: Fixing bits.
Phase 3 can start at the middle of Phase 2, around June 15, and end at final phase, around July 20.
Besides that I plan to do weekly updates on my blog and also prepare reports together with my mentors for the interested community.
Other summer plans:
Besides semester exams (mid-term and final) which are from may 9, to may 14 and from july 4 to july 9, I only plan to take a short trip during my vacations in july. It should be during my country's national holidays (end of july).
As a Debian developer I think I have the opportunity to advance in projects that are more on the "innovation/edge" side that on the "keeping things working and running" one. I feel more attracted to the former. That's also the reason why I choose this faculty, because it's research-oriented program. So, to me this opportunity is a good way to commit to allocate time and resources to such work, which will be normally have to be traded-off between other commitments and responsibilities.