BonFIRE logo and link to main BonFIRE site

Table Of Contents

Previous topic

Accessing BonFIRE for Fed4FIRE users

Next topic

Using the BonFIRE Testbeds

This Page

Introduction

We consider an experiment in BonFIRE to be more than just the deployment and execution of Cloud resources (compute, storage and network). We see the lifecyle as 8 phases, starting with the design of the experiment and ending in publication of results. The complete lifecycle is described in more detail below in The BonFIRE Experiment Lifecycle.

To get started with the notion of running an experiment in BonFIRE, see A General Workflow For Conducting An Experiment below. Running an experiment in BonFIRE is very straight-forward, even if it is federated across multiple testbeds. BonFIRE provides single sign-on using SSH to any VMs on the different testbeds, and the deployment of resources via the OCCI-based API is largely identical for all testbeds. There are some differences in the capabilities that the different testbeds offer and policies for accessing them, which you can read more about on the Using the BonFIRE Testbeds page.

When you get accepted to use BonFIRE, you will have a quota on the usage of the resources, and the access to different resources on different testbeds may be constrained due to finite resources available in the project. To find out more about this and how to view your usage, please see the Quota and Usage page.

For more technical details about how to create an experiment in BonFIRE, see the Creating Experiments and Tutorials pages.

The BonFIRE Experiment Lifecycle

In BonFIRE, we consider experiments as being comprised of eight phases, which are shown in Figure 1.

../_images/experiment-lifecycle.jpg

Figure 1: The BonFIRE Experiment lifecycle

Phase 1: Design

In the first phase, the experiment is defined and designed with an analysis of which BonFIRE resources will be required.

Phase 2: Request

Within this phase, the experimenters interact with BonFIRE by submitting the experiment design together with an application for resources. In this part of the lifecycle, the BonFIRE service will take over the task of analyzing the needs of the experiment and planning the scheduling of the experiment on the BonFIRE testbeds. This may also include a reservation of resources either on the testbed side or by the BonFIRE service (see Figure 2).

Phase 3: Implementation

Here, the experiment is implemented and all the necessary actions are taken to allow later deployment within the BonFIRE system.

../_images/experiment-lifecycle-impl.jpg

Figure 2: The Experiment lifecycle and dependencies to BonFIRE and the Testbed Provider

Phase 4: Deployment

In this phase, the experiment is deployed in BonFIRE. This implies that in response to the request, the testbeds and/or BonFIRE Provider have provided all necessary resources to execute the experiment.

Phase 5: Experimentation

This covers the execution of the experiment.

Phase 6: Assessment

After an experiment has run, it can be assessed on basis of its results. At this point, the experiment lifecycle foresees a loop to allow for fine-tuning of the experiment and another run (including the request of resources of BonFIRE, etc).

Phase 7: Termination/Wrap-Up

The termination of an experiment can occur in two different situations:

  1. “natural” termination. This is the case when the experiment has been performed as planned, all the results are available and the experimenters are ready for a wrap-up.
  2. “forced” termination. This happens when the BonFIRE service or the testbed terminates the experiment before the experiment is fully executed. A forced termination may occur if a termination condition is reached such as over-consumption of the requested resources or misbehaviour of the experimenters

In both cases, decommissioning needs to take place either by the BonFIRE service or by the testbed, in order to release the assigned resources. Experiment results may be transferred to persistent storage.

Please note that shutting down, powering off or rebooting a compute resource from its command-line will result in an unusable compute resource that cannot be managed from the BonFIRE services. This will also prevent it from being saved as a new image and any data on attached datablocks may not be saved. Additionally, such compute resources will continue to consume your quota and the only way to stop this is by contacting BonFIRE support to manually clean the resources from your group quota.

Phase 8: Publication

In the final phase of an experiment, the results are published.

A General Workflow For Conducting An Experiment

This section considers the general steps to conduct a basic experiment, but does not go into details of setting up things like network emulation on the Virtual Wall. The following steps is merely a guide to help clarify the process you need to go through to perform typical actions in an experiment in BonFIRE.

  1. Register with BonFIRE and set up SSH

  2. Connect to BonFIRE

  3. Set-up and create VM images for an experiment

    • Create an experiment container
    • Select instance type
    • Deploy base image (from each testbed that is used)
    • Install and configure software (and set up monitoring agents) (via SSH)
    • Save image
    • Terminate VM
  4. Execute experiment

    • If monitoring is used, need to deploy Aggregator first to get its IP address (used for contextualisation)

    • Set up and deploy any storage resources needed

    • Set up and deploy any network resources needed (e.g., network emulation at the Virtual Wall)

    • Set up and deploy compute resources
      1. Set context
      2. Set instance type
      3. Set VM image
    • Configure/ start/stop services, etc (via SSH)

    • Change experiment conditions during run-time, such as adjusting network parameters, increasing load on VMs, etc

  5. Terminate / wrap up experiment

    • Get/download the data (output data from VMs and monitoring data from Zabbix Aggregator)
    • Terminate VMs