Перейти к основному содержимому

Debian-пакеты для деплоя сервисов

·256 слов·2 минут
Оригинал опубликован в Telegram

Мне рассказывали, что в Яндексе одна из первых систем деплоя основывалась на общей папке между разработчиком и администратором. Разработчик упаковывал свой сервис в архив и загружал его в эту папку, после чего администратор осуществлял обновление на сервере.

Однако такой подход не является оптимальным. Нужна более продвинутая система деплоя.

В Яндексе большинство серверов работает на операционной системе Ubuntu, где для установки приложений используются debian-пакеты.

Debian-пакет представляет собой специальный файл, содержащий программу, которую можно установить на компьютере. Он содержит все необходимые файлы для работы программы, включая исполняемые файлы, изображения, звуки и инструкции.

Такие пакеты легко устанавливаются, обновляются и удаляются с помощью встроенных инструментов, а также поддерживают версионирование и зависимости.

В Яндексе не стали изобретать велосипед и выбрали этот подход для дистрибуции своих сервисов.

Однако требовалась система “оркестрации” для распространения пакетов на группы серверов и по различным окружениям. Для этой цели была разработана внутренняя система под названием Кондуктор, которая контролировала движение вагончиков пакетов с обновлениями.

Несмотря на то, что сейчас мы деплоим docker-контейнеры, я считаю, что использование debian-пакетов и системы Кондуктор было очень удачным решением. Мы взяли проверенный инструментарий и настроили его под свои нужды.

В итоге получилось решение, которое служит уже не один год. Более того, даже сегодня система Кондуктор продолжает работать и помогать сервисам, которые по каким-то причинам до сих пор не перешли в “облачное“ будущее :)

Кстати, если вам интересно узнать больше о деплое с использованием debian-пакетов, то я могу написать лонгрид. Отмечу, что написание лонгридов требует много времени, поэтому давайте договоримся, что “цена” за лонгрид будет 50 👍 к этому посту.