EucalyptusFitOnCdSpec

Differences between revisions 2 and 3
Revision 2 as of 2009-06-09 11:35:14
Size: 4863
Editor: lns-bzn-48f-81-56-218-246
Comment: Reduce scope of spec to server-team-only things
Revision 3 as of 2009-06-09 11:48:10
Size: 5118
Editor: lns-bzn-48f-81-56-218-246
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Launchpad Entry''': UbuntuSpec:server-karmic-eucalyptus-on-cd  * '''Launchpad Entry''': UbuntuSpec:server-karmic-eucalyptus-fit-on-cd
Line 11: Line 11:
Ubuntu Enterprise Cloud, powered by Eucalyptus, should be an install option on the Ubuntu Server edition CD. Therefore all Eucalyptus runtime dependencies must fit on the CD. Ubuntu Enterprise Cloud, powered by Eucalyptus, should be an install option on the Ubuntu Server edition CD. Therefore Eucalyptus runtime dependencies must be controlled so that they can fit on the CD.
Line 19: Line 19:
Ubuntu Server should provide a simple, out-of-the-box Cloud experience. Providing a cloud option on the Server CD gives visibility of that technology to all current Ubuntu Server users and lowers the barrier of entry to try out those technologies. Ubuntu Server should provide a simple, out-of-the-box Cloud experience. Providing a cloud option on the Server CD gives visibility of that technology to all current Ubuntu Server users and lowers the barrier of entry to try out those technologies. Having Eucalyptus dependencies fit on the CD is a prerequisite. Currently the CD has ~100-120 Mb free space and Eucalyptus adds around 155 Mb of binary packages.
Line 29: Line 29:
Foundations team should modify the Server CD installer in order to provide that "Cloud" install option.
Line 31: Line 33:
=== Fit on the CD === The Jaunty server CD had about 100-120 Mb free. However installing the Eucalyptus packages pulls 155 Mb of runtime dependencies so drastic actions need to be taken if we want to be able to fit.
Line 33: Line 35:
The Jaunty server CD had about 120 Mb free. However installing the Eucalyptus packages pulls 155 Mb of runtime dependencies so drastic actions need to be taken if we want to be able to fit.

==== Use ECJ compiler rather than a full JDK (56 Mb) ====
=== Use ECJ compiler rather than a full JDK (- 56 Mb) ===
Line 41: Line 41:
==== Get rid of GCJ stuff (23 Mb) ==== === Get rid of GCJ stuff (- 23 Mb) ===
Line 45: Line 45:
==== Fix -jre-headless in Karmic ==== === Fix -jre-headless in Karmic (avoid + 43 Mb) ===
Line 47: Line 47:
With current versions in karmic installing openjdk-6-jre-headless basically pulls openjdk-6-jre (and all its X dependencies), thanks to a Depends: openjdk-6-jre in libaccess-bridge-java. This needs to be fixed, opened discussion about that in bug 384739. With current versions in karmic installing openjdk-6-jre-headless basically pulls openjdk-6-jre (and all its X dependencies, for a total of 43 Mb extra), thanks to a Depends: openjdk-6-jre in libaccess-bridge-java. This needs to be fixed, opened discussion about that in bug 384739.
Line 49: Line 49:
==== Fix Java libraries runtime dependencies on full JREs ==== === Fix Java libraries runtime dependencies on full JREs (avoid + 43 Mb) ===
Line 53: Line 53:
==== Other size reduction options ==== === Other size reduction options ===
Line 58: Line 58:

=== The Cloud install option ===

To be discussed with Foundations team.

Summary

Ubuntu Enterprise Cloud, powered by Eucalyptus, should be an install option on the Ubuntu Server edition CD. Therefore Eucalyptus runtime dependencies must be controlled so that they can fit on the CD.

Release Note

The Ubuntu Server 9.10 proposes direct installation of the Ubuntu Enterprise Cloud, powered by Eucalyptus, from the CD.

Rationale

Ubuntu Server should provide a simple, out-of-the-box Cloud experience. Providing a cloud option on the Server CD gives visibility of that technology to all current Ubuntu Server users and lowers the barrier of entry to try out those technologies. Having Eucalyptus dependencies fit on the CD is a prerequisite. Currently the CD has ~100-120 Mb free space and Eucalyptus adds around 155 Mb of binary packages.

User stories

  • Anatoli wants to deploy Ubuntu Enterprise Cloud in his datacenter. He can conveniently use the original 9.10 Ubuntu Server CD to do so.
  • Betty is a seasoned Ubuntu Server user but never really bought into the Cloud things. When popping in the 9.10 Server CD, she notices the Cloud option and decides to give it a try.

Assumptions

Foundations team should modify the Server CD installer in order to provide that "Cloud" install option.

Design

The Jaunty server CD had about 100-120 Mb free. However installing the Eucalyptus packages pulls 155 Mb of runtime dependencies so drastic actions need to be taken if we want to be able to fit.

Use ECJ compiler rather than a full JDK (- 56 Mb)

Eucalyptus currently depends on a full JDK to do runtime compilation of Java classes. This pulls the full JDK dependencies (including lots of X libraries), for a total of 56 Mb. The runtime compilation could be performed by the Eclipse compiler (ECJ JDT), like in Tomcat 6, which runs over a headless JRE and is already present on the server CD.

This needs to be checked on the Eucalyptus side for compatibility.

Get rid of GCJ stuff (- 23 Mb)

Some Java library packages recommend the -gcj native counterpart, in order to provide decent performance on architectures without a JIT. GCJ is currently present on the CD, for a total of 20 Mb that would get freed if we could make sure those libraries aren't recommended on i386/amd64. Getting rid of those dependencies would also prevent the -gcj libraries from getting installed, reducing by another 3 Mb the total needing to be installed.

Fix -jre-headless in Karmic (avoid + 43 Mb)

With current versions in karmic installing openjdk-6-jre-headless basically pulls openjdk-6-jre (and all its X dependencies, for a total of 43 Mb extra), thanks to a Depends: openjdk-6-jre in libaccess-bridge-java. This needs to be fixed, opened discussion about that in bug 384739.

Fix Java libraries runtime dependencies on full JREs (avoid + 43 Mb)

Several libraries still runtime depend on non-headless virtual packages (java1-runtime, java2-runtime...), resulting in pulling a full JRE when a headless one is sufficient.

Other size reduction options

  • GWT is currently 6MB of binary
    • 1.6 should be more granular and work with existing java packages more
  • libjgroups-java, 3MB, and glassfish-toplink-essentials, 2.4MB, come from current hibernate packaging which is under discussion as part of EucalyptusInMainSpec.

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion

UDS Discussion

This was discussed as part of the session on Eucalyptus move to main (see EucalyptusInMainSpec). Here is the relevant part of the notes taken during that session:

Size issues (adding to default CD)

  • GWT is 6MB of binary
    • 1.6 should be more granular and work with existing java packages more
  • JRuby is 3MB
    • Just be a build-time dependency of GWT
  • libjgroups-java, 3MB. Not needed ?
  • glassfish-toplink-essentials, 2.4MB, comes from hibernate
  • Avoiding JDK would save about 50MB of CD space
  • Avoiding GCJ would save about 20MB


CategorySpec

EucalyptusFitOnCdSpec (last edited 2009-08-17 08:58:54 by lns-bzn-48f-81-56-218-246)