Github в AWS EC2 с использованием лучших практик CodeDeploy

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

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

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

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

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

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

Может ли кто-нибудь помочь нам и поставить нас прямо?

Спасибо


person Louis    schedule 26.02.2016    source источник


Ответы (1)


Создайте еще одну ветку под названием «livecandidate», в этой ветке будут объединены все новые ветки функций.

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

Если тесты пройдены, объедините «livecandidate» с «master» и запустите установку в производство.

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

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

Общая идея состоит в том, чтобы никогда не иметь сломанного мастера.

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

person Vorsprung    schedule 26.02.2016