Я разрабатываю рабочий процесс для отработки в основном автоматизированного цикла непрерывного развертывания для проекта PHP. ] Я хотел бы получить отзывы о возможных узких местах процесса или технических узких местах в этом рабочем процессе, предложения по улучшению, и идеи о том, как лучше автоматизировать и упростить использование моей команды.
Hudson
CI-сервер Git
и GitHub
PHPUnit
модульные тесты Selenium RC
Sauce OnDemand
для автоматического кроссбраузерного облачного тестирования с Selenium RC
Puppet
для автоматизации развертывания тестовых серверов Gerrit
для проверки кода Git Gerrit Trigger
для Hudson
EDIT : я изменил графику рабочего процесса, чтобы учесть вклад ircmaxwell, путем удаления PHPUnit Расширение
для Selenium RC
и запуск этих тестов только как часть этапа контроля качества; добавление стадии контроля качества; перемещение тестирования пользовательского интерфейса после проверки кода, но до слияния; перемещение слияний после стадии QC; перемещение развертывания после слияния.
Этот график рабочего процесса описывает процесс. Следующие мои вопросы / мысли / проблемы.
Общая сложность использования этой системы.
Затраты времени.
Трудности с использованием Геррита
.
Проблемы с использованием Puppet
.
Мы будем развертывать инстансы Amazon EC2
позже. Если мы собираемся настроить пакеты Debian
с Puppet
и развернуть их на слайсах Linode
сейчас, есть ли потенциал для рабочего развертывания на Linode
на EC2
? Должны ли мы вместо этого делать наши сборки и развертывания на EC2
с самого начала?
Другой вопрос относительно: EC2
и Марионетка
. Мы также рассматриваем возможность использования Scalr в качестве решения. Имеет ли смысл избегать накладных расходов на Puppet
только для этого и вместо этого инвестировать в Scalr? У меня вторичное (ха!) Беспокойство по поводу стоимости; тесты Selenium
не должны выполняться , что часто экземпляры сборки EC2
будут работать 24/7, но для чего-то вроде пятиминутной сборки нужно платить в течение часа использования EC2
кажется слишком большим.
Возможные узкие места процесса при слияниях.
Можно ли переместить «A»?
Кредиты : Части этого рабочего процесса , вдохновленный потрясающим сообщением Digg о непрерывном развертывании . Приведенный выше график рабочего процесса основан на проекте Android OS .