Автор статьи рассказывает о прошлом опыте, где простое обновление версии превратилось в катастрофу, подчеркивая необходимость лучшего способа обработки развертываний. Автор отмечает, что термин "окно обслуживания" был фактом жизни в прошлом, где сервисы должны были быть приостановлены, файлы заменены, и все надеялись на гладкий ход событий. Автор описывает этот подход как "высокорискованную игру", где исход был неопределенным. По мере эволюции технологий были введены инструменты, такие как скрипты Shell, менеджеры процессов и контейнеризация, для улучшения развертывания, но они все равно не смогли достичь бесшовных, безаварийных обновлений.
Автор обсуждает ограничения использования внешних инструментов, таких как PM2 и systemd, которые, хотя и мощные, не являются идеальными решениями из-за их внешней зависимости, привязки к языку или экосистеме и "черного ящика" работы. Затем автор вводит концепцию внутренней служебной администрации как части приложения, используя библиотеку Rust под названием server-manager, которая позволяет приложению управлять собой. Этот подход дает несколько преимуществ, включая код в качестве конфигурации, хуки жизненного цикла и кроссплатформенную совместимость.
Автор подчеркивает важность достижения безаварийных горячих перезапусков, что можно добиться, внутренне обрабатывая логику обновления в приложении. Это включает в себя получение сигнала перезапуска, выполнение хука до перезапуска, компиляцию новой версии и передачу полномочий новому процессу. Автор заключает, что развертывание должно быть уверенным заявлением, а не молитвой, и что экосистема Rust предоставила новую, более надежную философию построения и обслуживания программного обеспечения. Автор подчеркивает необходимость лучших инструментов и более композитного опыта разработки, отмечая сдвиг от "дикого запада" прошлого к новой эре развертывания. В конечном итоге статья выступает за более элегантный и надежный подход к развертыванию, который интегрирован в само приложение.
dev.to
Your-Deployments-Are-Stuck-in-the-Past-The-Lost-Art-of-the-Hot-Restart
Create attached notes ...
