[Deployment] Как предотвратить простои во время внедрения AWS Elastic Beanstalk новой версии приложения?


Answers

Я знаю, что это старый вопрос, но для людей, ищущих работу в Google (например, я), Elastic Beanstalk выпустила развертывание развертывания приложений сегодня (11/2/2014).

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html?sc_ichannel=em&sc_icountry=global&sc_icampaigntype=launch&sc_icampaign=em_125873140&sc_idetail=em_14124901705&ref_=pe_411040_125873140_8

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

Question

Мое понимание Elastic Beanstalk заключается в том, что при развертывании новой версии вашего приложения он развертывает его в экземплярах Amazon EC2 по одному (если у вас их несколько). Однако даже с минимальным количеством двух экземпляров мое приложение берет на себя небольшое количество времени простоя, когда я загружаю новый .war при его развертывании, как если бы он обновлял их одновременно. Есть ли способ, которым я могу обеспечить отсутствие времени простоя и что один экземпляр полностью обновляется и принимает запросы до следующего запуска: вот как выглядят события. Обратите внимание, что это приложение имеет нулевую нагрузку, поэтому с производственным трафиком это будет только ухудшаться.

INFO
Environment update completed successfully.

INFO
New application version was deployed to running EC2 instances.

ERROR
The application did not respond at the health check URL.

INFO
Waiting for 8 seconds while EC2 instances download the updated application version.

INFO
Deploying version SomethingMore to 2 instance(s).