Giter Site home page Giter Site logo

arawa / divims Goto Github PK

View Code? Open in Web Editor NEW
8.0 5.0 0.0 1.16 MB

DiViM-S (or divims) is an opensource orchestrator and autoscaler for BigBlueButton pools behind a Scalelite server

Home Page: https://www.arawa.fr/solutions/produits-arawa/arawa-divims-for-bigbluebutton/

License: Other

Dockerfile 1.04% PHP 94.21% Shell 4.75%
autoscaler autoscaling bbb bigbluebutton orchestrator scalelite

divims's Introduction

DiViMS logo DiViMS - a BigBlueButton orchestrator

DiViMS (or divims) is an opensource orchestrator for BigBlueButton and Scalelite

It allows auto-scaling your BBB infrastructure according to the observed load or a forecasted schedule and simultaneously reducing your hosting costs.

Currently compatible with Scaleway hosting.

Divims visual explanation

How it works

A CRON job launches a Docker container every 5 minutes (recommended). This container runs a PHP7 app that connects to your Scalelite's pool :

  • Queries Scalelite to retrieve load information (number of participants, meetings and load)
  • Queries each BBB server for system and recordings processing information
  • Makes decision on whether BBB servers should be halted or started
  • Acts on hosting infrastructure (currently only Scaleway) to start (clone) or delete virtual machines
  • Acts on Scalelite to enable, drain or disable BBB servers
  • Sends warnings and alerts to an email address

You'll find a presentation of DiViMS at BBB World 2022 on Youtube : https://www.youtube.com/watch?v=S35ZNiOtaek

Requirements

DiViM-s requires a pool of BigBlueButton servers managed by a Scalelite server. DiViM-S code can reside on the same server as Scalelite : independence is guaranteed by Docker.

To run DiViM-S you should install these dependencies :

  • docker-ce

How to run

Build the required docker image

docker build --tag php:parallel --build-arg PUID=$(id -u) --build-arg PGID=$(id -g) --build-arg USER=$(id -un) .

Add a BBB pool

mkdir -p config/project/<pool-name>
cp config/config.default.php config/project/<pool-name>/config.php

Modify your pool's config.php to your needs

Run

Modify main.php to your needs and start app :

$ docker container run --rm -v $(pwd):/app/ php:parallel php /app/main.php

Troubleshooting

Logger

You can use the logger class to print debug message on the docker console.

To enable debug mode, use Logger::DEBUG as second parameter of pushHandler method.

Example :

$logger->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG));

Additional Help

If you need assistance, require a further development (such as develop compatibility with your prefered cloud), you can contact Arawa to learn about professional services to support your project.

Please visit project page on Arawa's website (French content) or contact us.

Sponsors

Ministère de l'Éducation Nationale française (Direction du Numérique pour l'Éducation)

divims's People

Contributors

pielonet avatar thibautplg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.