Я пытаюсь создать очень легкое решение для нулевого времени простоя для приложений Java. Для простоты подумаем, что у нас есть два сервера. Мое решение состоит в том, чтобы использовать:
-
На "фронте" - некоторый балансировщик (программное обеспечение) - я думаю о HAProxy здесь.
-
На "обратной стороне" - два сервера, оба запускают Tomcat с развернутым приложением.
Когда мы собираемся развернуть новую версию
-
Мы отключили один из серверов с HAProxy, так что будет доступен только один сервер (пусть его вызывает сервер A, который работает с старой версией).
-
Разверните новую версию на другом сервере (позвоните на сервер B), запустите тесты производственных модулей (в случае их наличия:-) и включите сервер B с HAProxy, одновременно отключив сервер A.
-
Теперь у нас снова активен только один сервер (сервер B с новой версией). Разверните новую версию на сервере B и снова включите ее.
Кто-нибудь советует, как улучшить? Как автоматизировать?
Какие-либо готовые решения, или я должен закончить свои собственные собственные скрипты?
Спасибо!