Каковы хорошие стратегии развертывания и выпуска для общей среды выполнения? - PullRequest
1 голос
/ 27 сентября 2010

Status Quo

Для нашего клиента мы разрабатываем некоторые библиотеки и приложения, которые запускаются как «модули» в более крупном приложении, которое поставляется как внутреннее приложение Java Web Start.Заказчик поддерживает инфраструктуру, на которой запущено это приложение.«Серверная часть» состоит из нескольких веб-сервисов, основанных на Axis2.Обе части развертываются в одном экземпляре Tomcat в виде двух отдельных веб-приложений.

Когда мы выпускаем новые версии наших артефактов, мы просто создаем необходимые файлы JAR (например, ourapp-client.jar и ourapp-server).jar) и отправьте их нашему клиенту, который, в свою очередь, просто уронит их в соответствующие места и - при необходимости - перезапустит сервер Tomcat.

Goals

В настоящее время мы занимаемся Maven-izingвсе наши проекты и в будущем мы также хотим делать наши релизы "Maven way".Основная цель состоит в том, чтобы автоматизировать процесс выпуска и развертывания на нашей стороне и сделать его менее подверженным ошибкам и более надежным и удобным на стороне клиента.

Основная проблема

Хитрость заключается в том, что нашазаказчик использует те же веб-приложения Tomcat (Axis2 для «серверной части» и приложение Web Start) для включения в приложение своих собственных модулей.Поэтому мы не можем использовать очевидное решение и просто предоставить новое веб-приложение (WAR), которое просто развертывается на сервере.Вот почему в настоящее время мы доставляем отдельные JAR-файлы, которые «вручную» помещаются в нужное место.

Какие стратегии вы обычно используете для доставки ваших продуктов покупателю?Кто-нибудь сталкивался с подобной ситуацией (т. Е. Совместно используемой средой выполнения для сторонних и самостоятельно разработанных приложений)?

1 Ответ

0 голосов
/ 27 сентября 2010

Основная цель - автоматизировать процесс выпуска и развертывания на нашей стороне и сделать его менее подверженным ошибкам, более надежным и удобным на стороне клиента.

Не уверен, что вы подразумеваете под в точности"процессом выпуска и развертывания" (в maven lingua речь идет об автоматизации задач SCM и развертывании артефактов в удаленном хранилище). Если речь идет о развертывании на производственных машинах , я лично не думаю, что это действительно работа для Maven (и мы не используем Maven для этого). Может быть, посмотрите на специальные решения, такие как ControlTier , SmartFrog , Кукольный , Шеф-повар и т. Д.

Какие стратегии вы обычно используете для доставки ваших продуктов покупателю? Кто-нибудь имел опыт работы с подобной ситуацией (то есть совместно используемая среда выполнения для сторонних и самостоятельно разработанных приложений)?

Мы доставляем вещи, которые можем контролировать. Если клиент хочет включить свои собственные биты в данное приложение, мы сделаем необходимые части доступными, но упаковка, вероятно, будет его ответственностью.

Смежные вопросы

...