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.
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
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
docker build --tag php:parallel --build-arg PUID=$(id -u) --build-arg PGID=$(id -g) --build-arg USER=$(id -un) .
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
Modify main.php
to your needs and start app :
$ docker container run --rm -v $(pwd):/app/ php:parallel php /app/main.php
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));
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.
Ministère de l'Éducation Nationale française (Direction du Numérique pour l'Éducation)