2016-02-26 2 views
0

Мы - относительно неопытная команда разработчиков, пытающаяся сделать что-то «правильным путем». Мы используем Github вместе с AWS и CodeDeploy для нескольких веб-приложений на основе PHP. Мы используем автоматическое развертывание Github с CodeDeploy при обновлении основной ветви.Github to AWS EC2 с использованием лучшей практики CodeDeploy

У нас есть два веб-сервера EC2 производства в отдельных AZ вместе с одним промежуточным сервером EC2.

В настоящее время она работает следующим образом:

Мы пишем код в отрасли, мы помещаем на GitHub, мы сливаемся в «хозяина», который затем пинает CodeDeploy написать на наш перевалочный сервер, где мы можем проверить его. Как только мы протестировали его, мы вручную запускаем CodeDeploy для записи на производство (с тем же идентификатором фиксации).

Проблема заключается в том, что если тестирование вызывает проблемы, и у нас есть еще одна ветка, ожидающая объединения и тестирования, все подкрепляется?

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

Может кто-то помочь нам и поправить нас?

Благодаря

ответ

2

сделать еще один филиал под названием «livecandidate» эта отрасль будет иметь каждый из новых функций ветвей объединены в него

Каждый раз, когда функция ветви объединяются в «livecandidate» тянуть «livecandidate» в ваш Код Разверните процесс и установите его на тестовую машину.

Если тесты проходят затем слейте «livecandidate» в «мастер» и начать установку для производства

Если тесты не проходят, то раскручивать сливаются в «livecandidate» (не предполагая зависимость от цепочек изменений и т.д.)

После выполнения производственной установки или не-слияние, попробуйте следующую функцию

Общая идея заключается в том, чтобы никогда не когда-либо сломанной хозяину

Все проблемы в информатике могут быть решены другим уровнем косвенности - Дэвид Уилер

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