Cloud Crawler: A Declarative Performance Evaluation Environment for IaaS Clouds
This project aims at proposing a new declarative environment, called Cloud Crawler, to support cloud users (i.e., application developers) in automatically evaluating the performance of their cloud applications under varying demand levels and using different virtual machine configurations from multiple IaaS cloud providers. The environment includes a domain-specific language, called Crawl, which allows the description, at a high abstraction level, of a variety of performance evaluation scenarios in the cloud; and an extensible execution engine, called Crawler, which automatically configures the resources, executes and collects the results of the evaluation scenarios described in Crawl.
The figure below gives an overview of how Cloud Crawler works:
Initially, the user must deploy the virtual machines images and software component stack (e.g., load balancer, web server, database server, load generator, etc.) necessary to test the target application in one or more IaaS cloud providers. This task is currently not directly supported by the environment, and thus has to be conducted either manually or with help of existing automatic deployment tools. Secondly, the developer describes the application's performance evaluating scenarios using the Crawl declarative language, which are passed on to the Crawler to be executed in the cloud. The engine then configures the resources and executes each scenario sequentially. The engine is also responsible for collecting, storing and consolidating the scenario's evaluation results, which are then returned to the developer in the form of a spreadsheet, as a way to facilitate their subsequent analysis and visualization.
Cloud Crawler is implemented in Java. You can download its latest version from GitHub at this link.
Project Members
Prof. Nabor Mendonça (Coordinator)
Prof. Américo Sampaio (Researcher)
Matheus Cunha (Ph.D. student)
Marcelo Gonçalves (M.Sc. student)
Publications