Видеостриминг в Кубернетес. Мы уже попробовали!
Мы постоянно говорим, что Flussonic – это all-in-one для работы с видео. Самостоятельное решение, закрывающее вопросы доставки видео от и до, чтобы вы могли забыть об использовании нестабильных инструментов. За достижения в области real time стриминга и не только, в этом году Flussonic снова включен в топ-50 компаний индустрии по версии Streaming Media.
Месяц за месяцем, каждая новая версия Flussonic Media Server создается для того, чтобы делать пользовательский опыт еще круче, а управление – еще проще.
Не только developer, но и DevOps френдли
Flussonic давно придерживался курса “девелопер френдли”. Во-первых, софт – всегда актуальный. Регулярные релизы рождают каждый месяц на свет новые фичи для наших клиентов. И сделать с нашей помощью что-то свое, кастомное – не проблема.
Во-вторых, в этом году был совершен полный переход на OpenApi, так что теперь даже самые сложные интеграции делаются быстрее. Есть понятная инструкция, API-методы четко описаны и привязаны к “схеме”.
Ну а осенью 2022 мы ворвались в DevOps-мир, адаптировав Flussonic для Kubernetes. Управлять кластером серверов без личного участия, обновлять их одной кнопкой, динамически масштабироваться, устанавливать параметры при которых нужно добавлять ноды, наконец – спать по ночам, – все это доступно. Запустить Flussonic в среде Kubernetes и получить работающий сервер, готовый к приему публикаций, можно прямо сейчас.
Один из продуктов, который мы развиваем – Flussonic Cloud, готовый видеостриминговый сервис. Для Cloud используется Кубернетес (то есть имеем реальный опыт эксплуатации) – и нам это удобно. И вам тоже понравится :) Обращайтесь – расскажем, как наше облако менеджится через Кубернетес и поможем с вашим сервисом.
Как это было
Несколько слов про некоторые сделанные адаптации, которые были просто необходимы для обеспечения полной совместимости с k8s.
Пришлось придумать, что делать с файлами активации – мы нашли способ, чтобы Flussonic мог положить их в местную базу данных – куберовское хранилище секретов. Ключ, логин и пароль “приезжают” снаружи, из настроек кластера. То есть никакого складывания в git, ручного ввода паролей. Те, кому не надо, не будут иметь продакшн пароли от кластера. Хранение файлов в секретах также хорошо тем, что позволяет купленным флюссоникам быть независимыми какое-то время от серверов лицензий – в течение суток все будет работать, как и работало.
Одной из необходимых адаптаций также стала возможность записи логов в JSON-формате. Так, Кубернетес сразу, из коробки, сохраняет логи в свое хранилище, откуда их можно спокойно смотреть: “Я знаю что делать с логами, просто дай мне их сюда”. Использование стандартизированных инструментов таких, как этот, удешевит внедрение. Во-первых, не нужно тратить время чтобы придумать, куда эти логи писать. Устанавливать отдельный софт на отдельный сервер сбора логов, который бы их читал, периодически выгружал; потом еще один софт который бы распаковывал, складывал в базу данных, сжимал, индексировал… Во-вторых, если писать логи на диск, а не отдавать наружу, а у вас 50 флюссоников запущенных – пришлось бы еще догадываться, где искать логи нужного стрима. Вместо того, чтобы все смотреть в центральном месте. В третьих, потреблялись бы ресурсы на жестком диске. Каждый из этих 50 записывал бы свои кусочки логов, из-за чего еще и прогнозировать использование места сложно. В общем, об этом кошмаре можно забыть и не думать. Логи пишутся “централизованно”, удобно.
Гайды
Первое, о чем стоит напомнить – у нас всегда была и есть поддержка запуска в контейнере. А также инструкция, как это сделать.
Что касается запуска в Kubernetes, мы уже положили в документацию подробный гайд. А в публичном git-репозитории вы найдете примеры yaml файлов, и сможете создать кластер для публикации. Там же есть пример по автомасштабированию, чтобы вы обслуживали свои пики, а вне них – не было перерасхода ресурсов.
На том, что сейчас сделано, тоже не останавливаемся – в ближайшее время, например, появится отдельный гайд именно для UGC-сервисов, так что будет еще удобнее.
–
P.S. Стоит отдельно упомянуть, что в k8s работают все модули Флюссоника. В том числе, наш знаменитый DVR с возможностью давать глубину архива больше года и бесшовный переход от просмотра записи в live трансляцию. Или например, транскодер с возможностью подготовки мультибитрейтного потока для устойчивого воспроизведения у зрителей с медленным интернетом.
Пользуйтесь, запускайте, все работает. Мы проверяли!