DOC: Architecture Layers - ibmcb/cbtool GitHub Wiki
CBTOOL is organized as an extensible framework. In order to make it flexible and extensible, each cloud infrastructure management platform (cloud manager, or simply "cloud") and application (workload or benchmark) has a self-contained adapter. The framework is responsible for providing basic common services, such as distributed state management, structured data sharing and message passing.
A new "cloud adapter" can be implemented in a single file with approximately 600 lines of python code, allowing cloud specialists to also extend CloudBench incrementally. No changes to the main source code are needed.
A new Virtual Application type is typically implemented in approximately 150 lines of shell script code: the only function of the scripts is to tell CloudBench how to setup and start (e.g., run a binary) the VApp’s components. No changes in core code are required.
This "layered" architecture is shown here: