diff --git a/README.md b/README.md new file mode 100644 index 0000000..0681c1a --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Обработка записей BigBlueButton через CUPS как сервер очереди и балансировщик нагрузки + +## Формулировка задачи + +В часы пиковой нагрузки идет одновременно много (допустим, 50) вебинаров на нескольких серверах BigBlueButton. + +Каждый сервер имеет определенное количество ресурсов для проведения вебинара (память и процессор), но не имеет ресурсов — дискового пространства — для хранения записей. Также нецелесообразно хранить разные записи на разных серверах. + +Во время пиковой нагрузки нельзя занять ресурсы сервера конвертированием записей, однако записи нужны в готовом для использования виде как можно скорее. + +## Концепция решения + +Выносим обработку записей на отдельные сервер(-ы). + +Прошел вебинар — перекачали исходники записи на этот специальный сервер и конвертировали их. Результат конвертации положили на специальный сервер, обслуживающий записи. + +Для масштабирования может потребоваться несколько обрабатывающих записи серверов. + +## Реализация решения + +CUPS многим известен как сервер печати в UNIX-подобных операционных системах, однако его можно использовать как сервер очереди, что мы и делаем. + +Вместо принтера у нас обработчик записей, вместо задания печати ­— исходники записи. + +CUPS имеет встроенный функционал, так сказать, кластеризации: может сам распределять задания печати между свободными принтерами, чем мы воспользуемся для распределения заданий обрбаотки записей между несколькими серверами.