14 февраля 2018

Самоорганизующаяся сервисная инфраструктура на базе Docker

Самоорганизующаяся сервисная инфраструктура на базе Docker

Данила Штань утверждает, что на базе Docker можно построить самоорганизующуюся сервисную инфраструктуру, обходясь довольно простыми техническими решениями, популярными программными продуктами и соглашениями внутри команды. И если эта комбинация дает простой сервис для разработчиков, которым наверняка неохота разбираться со сложными концепциями, то почему нет?

Для начала можно, отказавшись от сложного сетевого слоя Docker, построить общую локальную сеть для контейнеров, расположенных на разных хост-машинах и реализовать при помощи Consul и его агентов в контейнерах простой Service Discovery. В вопросе, можно ли в контейнер запихать больше одного процесса, команда Данилы договорилась, что Docker – это просто оболочка для какого-то компонента и его зависимостей, а совершенно необязательно один процесс. Чтобы Service Discovery работал правильно в Consul есть очень полезный инструмент, который называется Health Checks, а утилита Consul Template позволяет решать 80% задач, связанных с необходимостью менять конфигурацию приложений в условиях постоянно изменяющейся окружающей среды.

Автор подробно описывает все стадии создания экосистемы, а потом призывает к максимализму в её использовании: «Не будьте ретроградами, не ставьте базы на отдельные сервера – пихайте все в контейнеры, это прикольно!». Простые компоненты, простые инструменты, лишнего софта практически нет – все действительно довольно легко!

Система подготовки видео для стриминга на платформе ivi

В ivi жонглируют Docker-контейнерами для того, чтобы подготовить видео к стримингу на большое количество типов устройств. Технический директор Евгений Россинский, в свойственной ему бодрой манере подробно объяснил все аспекты архитектурного решения и все тонкости работы с видео.

На пути от правообладателя до конечного пользователя видео в ivi проходит через 7 различных этапов, включая ручные проверки и систему кодирования. Примерно 95% уходит на софтверное кодирование – это преимущественно ffmpeg. Однако для экономии времени и проведения экспериментов используются сервера от компании Elemental.

Чтобы разработчики не мочили эксплуатацию, а эксплуатация не мочила разработчиков, все, что связано с кодированием, находится в Docker-контейнерах, и отсутствуют сложности с настройкой инфраструктуры, сборкой ffmpeg, версиями и так далее. В итоге удалось добиться простоты в эксплуатации, очень хороших возможностей масштабирования и возможностей подключать внешние сервисы.

Присоединяйтесь!