2010-10-05 5 views
3

Что вы используете для автоматического развертывания приложений для различных видов серверных приложений (веб, сокет, демон), которые используют различные технологии (разные базы данных, языки и т. Д.)?Автоматическое развертывание Agnostic

Здесь мы используем Python, Java и Ruby и можем использовать и другие языки в будущем.

Обновление: Я закончил тем, что использовал Puppet для управления всеми настройками сервера, настройками и развертыванием. Чтобы запустить развертывание новых версий, я закончил использование сценариев Python Fabric.

+0

Я хотел бы видеть ответы только одним приложением. Я знаю, что нет серебряной пули, но по крайней мере одно развертывающее приложение, которое работает для Python, Ruby и Java. – hgf

ответ

3

Я использую Puppet для некоторых развертываний/начальной конфигурации сервера. Maven и Ant для Java-проектов.

2

Вы можете использовать Ant, Makefile или пакетный скрипт. Или их комбинация.

1

Мы используем Maven и при необходимости вытаскиваем к ant-plugin. В свою очередь ant-plugin очень иногда вызывает какой-то родной язык сценариев/приложение/упаковщик/независимо от того, но мы находим, что со временем мы обычно можем найти плагин/задачу Maven или ANT, чтобы сделать трюк.

Возможно, вы захотите посмотреть Непрерывное развертывание, это довольно горячая тема в пространстве сборки и CI прямо сейчас.

1

Для Python вы можете использовать Fabric или Paver Для Ruby есть capistrano и 'vlad the deployer' Для Java это Ant.

Для проектов PHP/Python я также использую Peritor Webistrano, опрятный интерфейс для capistrano. Это связано с изменением нескольких рецептов по умолчанию, чтобы удалить специфические для рельсов вещи, но это стоит того, как только вы правильно его настроите.

1

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

1

вы можете использовать maven, ant, плющ вместе с hudson для проектов java.

1

Мы используем Ant или Maven для различных проектов, которые мы имеем в доме (в зависимости от необходимости и того, насколько старый проект тоже ...). Мы склонны использовать Jenkins (ранее известный как Hudson) как наш инструмент для сборки и развертывания.

И затем мы призываем разработчиков писать код, который не является жестким кодом для DB, URL и т. Д. Мы пытаемся абстрагироваться через контейнер (то есть источники данных, чистые JMS API и т. Д.) При работе на сервере приложений. И мы склонны к абстрактным спецификациям среды через файлы свойств, которые мы просматриваем во время выполнения. Путь к файлу свойств должен быть определен как переменная на сервере. Таким образом, мы можем быть достаточно гибкими, чтобы создавать код один раз и переносить его во все наши среды.

2

Перейти на KWateeSDCM. Он поставляется с простым графическим интерфейсом в Интернете и не требует скрытых сценариев и прекрасно сочетается с вашей цепочкой построения через REST API.

Смежные вопросы