Infrastructure private cloud

= Background =

Fedora Infrastructure is looking to setup a private eucalyptus cloud instance in 2012. This cloud instance will be used in a number of ways to benefit Fedora. We evaluated a number of cloud technologies and decided (at least for now) on eucalyptus as the best fit for our needs.

= Why Eucalyptus =


 * Open Source


 * Active Community


 * Deployable now


 * Instances can be VLAN private so they cannot interfere with each other.

= Use cases =


 * Fedora QA may use instances with it's AutoQA setup. Instances would be created, tests run and destroyed. It's unknown how many instances we would need here.


 * Infrastructure Development hosts may be moved to this cloud. These instances could possibly be 'on demand' when development needs to take place. Currently we have about 8 development instances.


 * Infrastructure Staging hosted may be moved to this cloud. Some of these may be 'always on' and some may be on demand. Currently we have about 13 of these instances.


 * Chainbuilding / Kopers may use this cloud to build chains of packages that are not yet in Fedora and thus cannot be build via scratch builds in the existing buildsystem. These may also be used for spinning test live or install images by QA. This may be open to Fedora contributors or restricted to a subset such as packagers.


 * Test instances may be used for testing new tech or applications as a proof of concept before persuing a RFR. We currently have several publictest instances.


 * We may want to move some of our one-off instances that are outside phx2 into the cloud for easier management. Things like keyservers, unbound instances, listservers or hosted resources.


 * Mass rebuilds of Fedora packages. This could be done for testing a new global rpm/package change, or to discover FTBFS (Fails to build from source) packages. This would use as many builders as we could easily spin up to reduce time for building all 10,000+ Fedora packages. Could use the chainbuilding setup as above as a scaffolding. Additionally, extra builder instances could be potentially used by the official build system during mass rebuilds to reduce rebuild time.

For initial deployment, we would need to be able to run ~30 or so instances at a time with ability to grow rapidly above that for qa and building needs.

= Dependencies =


 * Need a way to easily provision new instances with limited admin intervention. Looking at ansible for this task.


 * Would like to be able to create images via kickstart and normal install/deployment methods if needed.


 * Hardware needs to be ordered and installed.


 * Public IP addresses need to be made available.


 * Would be nice to get full EPEL packages to deploy with.

= Setup / deployment =

We are looking at a set of blades in a bladecenter as an initial hardware. This will allow us to expand and has high density. This hardware will be on the 'edge' of the network and not connected to the rest of Fedora Infrastructure except via external networks. This will allow us to us external ip's and make sure the cloud instance doesn't have access to anything in the regular Fedora Infrastructure. Storage will be on the local blades for caching with additional netapp space for images and data.

= Implementation overview / timelines =

2012-04 - Hardware is being determined and finalized.

2012-05 - Initial hardware setup and install

2012-06 - Initial use cases setup and tested

2012-07 - Announce availability and collect more use cases.

2012-08 - Evaluate load and expansion needs.