Я нашел несколько интересных решений из этого article относительно времени простоя нуля. Я хотел бы выделить лишь несколько решений в этой статье.
1. Переключатель/Б: (прокатка механизм обновления + Fallback)
Мы должны иметь набор узлов в режиме стоя. Мы разворачиваем новую версию на эти узлы и мгновенно переключаем трафик на них. Если мы сохраним старые узлы в исходном состоянии, мы можем сделать мгновенный откат. Балансировщик нагрузки обращается к приложению и отвечает за этот переключатель по запросу.
минусам: Если вам нужны X сервера для запуска приложения, йону нужен 2X серверов с этим подходом.
2. Нулевой простои
При таком подходе мы не храним множество машин; скорее, мы задерживаем привязку порта. Совместное приобретение ресурсов задерживается до запуска приложения. Порты переключаются после запуска приложения, а старая версия также работает (без точки доступа) для немедленного возврата в случае необходимости.
3. Параллельное развертывание - Apache Tomcat: (Только для веб-приложений)
Apache Tomcat добавил параллельную функцию развертывания для их выхода версии 7. Они позволяют одновременно запускать две версии приложения и использовать последнюю версию по умолчанию.
4. Отложенная порт связывания:
мы предлагаем здесь является возможность запуска сервера без привязки порта и, по существу, не запуская разъем. Позже будет запущена отдельная команда и привязка соединителя. Версия 2 программного обеспечения может быть развернута, пока версия 1 работает и уже связана. Когда версия 2 запускается позже, мы можем отменить версию 1 и связать версию 2. При таком подходе узел эффективно отключается только на несколько секунд.
5. Advanced Port Binding:
Разбив миф: «Address already in use
», * как старый процесс & новый процесс будет связываться с таким же портом. Опция SO_REUSEPORT в режиме ON позволяет двум (или более) процессам связываться с одним и тем же портом. Как только новый процесс связывается с портом, убейте старый процесс.
В SO_REUSEPORT вариант рассмотреть два вопроса:
Небольшой глюк между переключением версии приложения: Узел может служить трафик все время, фактически давая нам нулевое время простоя.
Улучшенное планирование:

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