caravela

command module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2018 License: GPL-3.0 Imports: 1 Imported by: 0

README

Caravela: A Cloud @ Edge Build Status

Table of Contents

What is CARAVELA ?

CARAVELA is a prototype container cloud management/orchestrator platform, inspired by the Docker Swarm and Kubernetes orchestrators, but with a fully decentralized, hence scalable architecture in order to be deployed in a Edge Computing environment.

This work is being developed in the context of my Masters Degree Thesis in Computer Science and Engineering @ Instituto Superior Técnico - Lisbon.

The main goal of the work was to test resource constrained scheduling requests evaluating its performance compared with centralized versions.

Getting Started

This project is a standalone middleware to orchestrate Docker containers but it is highly inspired in the Docker, Swarm and Kubernetes projects so the APIs and the CLI try to mimic a small subset of commands/features from that platforms. So it is easily migrate container's deployment for a CARAVELA instance.

Compile From Source

The Makefile in the project's root makes all the necessary actions to easily compile, develop, test and deploy.

The only prerequisite to use the basic functionality of makefile is a properly configured golang environment/toolchain in the machine. The golang version used in project: 1.9.4.

There are two ways to build the project using the Makefile:

  • Installing it in the golang environment
    1. make install
  • Building the project in the Makefile directory (creating the executable in the directory)
    1. make build
Create/Bootstrapping a CARAVELA instance

A CARAVELA instance can be bootstrapped with a single node. The command necessary is the following one where <machine_ip> is the local ip address of the machine.

caravela create <machine_ip>

Join a CARAVELA instance

To enter and start supplying/use resources, the following command gets the job done. It is only needed to replace <machine_ip> with the local IP address of the machine and <caravela_machine_ip> with the IP address of a machine that is already participating in a CARAVELA instance.

caravela join <machine_ip> <caravela_machine_ip>

Run, Stop Containers and more
Run

caravela run -cpus 2 -ram 256 <image>

Stop

Contributing

TODO

License

This project is licensed under the GPL V3 License - see the LICENSE.md file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
client
Client package provides a client that allows to interact with the a CARAVELA's daemon sending the requests to it.
Client package provides a client that allows to interact with the a CARAVELA's daemon sending the requests to it.
types
Types package includes all the structures shared between the caravela's server/daemon and its clients.
Types package includes all the structures shared between the caravela's server/daemon and its clients.
cli package provides a CLI (Command Line Interface) for the CARAVELA system, wrapping up the REST API provided in the package github.com/strabox/caravela/backend/client.
cli package provides a CLI (Command Line Interface) for the CARAVELA system, wrapping up the REST API provided in the package github.com/strabox/caravela/backend/client.
Node package contains the main logic for a CARAVELA's node.
Node package contains the main logic for a CARAVELA's node.
Version package contains the information about the version of the code.
Version package contains the information about the version of the code.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL