В настоящее время в моей организации установлено большое количество внутренних приложений Spring MVC, развернутых на сервере Tomcat. Мы оптимизировали потребление памяти за счет объединения функциональности многократного использования в их собственные библиотеки JAR и использования единого замороженного набора библиотек с открытым исходным кодом (все они развернуты только один раз, а не внутри каждой WAR). Этот подход был очень успешным, но у него есть некоторые известные проблемы, основными из которых являются:
- Время запуска Tomcat (легко 10 минут, учитывая, сколько у нас приложений - и самое большее, что должно быть приемлемым - 15-60 секунд).
- Невозможность использовать Maven (так как он принесет последнюю версию библиотек вместо тщательно отобранного набора версий).
- Застревание в течение многих лет с набором версии библиотек с открытым исходным кодом и, следовательно, не извлекают выгоду из исправлений безопасности.
Для решения этих проблем мы склонны к переходу на Spring Boot (чтобы каждое приложение могло быть включено / выключено для каждого приложения), но если мы развернем 100 приложений ... мы не хотим развертывать 100 экземпляров каждой библиотеки с открытым исходным кодом, и, если возможно, мы хотим развернуть только одну версию наших библиотечных приложений.
ВОПРОСЫ:
Какова наилучшая практика для достижения этой цели?
Существуют ли серверы / контейнеры / все, что поможет нам достичь его? (Я гуглил и гуглил, но хотя я видел много информации, много «контейнеров», но ... ничего не понятно, большинство уроков предполагают, что вы уже много знаете, и я не нашел ни одного высокоуровневого обзора, чтобы помочь выбрать направление)
Любая помощь будет приветствоваться.