2015-05-30 1 views
0

Есть два вопроса о AWS автомасштабирования + развертывания, которые я не могу четко ответить:Как развернуть в AutoScaling группе только один активный узел без простоя

  1. Я в настоящее время пытается выяснить, будет самой лучшей стратегией для развертывания на экземпляр EC2 за ELB, который является единственным членом группы автомасштабирования без простоя.

К настоящему времени настройка EC2 будет выполнена с помощью кукольного, включая развертывание приложения, срабатывающего после успешной сборки дженкинсом.

Лучшее решение, которое я нашел, - проверить на скрипт, сколько экземпляров зарегистрировано в ELB. Если зарегистрирован один, создайте новый, запускающий марионетку при запуске (новый узел будет обновлен) и убейте старый узел.

  1. Как развернуть (автомасштабирование EC2 за ELB) без доставки двух разных версий приложения?

Возможное решение: проверить на сценарий, сколько экземпляров EC2 зарегистрировано в ELB, порождать такое же количество экземпляров, регистрировать все новые экземпляры и отменять регистрацию всех старых.

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

+0

Если вы можете использовать Elastic Beanstalk, который представляет собой группу балансировки нагрузки + масштабирование в качестве услуги. Он имеет функцию обновления Rolling, вот что вы описали здесь. Вопрос в том, можно ли развернуть свою систему с помощью Beanstalk. Beanstalk теперь также поддерживает Docker. –

ответ

0

В конце было два возможных решения. Оба из них временно предоставили две версии приложения.

  1. Используйте AWS CodeDeploy для последовательного развертывания (один за другим). Это решение предлагает возможность отката к предыдущему состоянию, а визуальное отображение состояния и результатов развертывания.

  2. Создайте скрипт python для получения зарегистрированных узлов (используя Boto) и запустите на них соответствующий кукольный скрипт (используя Fabric). Это решение предлагает больше контроля над развертыванием, но для создания этого сценария требуется некоторое время. Также могут быть ошибки.

На данный момент я выбираю AWS CodeDeploy, потому что он уже доступен и, надеюсь, хорошо протестирован.

0

Вы можете создать совершенно новую среду с собственным ELB, и когда она будет готова и проверена, вы переключите запись DNS на новый ELB.

В любом случае, в течение короткого времени (60 секунд или около того, в зависимости от TTL вашей записи DNS) некоторые пользователи будут видеть вашу старую версию, а некоторые другие будут видеть новую версию.

+0

Отличная идея. В это время я получил цель обновлять машины, а не создавать и предоставлять их. – rmmjohann