appspec.yml

appspec.yml用于:

  • 说明文件部署到机器上的哪个位置(比如/var/www/html)

  • 管理部署过程中的每个 lifecycle hooks

Hook执行顺序

In-place部署:

img

和traffic相关的hook只适用于ELB

Start, DownloadBundle, Install, 和 End不能用到脚本中

蓝色的部分是用户能够干预的,灰色的部分是用户干预不了的


Blue/green 部署

img

从上图看到,在进行蓝绿部署时,对于原来旧版本所在的机器(Original instances),是不会发生ApplicationStop,BeforeInstall,Install……等事件的,这些事件只在新版本的机器(Replacement instances)上发生。原来的机器只为它停掉流量就行:

Lifecycle event name In-place deployment¹ Blue/green deployment: Original instances Blue/green deployment: Replacement instances Blue/green deployment rollback: Original instances Blue/green deployment rollback: Replacement instances
ApplicationStop
DownloadBundle²
BeforeInstall
Install²
AfterInstall
ApplicationStart
ValidateService
BeforeBlockTraffic
BlockTraffic²
AfterBlockTraffic
BeforeAllowTraffic
AllowTraffic²
AfterAllowTraffic