Я разрабатывал рабочий процесс для практического использования автоматизированного цикла непрерывного развертывания для проекта PHP. я "Мне нравится некоторая обратная связь о возможных процессах или технических узких местах в этом рабочем процессе, предложениях по улучшению и идеях о том, как лучше автоматизировать и увеличить простоту использования для моей команды.
Основные компоненты:
-
HudsonCI-сервер -
GitиGitHub -
PHPUnitмодульные тесты -
Selenium RC -
Sauce OnDemandдля автоматического, кросс-браузерного тестирования облаков с помощьюSelenium RC -
Puppetдля автоматизации развертывания тестовых серверов -
Gerritдля просмотра кода Git -
Gerrit TriggerдляHudson
EDIT. Я изменил графику рабочего процесса, чтобы принять во внимание вклады в ircmaxwell: удаление расширения PHPUnit для Selenium RC и выполнение этих тестов только как часть этапа контроля качества; добавление стадии КК; перемещение тестирования пользовательского интерфейса после проверки кода, но до слияния; перемещение сливается после этапа контроля качества; перемещение развертывания после слияния.
Этот графический документ описывает процесс. Мои вопросы/мысли/проблемы следуют.

Мои проблемы/мысли/вопросы:
-
Общая сложность с использованием этой системы.
-
Время участия.
-
Сложность с использованием
Gerrit. -
Сложность с использованием
Puppet. -
Мы будем развертывать в экземплярах
Amazon EC2позже. Если мы собираемся настроить пакетыDebianсPuppetи развернем теперь наLinodeсрезы, существует ли возможность для рабочего развертывания наLinodeразбиться наEC2? Должны ли мы вместо этого делать наши сборки и развертывания наEC2из get-go? -
Другой вопрос re:
EC2иPuppet. Мы также рассматриваем использование Scalr в качестве решения. Будет ли это иметь смысл избегать накладных расходовPuppetтолько для этого и вместо этого инвестировать в Scalr? У меня есть вторичная (га!) Проблема здесь о стоимости; в тегахSeleniumне должно быть , что часто, что экземплярыEC2build будут работать 24/7, но для чего-то вроде пятиминутной сборки, заплатив за часEC2использование кажется немного большим. -
Возможные узкие места процесса при слияниях.
-
Можно ли переместить "A"?
Кредиты. Части этого рабочего процесса вдохновлены Digg awesome post при непрерывном развертывании. График рабочего процесса выше вдохновленный проектом ОС Android.