Операционная система для медиасерверных ПАК

InfraMedia

Прошивка вместо дистрибутива

Медиасерверу не нужна универсальная операционная система с пакетным менеджером, репозиторием и собственным графиком обновлений. InfraMedia — неизменяемая (иммутабельная) прошивка, на которой работают наши серверы: она едет одним образом вместе с продуктом, настраивается по HTTP и обновляется одним пакетом с возможностью отката.

Одна машина

Медиасервер
свой слой, своя версия
InfraMedia
неизменяемый корень, конфигуратор, обновление и откат
Сервер
железо, которое мы проверили сами

Два способа держать медиасервер

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

Универсальный дистрибутив

  • Вы ставите операционную систему, поверх неё — медиасервер, и стык между ними ваш.
  • Два потока обновлений: пакеты дистрибутива и релизы продукта.
  • Каждая машина со временем расходится: здесь поправили руками, там доставили пакет — через год одинаковых серверов в парке нет.
  • Откат неудачного обновления — это восстановление из резервной копии.

Прошивка InfraMedia

  • Операционная система и продукт едут одним образом, одной версией и проверены вместе.
  • Корень только для чтения: ставить руками нечего, расходиться нечему.
  • Одно обновление на машину, и оно встаёт рядом с работающей версией.
  • Откат — это выбор прежней версии и перезагрузка.

Неизменяемая (иммутабельная) ОС

InfraMedia относится к иммутабельным системам: системные и исполняемые файлы нельзя изменить во время эксплуатации. Файловая система собрана из заранее подготовленных образов squashfs и смонтирована только для чтения.

Ничего не разъезжается

Машина в стойке ровно такая, какой мы её выпустили: изменить системный файл невозможно, а значит, невозможны и накопленные за год правки, о которых уже никто не помнит. Подменить файл системы тоже нельзя.

Система и продукт обновляются порознь

Прикладная программа изолирована собственным слоем, и у каждой стороны своя версия. Обновить медиасервер, не трогая операционную систему, — обычное дело; обратное тоже верно.

Обновление встаёт целиком или никак

Новая версия кладётся рядом с работающей и включается одной строкой в загрузчике. Состояния «наполовину обновились» не бывает, а откат — это та же строка, возвращённая обратно.

Иммутабельность из коробки

Обычно такую систему нужно построить самому: поднять отдельный сервер сборки, собрать образы, настроить сетевую загрузку и завернуть приложение в контейнер. InfraMedia приезжает уже собранной — с медиасервером внутри, ставится с флешки на голое железо, и своей инфраструктуры сборки для этого не нужно.

Машиной распоряжается программа, а не человек

InfraMedia собрана для ПАК: машиной распоряжается продукт, который на ней работает, а не администратор с ssh и текстовым редактором. Всё, что превращает просто компьютер в сетевой прибор, система делает сама и отдаёт наружу одним API и одним веб-интерфейсом.

Единственный вход — API

У конфигуратора нет ручного режима: всё, что настраивается, настраивается запросом. Продукт зовёт этот API сам, и человек ему не нужен, чтобы поднять сеть, время или учётные записи.

Настройки живут в одном хранилище

Хранилище настроек — единственный источник правды. Системные файлы рендерятся из него и обратно не читаются, поэтому править их руками бессмысленно: следующий рендеринг вернёт заданное значение.

Веб-интерфейс в составе системы

Обновление прошивки, сетевые настройки, разметка и форматирование дисков, время, учётные записи, перезагрузка — всё, что превращает просто компьютер в сетевой прибор, входит в саму систему. Доставлять отдельно нечего: интерфейс едет базовым слоем и работает даже тогда, когда головная программа не поднялась.

Встраивается в головную программу

Экраны собраны отдельно от оболочки: они не несут ни темы, ни роутера, ни авторизации, поэтому встают разделом в консоль той программы, ради которой ПАК и ставится. Оператор настраивает шасси там же, где смотрит на стримы.

Как живёт машина

Ставится с флешки сама

Записали образ, заполнили один текстовый файл на флешке — дальше человек только втыкает её в сервер и включает питание. Установщик ничего не спрашивает и не ждёт нажатий: он размечает диск, копирует прошивку, оставляет учётные данные и выключает машину.

Настраивается по API

Сеть, время, учётные записи и питание задаются запросом к конфигуратору или из веб-интерфейса. Ни одного шага, который пришлось бы делать по ssh.

Обновляется и откатывается

Обновление идёт в unmanaged-режиме: ни системы управления парком, ни агента, ни сессии по ssh — машина ставит пакет сама, рядом с работающей версией. Настройки, данные и пароли переживают обновление, а прежняя версия остаётся на загрузочном разделе для отката.

Одна операционная система, несколько продуктов

InfraMedia — то, на чём собраны наши серверы. Продукт едет поверх слоем, а машина под ним в каждой стойке одна и та же.

На железе, которое мы проверили сами

Прошивка едет на машины, которые мы проверяем: драйверы собраны в одно ядро, сетевые порты получают предсказуемые имена, и на знакомой машине один и тот же образ грузится одинаково.

Это противоположность «поддерживаем всё». Сервер, которого мы не видели, — вопрос, на который мы отвечаем до покупки, а не сюрприз при установке.

Российская ОС для вашего парка

InfraMedia разрабатывается в России: исходный код и сборка живут в инфраструктуре Flussonic, а не в публичном репозитории под чужим управлением.

Управлять прошивкой можете только вы и только по API: машина узнаёт о новых версиях из канала обновлений, адрес которого вшит в сборку, а установка — всегда явный запрос с вашей стороны.

Выбираете операционную систему для медиасерверов?

Расскажите, что стоит в стойке и что на этом должно работать. Покажем прошивку на стенде и честно скажем, подходит ли она.