Похоже, что в Java-пространстве существует текущая тенденция к отказу от развертывания веб-приложений Java в контейнере сервлетов Java (или сервере приложений) в форме файла войны (или файла уха) и вместо этого упакуйте приложение в виде исполняемого файла jar с встроенный сервлет / HTTP-сервер, например причал. И я имею в виду, что это больше связано с тем, как новые фреймворки влияют на разработку и развертывание новых приложений, а не на то, как приложения доставляются конечным пользователям (потому что, например, я понимаю, почему Jenkins использует встроенный контейнер, который очень легко взять и уйти. ). Примеры фреймворков, использующих вариант исполняемого файла jar: Dropwizard , Spring Boot и Play (ну, он не работает в контейнере сервлетов, но встроен HTTP-сервер).
У меня вопрос, исходя из среды, в которой мы развернули наши (до этого момента в основном Struts2) приложения на одном сервере приложений tomcat, какие изменения, передовые практики или соображения необходимо внести, если мы планируем использовать подход со встроенным контейнером. ? В настоящее время у нас есть около 10 собственных приложений, работающих на одном сервере tomcat, и для этих небольших приложений удобна возможность совместного использования ресурсов и управления на одном сервере. Наши приложения не предназначены для распространения среди конечных пользователей для работы в их среде. Однако, если мы решим использовать новую платформу Java, должен ли этот подход измениться? Стимулируется ли переход на исполняемые файлы jar к расширению использования облачных развертываний (например, Heroku)?
Если у вас есть опыт управления несколькими приложениями в стиле развертывания Play по сравнению с традиционным развертыванием военных файлов на одном сервере приложений, поделитесь своим мнением.