Встроенные серверы приложений в Sonatype Nexus, Jenkins и Collabnet Subversion Edge

Мне нужно настроить среду разработки сборки, которая включает в себя следующее

  • Сонатайп Нексус
  • Дженкинс
  • Коллабнет Subversion

Мое приложение работает на сервере приложений GlassFish. Я заметил, что все три вышеупомянутых инструмента поставляются со встроенными серверами приложений. Я загрузил каждый и попробовал их, но я немного опасаюсь того факта, что теперь у меня работают 4 сервера приложений.

Я заметил, что каждый из них также предоставляет вариант файла войны, который можно просто перенести на существующий сервер приложений. Я думаю, что с «Collabnet Subversion Edge» у меня, вероятно, нет другого варианта, поскольку он не поставляется с опцией военной установки. Два других могут быть загружены как файлы войны.

Каковы недостатки запуска Nexus и Jenkins на одном сервере приложений. Есть ли недостатки? В настоящее время я изучаю, как его настроить. Похоже, что его можно настроить только после того, как сервер приложений взорвал/разархивировал военные файлы.

Я также не хочу перебрасывать эти военные файлы в существующий экземпляр Glassfish, поскольку он используется для формальных тестов. Я думаю, может быть, мне следует установить Tomcat и использовать его для этих инструментов. Вы бы порекомендовали мне придерживаться встроенных серверов или просто использовать один сервер приложений и при необходимости выделять больше памяти? Какие-либо из этих инструментов лучше работают со встроенными серверами или это не имеет никакого значения?

Спасибо


person ziggy    schedule 06.02.2012    source источник


Ответы (3)


Hudson/Jenkins, а также Nexus могут работать как военные файлы в Tomcat или Glassfish. Однако для обоих из них предпочтительным и наилучшим поддерживаемым вариантом является использование связанного сервера приложений.

Nexus использует Jetty для внутренних целей. Hudson 3 (бета-версия Eclipse) тоже. Старый Хадсон и Дженкинс оба используют внутри себя винстоун. Оба они являются ОЧЕНЬ легкими контейнерами, и накладные расходы на их параллельную работу должны быть незначительными.

Вы получите гораздо большее влияние от того, что на самом деле делают эти серверы (выполнение сборок, обслуживание артефактов и т. д.).

Поэтому, чтобы облегчить вашу жизнь при установке, обновлении, а также поддержке во время выполнения, я бы посоветовал придерживаться встроенных серверов приложений по умолчанию.

person Manfred Moser    schedule 07.02.2012

Все 3 инструмента могут совместно использовать один экземпляр Glassfish (или аналогичный сервер приложений). Проблема в том, что вы берете на себя ответственность за настройку разумных параметров обработки памяти. Если одно приложение вызывает исключение Java OutOfMemory, потенциально затронуты все приложения :-(

Если вы проверите сценарии запуска для различных приложений, вы обнаружите, что каждое из них устанавливает разные значения по умолчанию для настроек Java-кучи и permgen.

Я рекомендую изолировать каждое приложение и использовать встроенные серверы приложений. Jenkins и Nexus довольно легкие (я не использую Collabnet).

person Mark O'Connor    schedule 06.02.2012

Я не использовал Jenkins, но я видел, как nexus и hudson работали в одном экземпляре tomcat, работающем как отдельные войны. Для Nexus единственная разница между военной версией и автономной версией заключается в том, что автономная версия включает в себя причал, так что вы можете запускать ее автономно... но это всего лишь оболочка. Фактическая работа нексуса такая же.

Я бы предположил, что то же самое верно и для Дженкинса. Так что нет смысла запускать 4 сервера, если можно запустить 4 экземпляра на одном сервере. Должно работать нормально, так как все они будут иметь разные веб-контексты.

person Michael    schedule 06.02.2012