tgoop.com/tarmolov_work/133
Last Update:
Мне рассказывали, что в Яндексе одна из первых систем деплоя основывалась на общей папке между разработчиком и администратором. Разработчик упаковывал свой сервис в архив и загружал его в эту папку, после чего администратор осуществлял обновление на сервере.
Однако такой подход не является оптимальным. Нужна более продвинутая система деплоя.
В Яндексе большинство серверов работает на операционной системе Ubuntu, где для установки приложений используются debian-пакеты.
Debian-пакет представляет собой специальный файл, содержащий программу, которую можно установить на компьютере. Он содержит все необходимые файлы для работы программы, включая исполняемые файлы, изображения, звуки и инструкции.
Такие пакеты легко устанавливаются, обновляются и удаляются с помощью встроенных инструментов, а также поддерживают версионирование и зависимости.
В Яндексе не стали изобретать велосипед и выбрали этот подход для дистрибуции своих сервисов.
Однако требовалась система “оркестрации” для распространения пакетов на группы серверов и по различным окружениям. Для этой цели была разработана внутренняя система под названием Кондуктор, которая контролировала движение вагончиков пакетов с обновлениями.
Несмотря на то, что сейчас мы деплоим docker-контейнеры, я считаю, что использование debian-пакетов и системы Кондуктор было очень удачным решением. Мы взяли проверенный инструментарий и настроили его под свои нужды.
В итоге получилось решение, которое служит уже не один год. Более того, даже сегодня система Кондуктор продолжает работать и помогать сервисам, которые по каким-то причинам до сих пор не перешли в “облачное“ будущее :)
Кстати, если вам интересно узнать больше о деплое с использованием debian-пакетов, то я могу написать лонгрид. Отмечу, что написание лонгридов требует много времени, поэтому давайте договоримся, что “цена” за лонгрид будет 50 👍 к этому посту.
#инфраструктура
BY Тармолов про работу
Share with your friend now:
tgoop.com/tarmolov_work/133