Как организовать поэтапное развертывание веб-приложения Java? - PullRequest
2 голосов
/ 11 июля 2011

У нас есть веб-приложение на Java и ряд разработчиков, работающих с ним.Каждый разработчик работает со своей собственной функцией в своей собственной ветке.Когда функция будет готова - мы хотим просмотреть ее и визуально протестировать (конечно, после того, как пройдены все модульные и интеграционные тесты).Мы хотим автоматизировать этот процесс развертывания.В идеале, мы бы хотели, чтобы наши разработчики нажимали где-то одну кнопку, чтобы приложение развернулось в http://example.com/staging/branches/foo (где branches/foo - путь разработчика в репозитории SVN).

Затем развертывание проверяетсяв основном спонсоры проекта), объединены в /trunk и удалены с промежуточного сервера.

Я думаю, что я не первый, кому нужно реализовать такой сценарий.Какие инструменты и технологии могут мне помочь?

Ответы [ 2 ]

1 голос
/ 11 июля 2011

В основном вы можете использовать Hudson / Jenkins.

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

Как сказал @pap, Hudson и другое ПО для сборки CI тестируют (если у вас есть какие-либо тесты в нем) и разворачивают веб-приложения,вам просто нужно настроить эту процедуру.Надеюсь, что ссылка полезна.

1 голос
/ 11 июля 2011

Как правило, я бы использовал сценическое окружение для тестирования «ствола» (т. Е. Все отдельные ветви для выпуска, объединенного вместе). Несколько причин для этого:

  • Заинтересованные стороны и спонсоры обычно не имеют времени для тестирования отдельных веток. Они хотят протестировать весь выпуск. Кроме того, люди, не входящие в непосредственную команду, могут запутаться, отслеживая разные, меняющиеся URL-адреса и понимая, почему функция X работает с одним URL-адресом, а не с другим. Всегда будьте проще для ваших спонсоров.
  • Это имеет тенденцию становиться очень грязным и дорогостоящим, чтобы поддерживать более одного экземпляра сторонних зависимостей (базы данных, поставщики услуг и т. Д.) Для надлежащего этапа тестирования. Помните, что вы хотите поддерживать реалистичные тестовые данные в любое время.
  • До тех пор, пока вы не объедините все отдельные ветви для выпуска, будут возникать коллизии и ошибки интеграции, которые будут пропущены. Предположим, что автоматизированные интеграционные тесты не будут идеальными.

Несмотря на это, существует множество хороших инструментов для автоматической сборки / развертывания. Ничего не зная о настройке сборки и среде развертывания, стандартная настройка может состоять из сервера сборки, maven и tomcat. Сервер сборки будет выполнять сборку и развертывать полученное приложение на тестовом сервере. Если вы используете maven и tomcat, для этой задачи доступен плагин (http://mojo.codehaus.org/tomcat-maven-plugin/introduction.html). Существует также множество хороших серверов сборки с хорошей поддержкой maven. Teamcity is популярны, как и Гудзоновский CI .

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