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, or check out our conference paper for the scientific context:
O. Valkering, R. Cushing and A. Belloum (2021)
Brane: A Framework for Programmable Orchestration of Multi-Site Applications
IEEE 17th International Conference on eScience pp. 277-282
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.
The latest version of Rust, and the following system dependencies must be installed (assuming Ubuntu 20.04):
- build-essential
- cmake
- docker-compose
- docker.io
- libssl-dev
- musl-tools
- pkg-config
To compile and test the complete project:
$ cargo build
$ cargo test
To build optimized versions of the binaries (brane
and branelet
):
$ make build-binaries
To build optimized versions of the services (Docker images):
$ make build-services