Skip to content

ufcg-lsd/asperathos-controller

 
 

Repository files navigation

Asperathos - Controller

License

Overview

The Controller is responsible for adjusting the amount of resources allocated to the virtual infrastructure where the applications run, in order to guarantee application’s QoS.

Asperathos was developed by the LSD-UFCG (Distributed Systems Laboratory at Federal University of Campina Grande) as one of the existing tools in EUBra-BIGSEA ecosystem.

EUBra-BIGSEA is committed to making a significant contribution to the cooperation between Europe and Brazil in the area of advanced cloud services for Big Data applications. See more about in EUBra-BIGSEA website.

To more info about Controller and how does it works in BIGSEA Asperathos environment, see details.md and asperathos-workflow.md.

How does it works?

The controller is implemented following a plugin architecture, providing flexibility to add or remove plugins when necessary. It works with usage of three types of plugins: Actuator, Controller and Metric Source.

  • The Controller, based on metrics such as application progress and CPU usage, decides the amount of resources to allocate to the applications.
  • The Actuator is responsible for connecting to the underlying infrastructure (such as a Mesos or an OpenStack Sahara platform) and triggering the commands or API calls that allocate or deallocate resources, based on the Controller’s requests.
  • The Metric Source plugin is responsible for getting application metrics from a metric source, such as Monasca, and returning them to the Controller.

How to develop a plugin?

See plugin-development.md.

Requirements

  • Python 2.7 or Python 3.5
  • Linux packages: python-dev and python-pip
  • Python packages: setuptools, tox and flake8

To apt distros, you can use pre-install.sh to install the requirements.

Install

Clone the Controller repository in your machine.

Configuration

A configuration file is required to run the Controller. Edit and fill your controller.cfg in the root of Controller directory. Make sure you have fill up all fields before run. You can find a template in config-example.md.

Run

In the Controller root directory, start the service using run script:

$ ./run.sh

Or using tox command:

$ tox -e venv -- controller

Controller REST API

Endpoints are avaliable on restapi-endpoints.md documentation.

Avaliable plugins

Controller

Actuator

Metric source

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.7%
  • Other 0.3%