Skip to content
ibmcb edited this page Jan 29, 2013 · 16 revisions

Cloud Rapid Experimentation and Analysis Tool (a.k.a. CBTOOL) is a framework that automates IaaS cloud benchmarking through the running of controlled experiments.

An Experiment is executed by the deployment and running of a set of Virtual Applications (VApps). Experiments can be executed interactively, having the user typing commands directly on a CLI, or in batch, by having a series of commands in text format in an experiment file read by the tool.

Simplified Overview

A Virtual Application (VApp, but also called Application Instances or AIs inside the tool) represents a group of VMs, with different roles, logically connected to execute different application types. For instance, a DayTrader VApp is composed by one VM with the role load driver, one VM with the role application server (either Tomcat or WAS) and one VM with the role database (either DB2 or MySQL). On other hand a Hadoop VApp is composed by one VM with the role master and N VMs with the role slave. To see a list of available VM roles, use the command rolelist on the CLI. To see a list of VApp types use the command typelist. To see a description of a particular VApp, use the command typeshow (vapp type)

Each VApp has its own load behavior, with independent load profile, load level and load duration. The values for load level and load duration can be set as random distributions (exponential, uniform, gamma, normal), fixed numbers or monotonically increasing/decreasing sequences. The load level, has a meaning that is specific to each VApp type. For instance, for a DayTrader Vapp, it represents the number of simultaneous clients on the load generator, while for Hadoop it represents the size of dataset to be sorted.

VApps can be deployed explicitly by the experimenter (using either the CLI or GUI) or implicitly through one or more VApp Submitter. A VApp Submitter deploys Vapps with a given pattern, represented by a certain inter-arrival time and a lifetime (also fixed, distributions or sequences). To see a list of available patterns, use the command patternlist on the CLI. To see a description of a particular pattern, use the command patternshow (vapp submitter pattern).

The tool was written in Python (about 20K lines of code), and has only open-source dependencies (mainly, Redis, MongoDB and Ganglia).

Clone this wiki locally