BonFIRE: Giving software people their testbed
Posted: 24 Apr 2013 | 10:31
Every morning as I walk to my office I pass a closed door that intrigues me. A sign on the door reads "Fluid Dynamics, Wave, wind and current flume, Towing tank." To a software guy this induces awe. Clearly some serious science is taking place behind that door and the need for emergency contact details at the bottom of the sign serves to confirm this. Behind that door lies an experimentation testbed and to my mind experimentation testbeds are cool. Why? Two words: observation and control. Testbeds enable the collection of data that support the observation of what happened during an experiment. That's great but even better is the control part. Testbeds support controlling conditions that normally cannot be controlled. How does this tyre perform in the rain? Let's switch the rain on and see!
So testbeds are cool but, annoyingly, they are often the preserve of physicists, chemists, network engineers and the like. Nice people, I'm sure, but not software guys like me! BonFIRE changes this. It is a testbed for software people, especially cloud, services and distributed software people. BonFIRE gives experimenters access to five clouds located in France, Germany, Poland, and two in the UK. Experimenters can create virtual machines and storage resources on these clouds and are able to run a variety of experiments looking at cloud and distributed applications. Example experiments include: the use of multiple virtual clusters for the execution of a radiotherapy dose calculation that is robust to the failure of a single cluster; the scalability of a cloud-based plagiarism detection facility; and the performance prediction of cloud applications using a set of benchmarks.
So far so good, but BonFIRE is an experimentation testbed so offers observation and control functionality beyond what is normally offered by IaaS clouds. When one creates a virtual machine on a cloud the performance of that machine will be influenced by the unpredictable behaviour of the other virtual machines running on the same physical machine. This can cause problems when running experiments - was an observed change in behaviour due to the change I made to the system to or due to actions of other people's virtual machines? BonFIRE allows experimenters to observe (and log) a variety of metrics related to the physical machine such as CPU and memory usage. This ability to observe the physical machine allows experimenters to understand when external conditions have influenced their system.
Observation is good but sometimes control is even better. BonFIRE allows you to control the placement of virtual machines onto physical machines and can also give you exclusive access to physical machines. Couple this functionality with BonFIRE controlled contention support and you can subject your virtual machine to your chosen contention pattern and see how your application performs. This functionality can be useful to both research experimenters and also to cloud software developers wishing to stress their application or create the set of conditions that flush out that annoying intermittent race condition bug in the code.
So much for controlling the virtual machine, but don't the network conditions play a big part in distributed applications and services? Yes they do, but we can control them as well. BonFIRE includes an additional facility in Belgium that provides a fully emulated network environment, where various network topologies can be defined and link capacities and impairments (packet loss rate, delay, background traffic) can be adapted on-the-fly. Compute resources can be created on this facility and the experimenter has full control of the network properties between these compute resources. At what bandwidth does your distributed system start to fail? You can use this testbed to find out. If all of that is not enough for you BonFIRE also supports GÉANT's bandwidth on demand service that can be used to create dedicated bandwidth links between BonFIRE cloud facility here at EPCC and the cloud at PSNC, in Poland.
So that's a quick overview of BonFIRE. For a distributed software guy this is my towing tank, my wind tunnel, my large hadron collider! And best of all it is now free to use. Just let us know what you would like to do on BonFIRE and we'll do our best to allocate you some time.
BonFIRE project website: http://www.bonfire-project.eu/
Sign up to use BonFIRE at: http://www.bonfire-project.eu/involved