liske / b3lb

BigBlueButton Load Balancer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

B3LB - BigBlueButton Load Balancer

About

B3LB is a open source BigBlueButton API load balancer similar to Scalelite. B3LB is based on the Django Python Web framework and is designed to work in large scale-out deployments with 100+ BigBlueButton nodes and high attendee join rates. The project started at IBH IT-Service GmbH in the fall 2020 and has been published in February 2020 during the second lock down in Germany.

This project uses BigBlueButton and is not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.

Features

General:

  • proven for massive scale-out deployment
  • extensive caching based on Redis

Frontend API:

  • deployed on ASGI with uvicorn
  • multitenancy support:
  • multiple API sub secrets per tenant (i.e. for multiple LMS)
  • API secret rollover
  • per tenant customization:
    • start presentation
    • branding logo
  • precalculated responses for expensive API calls (getMeetings)
  • prometheus and json metrics:
    • global
    • per tenant
  • group BBB nodes into clusters:
    • map tenants to clusters
    • different load balancing factors per cluster

Worker:

  • using Celery for node polling

Prerequisites

  • BBB nodes
  • a dedicated DNS domain with a wildcard RR
  • wildcard certificate or Let's Encrypt DNS-01 challange support
  • docker runtime to run frontend, worker and auxiliary services
  • PostgreSQL database

Setup & Documentation

TODO

About

BigBlueButton Load Balancer

License:GNU Affero General Public License v3.0


Languages

Language:Python 94.5%Language:Shell 3.3%Language:Dockerfile 2.2%