CodeDeploy
优势
服务器、无服务器和容器应用程序
自动部署
最大程度减少停机时间
停止并回滚
集中控制
易于采用
并发部署
部署配置
https://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html
Canary
线性
All-at-once
或自定义金丝雀】线性部署配置
1、EC2/本地
CodeDeployDefault.AllAtOnce (就地、蓝绿)
CodeDeployDeafult.HalfAtTime (就地、蓝绿)
CodeDeployDefault.OneAtATime (就地、蓝绿) 如果前n-1个有一个失败,则失败;前n-1个成功,就认为是成功
2、Lambda
CodeDeployDefault.LambdaCanary10Percent5Mintues 第一次增量转移10%的流量。其余90%部署在五分钟后进行转移
CodeDeployDefault.LambdaCanary10Percent10Mintues
CodeDeployDefault.LambdaCanary10Percent15Mintues
CodeDeployDefault.LambdaCanary10Percent30Mintues
CodeDeployDefault.LambdaLinear10PercentEvery1Mintue 每个1分钟转移10流量
CodeDeployDefault.LambdaLinear10PercentEvery2Mintue
CodeDeployDefault.LambdaLinear10PercentEvery3Mintue
CodeDeployDefault.LambdaLinear10PercentEvery10Mintue
CodeDeployDefault.LambdaAllAtOnce 一次性全部
3、ECS
CodeDeployDefault.ECSLinear10PercentEvery1Minutes 每分钟转移10%的流量,直到所有流量转移完毕
CodeDeployDefault.ECSLinear10PercentEvery3Minutes 每隔3分钟转移10%流量,直到所有流量转移完毕
CodeDeployDefault.ECSCanary10Percent5Minutes 在第一次增量中转移10%流量,其余90%部署在五分钟后进行转移
CodeDeployDefault.ECSCanary10Percent15Minutes 在第一次增量中转移10%流量,其余90%部署在15分钟后进行转移
CodeDeployDefault.ECSAllAtOnce 所有流量一次性转移到更新后的ECS容量
2、appspec.yml 的钩子
https://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/reference-appspec-file.html
1、
BeforeInstall
AfterInstall
ApplicationStart
ApplicationStop
2、ECS
BeforeInstall 用于在创建替换任务之前运行的任务。此时无法回滚
Install
AfterInstall 。。。 之后运行的任务。函数结果可能触发回滚
AllowTestTraffic
AfterAllowTestTraffic 在允许测试侦听器替代任务提供的流量之后,用于运行任务。函数结果可能触发回滚
BeforeAllowTraffic ...
AllowTraffic
AfterAllowTraffic ...
3、Lambda
BeforeAllowTraffic
AllowTraffic
AfterAllowTraffic