У Java-просторі існує сучасна тенденція відходити від розгортання веб-додатків Java у контейнері Java-сервлетів (або сервері додатків) у формі файлу війни (або вушного файлу) і замість цього пакувати програму як виконувану банку з вбудований сервлет / HTTP-сервер, як причал. І я маю на увазі це тим більше у тому, як новіші фреймворки впливають на те, як розробляються та розгортаються нові програми, а не на те, як програми доставляються кінцевим споживачам (адже, наприклад, я зрозумів, чому Дженкінс використовує вбудований контейнер, дуже легко захопити та перейти ). Приклади фреймворків, що приймають виконуваний параметр jar: Dropwizard , Spring Boot і Play (ну, він не працює на контейнері сервлетів, але HTTP-сервер вбудований).
Моє питання полягає в тому, що ми надходимо із середовища, де ми розгорнули наші (до цього моменту переважно Struts2) додатки на одному сервері додатків tomcat, які зміни, найкращі практики чи міркування потрібно зробити, якщо ми плануємо використовувати вбудований підхід до контейнерів ? В даний час у нас близько 10 доморощених додатків, що працюють на одному сервері tomcat, і для цих невеликих додатків приємна можливість спільного використання ресурсів та управління ними на одному сервері. Наші програми не призначені для розповсюдження серед кінцевих користувачів для запуску в їх середовищі. Однак, рухаючись вперед, якщо ми вирішимо використати новішу структуру Java, чи повинен цей підхід змінитися? Чи сприяє перехід до виконуваних банок все більшим використанням хмарних розгортань (наприклад, Heroku)?
Якщо у вас був досвід управління кількома програмами в стилі розгортання Play у порівнянні з традиційним розгортанням файлів війни на одному сервері додатків, поділіться своєю думкою.