Поэтапное развертывание веб-приложений Java

На Windows Vista, если Вы поднимаете Меню "Пуск" и ищете программу, нажимая Ctrl + Сдвиг + , Входят запустит выбранную программу как Администратора. Таким образом открыть командную строку Administrator:

Windows ключ, введите "cmd", Ctrl + Сдвиг + Вводят

6
задан tshepang 1 May 2014 в 00:54
поделиться

7 ответов

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

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

Второй был более спорным. Весь наш html был развернут как отдельные файлы на сервере. Войны не было. Поэтому, когда возникли обстоятельства, что нам нужно было быстро что-то изменить текстовое, мы могли это сделать. Если требовалось изменение java, мы всегда выполняли ПОЛНУЮ сборку и развертывание.

Я бы не рекомендовал это, но для нашей ситуации это было хорошо.

Смысл WAR в том, чтобы все было развернуто одновременно. Если вы используете WAR, это означает, что вы хотите, чтобы он был развернут сразу.

Одно из предложений - не делать такие исправления так часто (раз в неделю?). Тогда у тебя не будет такой боли.

1
ответ дан 17 December 2019 в 20:32
поделиться

Hard to say. You can ofcourse replace single class files in an exploded webapp, but this is generally a bad idea and you don't see many people doing this.

The reason is that when you make small changes it becomes harder and harder to detect differences between production and development. The chances of you sending a wrong classfile and breaking the production server increases over time.

When you say text changes, isn't it an idea to keep the text resources seperate from the war file? That way, not only developers but maybe even the customer can easily add/change translations.

To the customer it's important, but technically it's silly to do a 80MB deploy over a slow line to fix a small typo.

You can also try to look at your build/delivery cycle and increase testing efforts to prevent these small changes.

Hope this helps.

1
ответ дан 17 December 2019 в 20:32
поделиться

Вы можете развернуть главную войну там, где запущенные серверы могут получить к ней доступ, и вместо развертывания файлов войны на отдельные серверы вы можете использовать rsync и perl, чтобы определить, есть ли изменения в каких-либо файлах в главной войне распределите их по серверам и выполните перезапуски.

0
ответ дан 17 December 2019 в 20:32
поделиться

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

0
ответ дан 17 December 2019 в 20:32
поделиться

Я не думаю, что есть простой ответ на этот. T

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

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

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

Альтернативой является разделение вашего приложения с точки зрения функциональности и размещение отдельных функций на разных серверах, например:

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

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

Альтернатива заключается в разделении вашего приложения с точки зрения функциональности и размещении отдельных функций на различных серверах, например:

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

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

Альтернатива заключается в разделении вашего приложения с точки зрения функциональности и размещении отдельных функций на различных серверах, например:

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

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

Альтернативой является разделение вашего приложения с точки зрения функциональности и размещение отдельных функций на различные серверы, например:

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

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

Альтернативой является разделение вашего приложения с точки зрения функциональности и размещение отдельных функций на различные серверы, например:

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

  • Учетные записи клиентов - Сервер A
  • Поиск - Сервер B
  • Онлайн-бронирование - Сервер C
  • Платежные услуги - Сервер D

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

0
ответ дан 17 December 2019 в 20:32
поделиться

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

Вы можете автоматизировать развертывание в один клик с помощью putty / plink [если вы используете Windows], создав простой сценарий на локальном компьютере, а другой - на удаленном.

На данный момент у меня есть РАЗРАБОТКА СВН и ЖИВАЯ СВН. Сборка ANT объединяет DEV в LIVE и повторную фиксацию обратно в репозиторий LIVE. На этом этапе удаленный сервер может выполнить SVN UP, и вы автоматически получите запрошенный файл.

Вы можете дополнительно улучшить скрипт обновления, чтобы перезапустить сервер в случае изменения некоторых классов и не перезапускаться в случае обновления скриптов / JSP.

Таким образом, у вас также будет возможность вернуться к предыдущей версии, чтобы быть уверенным, что у вас всегда есть работающее веб-приложение.

Этот инструмент весьма полезен для улучшения процесса слияния SVN. : http://www.orcaware.com/svn/wiki/Svnmerge.py

0
ответ дан 17 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: