Я считаю,что бесшовный деплой реален и удобен в присутствии третьей стороны назовем его switcher. Как он работает:
1. Switcher запускает n-инстансов и начинает распределять запросы равномерным слоем между ними: ведя учет запросов через счетчики.
2. Вы посылаете switcher'у сигнал о перезагрузке/деплое.
3. Switcher начинает поднимать новые инстансы, не убивая старых и отправлять запросы на них.
4. Когда у старого инстанса счетчик запросов обнулился, его можно убивать, что и делает switcher.
Таким образом вам не придется модифицировать имеющийся код, а масштабирование будет происходить безболезненно путем добавления новых инстансов. Обратите внимание: у процесса есть
событие 'exit', на которое вы навешиваете обработчики для остановки вычислений. Т.е. сначала закрывается внешний интерфейс в штатном режиме, а только затем прекращаются внутренние операции, закрываются соединения, релизятся блокировки и т.п.