|
|
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
По аналогии с обновлением десктопного приложения специальным процессом, хотелось бы узнать, как сделать такое же с ear/war как бы изнутри самого приложения (задеплоили и оно само лезет на сервер и себя обновляет)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 16:54 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Браво, аплодирую стоя за вопрос :) авторзадеплоили и оно само лезет на сервер и себя обновляет А задеплоили куда? Не на сервер, а себе в карман? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 17:07 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Ну например вы задеплоили в томкат и что дальше, ну допустим шедулером вы узнали что на сервере релизов есть новая версия и себе ее скачали куда-нибудь, а что дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 17:11 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Ясно. Нет, этот процесс так не работает, нужна инициатива с другой стороны. Как только вы собрали новую версию, нужно задеплоить ее на томкат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 17:15 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
no56892Ну например вы задеплоили в томкат и что дальше, ну допустим шедулером вы узнали что на сервере релизов есть новая версия и себе ее скачали куда-нибудь, а что дальше? загружаешь на сервер ч tomcat , шедулером проверяешь наличие новой даты у war, перегружешь томкат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 18:27 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
перед перезапуском - удалить папку с приложением это если одно приложение на сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 18:29 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
В tomcat7+ сделано параллельное развёртывание - не надо ничего удалять, достаточно "правильно" именовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 18:49 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
no56892По аналогии с обновлением десктопного приложения специальным процессом, хотелось бы узнать, как сделать такое же с ear/war как бы изнутри самого приложения (задеплоили и оно само лезет на сервер и себя обновляет)? А нахрена оно нужно? Обновление десктопных приложений нужно потому что пользователей много. А сервер один обслуживает много пользователей. Поэтому вопрос более чем странный. Можно Maven-ом деплоить и\или через Continous Integration сервер. Если это кластер и серверов много, то у кластеров есть такое понятие как farming. В инструментах кластеризации надо смотреть как оно реализовано. Апдейт сервера нужно всегда запускать под надзором. У сервера он всегда сложнее (сессии, база и пр.). Поэтому производиться всегда в ручную по кнопке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 18:54 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВ tomcat7+ сделано параллельное развёртывание - не надо ничего удалять, достаточно "правильно" именовать. это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:05 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Ну наверноя не правильно выразился, фактически надо обновлять не все приложение а отдельные классы. Тоесть для пользователей это должно быть прозрачно. Например вот есть законодательство какое-то, оно часто меняется, и здорово если бы админ зашел в веб админку приложения посмотрел что есть новые версии, нажал обновить - с сервера разработчика вытаскиваются классы/изменения бд, накатываются и у всех все хорошо. Так как это изменения пользователей не всех затронет, то те котго затрагивает - ну табличка подождите ваша операция требует модули которые сейчас обновляются и тд, тоесть все приложение ear физически не передеплоивается, ну не знаю как сформулировать, кароче выделить наиболее частые изменяемые части, сделать их как модули, и что бы через админку их обновлять/удалять/новые заливать. Это классы + изменения бд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:13 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
no56892Ну наверноя не правильно выразился, фактически надо обновлять не все приложение а отдельные классы.Распаковываем веб-приложение в каталог, создаём описатель контекста. После обновления "отдельных классов" меняем тайм-штамп описателя - томкат перезапустит приложение, если это не запрещено настройками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:16 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
вадяэто как?В строгом соответствии с документацией . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:18 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
no56892Это классы + изменения бд .Выделено мною. Забудьте про свою "химию" - если требуется менять базу, то надо остановить использующие её приложения, сделать бэкап, накатить изменения и запустить новую версию приложений. P.S. Нет, джедаю могут и налету, но джедаи не стали бы и вопрос задавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:21 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Нет, для модулей отдельная база, которую можно залочить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:23 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovвадяэто как?В строгом соответствии с документацией . пример использования можешь привести? я не совсем разобрался в доках... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:39 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Или я вас не понимаю или вы меня или всё вместе ... Если приложение меняет базу, то я не буду ничего делать на лету: 1. Получить уведомление о выходе новой версии; 2. Забрать новую версию; 3. Прочитать сопроводительную документацию; 4. Развернуть всё на стенде; 5. Отработать на стенде процедуру обновления. 6. Выполнить п.п. 3-5, даже если приложение не меняет базу. Далее: 1. Выбрать время и оповестить пользователей о предстоящих работах; 2. Остановить систему, выполнить архивацию; 3. Обновить базу, обновить приложение; 4. Проверить, что всё работает; 5. Запустить систему и вывесить объявление об окончании работ. P.S. Нет, джедаи могут и быстрее ... P.P.S. Нет, в прошлом мне и самому приходилось накатывать срочные фиксы посреди рабочего дня, но: 1. До этого я много тренировался на стенде и многие вещи были отлажены применительно именно к нам, а не к сферическим коням разработчиков; 2. Я до сих пор считаю такие ситуации аварийными, а ответственность за создание таких аварийных ситуаций возлагаю на разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:40 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
вадяпример использования можешь привести?В строгом соответствии с докой Вместо ROOT.war развёртываем ROOT##000.war. Когда мы развернём ROOT##001.war, котяра воспримет это как новую версию и сделает следующее: 1. Развернёт новую версию; 2. Перестанет направлять входящие запросы на старую версию; 3. Когда старая версия приложения завершит обработку всех запросов - "свернёт" war старой версии, после чего этот файл можно будет спокойно удалить. До появления параллельного развёртывания можно было делать так: 1. Развёртываем приложение (в виде war или католожной структуры) вне webapps; 2. Создаём описатель контекста; 3. Развёртываем новую версию в виде другого war или другой каталожной структуры; 4. Редактируем описатель контекста указывая путь к новой версии и сохраняем. 5. Котяра, обнаружив изменение описателя контекста начинает "свёртывать" старую версию, после чего стартует новую. Параллельное развёртывание оптимизирует две вещи: 1. Фиксирует схему именования, что позволяет не велосипедить; 2. Позволяет плавно перевести обработку запросов со старой версии приложения на новую. Разумеется, если в приложении случится какой-то раскосяк из-за параллельной работы двух версий в одной JVM - это будет проблемой разработчиков приложения, а не разработчиков Tomcat. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 19:54 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov1. Развернёт новую версию; 2. Перестанет направлять входящие запросы на старую версию; 3. Когда старая версия приложения завершит обработку всех запросов - "свернёт" war старой версии, после чего этот файл можно будет спокойно удалить. Не совсем так. Старые сессии обслуживаются старой версией, а новые - новой. Когда активных сессий на старой версии не станет, можно смело удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 20:00 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
но можно нарваться на одновременное использование старой и новой версии? со всеми вытекающими последствиями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 20:09 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСтарые сессии обслуживаются старой версией, а новые - новой. Когда активных сессий на старой версии не станет, можно смело удалять.Именно это я и хотел сказать, но, пожалуй, коряво выразился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 20:18 |
|
||
|
Автоматическое обновление war/ear
|
|||
|---|---|---|---|
|
#18+
вадяно можно нарваться на одновременное использование старой и новой версии? со всеми вытекающими последствиями?Не хотите рисковать или/и делать аудит/тестирование - используйте развёртывание вне webapps. Минимизация даунтайма достигается за счёт развёртывания приложения "в каталог". Не по стандарту, но работает. Вероятно - везде работает. Второй способ ускорения развёртывание - вынесение общих (как правило - сторонних) библиотек в ${catalina.base}/lib. Третий - аккуратное написание приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2015, 20:23 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39055624&tid=2124918]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 316ms |

| 0 / 0 |
