Я не такой опытный, но я работал над некоторыми крупными проектами Java EE (используя maven2) с совершенно разными способами для установки / доставки на разных платформах.
1) Одним из них былоиспользуйте снимки для разработки, а затем сделайте релиз maven из компонентов и основных веб-приложений.Таким образом, поставка:
- файлы войны / уха
- Элемент списка
- файлы свойств
- файлы sgdb
- некоторые другие
И команды будут использовать эти файлы для размещения новых версий приложений на разных платформах.Я думаю, что этот процесс является строгим и позволяет вам всегда легко сохранять различные конфигурации, переданные в производство, но он не очень гибкий, процесс немного тяжелый и заставляет нас иногда делать некоторые грязные вещи, такие как переопределение класса войны, чтобыпатч регрессии ... Это веб-сайт электронной коммерции с 10 миллионами уникальных посетителей в месяц и доступностью 99,89%.
2) Еще один вариант, который я видел, это проверить источники на каждой платформе и затем установить артефакты снимковв локальном хранилище.Затем сервер приложений будет использовать эти снимки папки .m2.Реального процесса доставки не существует, поскольку чтобы запустить новую версию в производство, нам просто нужно обновить исходные коды компонентов / веб-приложений, выполнить maven clean и перезапустить сервер приложений.Я думаю, что это более гибко, но я вижу некоторые недостатки, и этот подход кажется мне опасным.Этот сайт имеет фронт-офис, я не знаю номера, но он намного меньше, чем первый.Он также имеет большой резервный офис, доступный большинству сотрудников компании из 130 000 человек.
Я полагаю, что в зависимости от веб-сайта, его доступности для публики и требуемой доступности, мы должны адаптировать стратегию доставки к потребностям..
Я здесь не для того, чтобы спросить, какое решение является лучшим, но задаюсь вопросом, видели ли вы разные вещи, и какую стратегию вы бы использовали в этом случае?