Process BigBlueButton recordings via CUPS as a queue server and load balancer
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Mikhail Novosyolov a0d9843a64 Start README 3 years ago
Makefile Init, first working version 3 years ago
README.md Start README 3 years ago
cups-backend-copy-raw.sh Init, first working version 3 years ago

README.md

Обработка записей BigBlueButton через CUPS как сервер очереди и балансировщик нагрузки

Формулировка задачи

В часы пиковой нагрузки идет одновременно много (допустим, 50) вебинаров на нескольких серверах BigBlueButton.

Каждый сервер имеет определенное количество ресурсов для проведения вебинара (память и процессор), но не имеет ресурсов — дискового пространства — для хранения записей. Также нецелесообразно хранить разные записи на разных серверах.

Во время пиковой нагрузки нельзя занять ресурсы сервера конвертированием записей, однако записи нужны в готовом для использования виде как можно скорее.

Концепция решения

Выносим обработку записей на отдельные сервер(-ы).

Прошел вебинар — перекачали исходники записи на этот специальный сервер и конвертировали их. Результат конвертации положили на специальный сервер, обслуживающий записи.

Для масштабирования может потребоваться несколько обрабатывающих записи серверов.

Реализация решения

CUPS многим известен как сервер печати в UNIX-подобных операционных системах, однако его можно использовать как сервер очереди, что мы и делаем.

Вместо принтера у нас обработчик записей, вместо задания печати ­— исходники записи.

CUPS имеет встроенный функционал, так сказать, кластеризации: может сам распределять задания печати между свободными принтерами, чем мы воспользуемся для распределения заданий обрбаотки записей между несколькими серверами.