Code Monkey home page Code Monkey logo

cmp-testbed's Introduction

CMP² - Testbed for recomputable multi-cloud management experiments

This testbed is created as research in education linked to the Cloud Accounting and Billing research initiative at Service Prototyping Lab, Zurich University of Applied Sciences, Switzerland.

Documentation is sparse right now but we will update it soon. At the moment we concentrate on finishing on the research aspects which we submit as paper to a major cloud computing conference.

Workflows

Workflow to extend existing driver

Just add methods which are wrapped by timing and tagging tags (resource consumption is optional).

Workflow to add new driver

In practice, drivers can be located anywhere in Python project, but to keep things in order it is strongly recommended to place them under the corresponding folder like docker_based, docker_compose_based, library_based or website. An evaluation file of a driver should import Decorator class which is aimed to provide decorators for evaluation. Imported decorators should wrap the same as with extension of existing drivers methods which are added. The last step is to add the client to registered clients. It should be added to register.py file into the registered_cilents dictionary. The key name will be the name associated with the client in matrix.yml file and value the client itself.

Steps to extend testbed to make experiments with file uploading

This is an exemplary description which refers to the comparative work we described in our paper:

First of all existing libcloud was extended by new methods: create\delete aws bucket, upload/download/delete file to the bucket which were warped by tagging, timing and python consumption decorators. Second step was to create new driver for patform specific library, in this case boto library was choosen. This dirver was populated by the same methods for file uploading as libcloud. Most effort was done in understanding libraries fuctionalities because of lack of documentation especally for libcloud. Once both drivers contained all needed methods the Boto driver was registered in register.py file.

Finally to run experiments following yml structure was created for each file size:


1240_KB: repetitions: 50 output_dir: /home/lexxito/experiments cmps: [libcloud, boto_aws] providers: [aws] pre_experiment: bucket: - create: - lexx post_experiment: bucket: - delete actions: file: - upload: - /home/ubuntu/test/files/1240_KB - download: - /home/ubuntu/test/ - delete


This structre suppose to repeat experiment for 1240 KB file 50 times. Before experimentcreated a bucket with a name lexx, and deleted after all experiments are done. In the deletion it is not neccesary to specify what bucket to delete, while since it is not specified it uses the last one which was actioned. In the experiment itself the file was uploaded, downloaded and deleted. All data for these actions was saved into experiments folder. Generating simple graphs and latex tables requiered no changes. The code for generating graphs was slighly changed to achieve the same boxplot order and structure as it done in evalutions muli-cloud api work.

Overall the work took 5 hours where the most time was spent in investigation of library finctionality.

Comparing results from previouse work and our results we can conclude that results lead to the same conclusions:

  • The performance of multi-cloud differs significantly from platform-specific API
  • Libcloud outperformed platform-specific APIs in most tests.

Because of different locations response time for uploading and downloading differs. While In both graphs we can see the same trends for boxplots with growing size of files the dowload time growth linery, also in all experiments in both grapghs libcloud has bigger response time.

Data

Experiments_data contains a raw data, where is a name of the folder corresponds to the name of the experiment and each file the combination of provider and action. Each row of the file contains information for every experiment. Each result has the following structure :

{"provider:item:action": {"consumption": {"start": {memory:{}, cpu{}}, "end": {memory:{}, cpu{}}, "time": 1111}}

cmp-testbed's People

Contributors

ecepanos avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.