Как вы обновляете / обновляете веб-проект Java на своих клиентах? - PullRequest
3 голосов
/ 16 июля 2010

Допустим, мы разрабатываем новое клиент-серверное веб-приложение Java. Мы наконец выпустили версию 1.0 и продали немногим клиентам. Клиенты самостоятельно развернули наш проект на своих серверах. Через некоторое время мы обнаружили несколько ошибок и хотели бы обновить наше приложение.

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

  • копирование новой версии проекта
  • развертывание старого релиза
  • развертывание новой версии
  • обновление БД

На данный момент мы имеем vpn для наших клиентов и делаем все вышеописанные шаги вручную. Можно ли синхронизировать версию наших клиентов с нашим репозиторием?

Ответы [ 3 ]

1 голос
/ 16 июля 2010

Для части DB вы можете использовать liquibase . Liquibase - это плагин maven для управления миграцией базы данных (обновление базы данных до более поздних версий). Один из способов сделать это с liquibase - развернуть специальный сервлет, который будет запрашивать схему-таблицу , которая содержит текущую версию БД.

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

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

1 голос
/ 16 июля 2010

Технология, о которой вы говорите, является установщиком. Существуют рамки установки приложений.

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

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

0 голосов
/ 16 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...