2016-06-13 2 views
0

Я запускаю приложение на основе NodeJS на AWS (EC2), и все прошло довольно гладко до сих пор. На прошлой неделе, однако, наш клиент заметил, что когда мы делаем развертывание, сайт идет в течение хорошей минуты. Немного посмотрев на это, это, похоже, время запуска моего приложения-узла (чтение всех конфигурационных файлов, подключение к службам, разогревание кеша). У меня есть несколько вопросов по этому поводу:Более грациозные развертывания на AWS (NodeJS)

  • ли запускаются новый «развернуть» работает на одной виртуальной машине или разрывается машин вниз перед новой командой npm start?
  • Есть ли способ заставить AWS ждать сигнала, прежде чем разрешить новый код?
+0

Вы используете AWS CodeDeploy? –

+0

Нет, мы строим Дженкинса. – Steven

+0

ОК спасибо. И механизм развертывания от Дженкинса до серверов - это именно так? –

ответ

1

В AWS Вы можете развернуть узел APP по-разному, чтобы обрабатывать более грациозные развертывания.

Using EC2, Load balancing

В этой установке вы можете настроить по крайней мере 2 экземпляра EC2 с узлом приложения и развертывания обновлений для каждого экземпляра в порядке (по крайней мере, положение 2 экземпляра непосредственно перед тем, обновление происходит с использованием Jenkins). Вы должны настроить экземпляры, стоящие за балансировщиком нагрузки, чтобы поддерживать доступность системы для использования, так что, когда один экземпляр недоступен из-за обновления, запросы отправляются балансировщиком нагрузки в другой экземпляр.

Using AWS Elastic Beanstalk

Это рекомендуемый способ сделать при развертывании существующего узла App. Платформа Beanstalk способна выполнять скользящие обновления. Вы также можете создать новую среду в Beanstalk и сделать Blue Green Deployments заменой записей DNS.

Using AWS ECS

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

Using AWS Lambda, API Gateway, Cloudfront & S3

Это современный способ настройки узла приложения с помощью Lambda, где платформа будет обрабатывать большинство качественных атрибутов системы. Например, развертывание без простоя, доступности, доступности & и т. Д. Эти архитектуры обычно называются серверными архитектурами.

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