Назад | Перейти на главную страницу

Удаленное параллельное развертывание в Tomcat

Мы развертываем приложение в нескольких средах Jelastic Tomcat с помощью Maven на сервере сборки TeamCity. Это хорошо работает и работает уже довольно давно.

Теперь мы хотим приблизиться к развертыванию с нулевым временем простоя и хотели бы найти простой способ минимизировать или исключить время простоя. Функциональность Tomcat Parallel Deploy кажется подходящей.

Однако похоже, что подключаемый модуль Jelastic Maven не поддерживает параллельное развертывание или нестандартные (т.е. <artifact-name>##<artifact-version>.war) имена архивов. Плагин tomcat-maven не работает с нашим прокси-сервером / балансировщиком нагрузки Nginx, утверждая, что запрос (PUT) слишком велик. 100 МБ не должно быть проблемой, верно ...? :)

Когда я пытаюсь развернуть с помощью Postman, я также получаю сообщение об ошибке, что контекст / уже используется. Именно поэтому я хочу параллельное развертывание ...

Я пробовал все это локально, и это работает как шарм, но удаленный - это еще одна проблема, кому-нибудь удалось добиться такого рода настройки или я чего-то упустил?

Вы правы, Jelastic Maven на данный момент не поддерживает параллельное развертывание в Tomcat. Запрос функции был добавлен в список улучшений. В качестве альтернативы на данный момент вы можете развернуть военный архив через прямое SSH подключение к контейнеру. Или вы можете играть с своп домен - создать новую среду, развернуть новую версию в этом новом окружении, протестировать и, если все в порядке, поменять домен между старым и новым окружением.

В дополнение к этому мы собираемся выпустить Traffic Distributor - специальный модуль для развертывания сложных приложений с нулевым временем простоя. Это своего рода балансировщик нагрузки, который позволяет перенаправлять часть трафика или весь его между средами с помощью перетаскивания или вызова API. Он станет достоянием общественности через месяц.

Существует также другая альтернатива, если вы используете общедоступный IP-адрес на балансировщике нагрузки (рекомендуется).

В этом случае вы можете создать совершенно новую / отдельную среду с той же топологией, развернуть там обновленный код, а затем после тестирования переместить публичный IP со старого балансировщика нагрузки на новый. Это очень быстро (всего несколько отброшенных пакетов).

Этот рабочий процесс очень хорошо работает для сине-зеленое развертывание.