epi-project / brane

Programmable Orchestration of Applications and Networking
Apache License 2.0
9 stars 7 forks source link

logo

Programmable Orchestration of Applications and Networking


Audit status CI status License: Apache-2.0 Coverage status Release DOI

Introduction

Regardless of the context and rationale, running distributed applications on geographically dispersed IT resources often comes with various technical and organizational challenges. If not addressed appropriately, these challenges may impede development, and in turn, scientific and business innovation. We have designed and developed Brane to support implementers in addressing these challenges. Brane makes use of containerization to encapsulate functionalities as portable building blocks. Through programmability, application orchestration can be expressed using intuitive domain-specific languages. As a result, end-users with limited or no programming experience are empowered to compose applications by themselves, without having to deal with the underlying technical details.

See the documentation for more information.

Installation

For a full how-to on how to install or run the framework, refer to the user guide and then the section that represents your role best. Typically, if you are installing the framework yourself, consult the installation chapter for administrators; otherwise, consult the installation chapter for Software Engineers or that for Scientists. The former is a bit more comprehensive, while the latter is a bit more to-the-point and features more visualisations.

Usage

Similarly to installing it, for using the framework we refer you to the wiki. Again, choose the role that suits you best (System administrators if you are managing an instance, [Policy experts]() if you are writing policies, Software engineers if you are writing packages or Scientists if you are writing workflows). You can also follow the chapters in the order presented in the wiki's sidebar for a full overview of everything in the framework.

Contributing

If you're interrested in contributing, please read the code of conduct and contributing guide.

Bug reports and feature requests can be created in the issue tracker.

Development

If you are intending to develop on the framework, then you should setup your machine for framework compilation (install both the dependencies for runtime and compilation).

Then, you can clone this repository (git clone https://github.com/epi-project/brane.git) to some folder of choice, and start working on the source code. You can check the specification to learn more about the inner workings of the framework, and remember: make.py is your biggest friend when compiling the framework, and branectl when running or testing it.

Consult the code documentation for more information about the codebase itself. Note, however, that this is generated for the latest release; to consult it for a non-release, navigate to the root of the repository and run:

cargo doc --release --no-deps --open