maitai / bibigrid

BiBiGrid is a tool for an easy cluster setup inside a cloud environment.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BiBiGrid

BiBiGrid is a tool for an easy cluster setup inside a cloud environment. It is written in Java and run on any OS a Java runtime is provided - any Java 8 is supported. BiBiGrid and its Cmdline UI based on a general cloud provider api. Currently the implementation is based on OpenStack (Openstack4j).
There also exists implementations for Google (Compute Engine, using the official Google Cloud SDK), Amazon (AWS EC2 using the official AWS SDK) and Microsoft (Azure using the official Azure SDK) (WIP) which are currently not provided tested. BiBiGrid offers an easy configuration and maintenance of a started cluster via command-line.

BiBiGrid uses Ansible to configure standard Ubuntu 16.04/18.04 LTS as well as Debian 9/10 cloud images. Depending on your configuration BiBiGrid can set up an HCP cluster for grid computing (Slurm Workload Manager as well as Open Grid Engine, provided for Ubuntu 16.04 only), a shared filesystem (on local discs and attached volumes), a cloud IDE for writing, running and debugging (Theia Web IDE as well as Cloud9, supported for Ubuntu 16.04 only) and many more.

During resource instantiation BiBiGrid configures the network, local and network volumes, (network) file systems and also the software for an immediately usage of the started cluster.

When using preinstalled images a full configured and ready to use cluster is available within a few minutes.

Compile, Build & Package

Requirements: Java >= 8, Maven >= 3.3.9

Each cloud provider SDK comes with a set of dependencies which often conflicts with dependencies of other SDK (same library, different major version) when building a shaded (fat) jar. The BiBiGrid POM supports Maven profiles to avoid such dependency conflicts.

At first, clone the repository onto your local machine and change into bibigrid directory.

> git clone https://github.com/BiBiServ/bibigrid.git
> cd bibigrid

Default profile (all supported cloud provider)

Attention: Building a package supporting all cloud provider is possible but not recommended. The Maven package action put the first occurance of a library/class into the builded shaded jar. This could lead to an unpredictable behaviour when running BiBiGrid. The default profile is mainly used by IDEs with Maven support.

> mvn clean package

OpenStack

> mvn -P openstack clean package

Amazon Web Services (AWS)

> mvn -P aws clean package

Microsoft Azure

> mvn -P azure clean package

GoogleCloud

> mvn -P googlecloud clean package

You can also use the prebuild binary repository to get the latest (and older) versions of BiBiGrid.

Getting Started

Using BiBiGrid requires a valid cluster configuration and credentials for your cloud provider. The setup can differ a bit depending on the used cloud backend. See BiBiGrid documentation for detailed configuration and usage information.
Notice also the deNBI Wiki for a complete setup guide.

Development-Guidelines

https://github.com/BiBiServ/Development-Guidelines

About

BiBiGrid is a tool for an easy cluster setup inside a cloud environment.

License:Apache License 2.0


Languages

Language:Java 96.2%Language:Python 2.8%Language:Shell 0.7%Language:Ruby 0.3%