Мы развертываем приложение в нескольких средах 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 со старого балансировщика нагрузки на новый. Это очень быстро (всего несколько отброшенных пакетов).
Этот рабочий процесс очень хорошо работает для сине-зеленое развертывание.