将 IaC 集成到 CI/CD 流水线中
在 AWS 上自动化部署
Dunieski Otano
Amazon Web Services Solutions Architect
先代码,后基础设施
代码通过 CodePipeline 部署;基础设施人工更新
开发扩容 Lambda;运维调整 SQS 队列大小
代码与基础设施漂移导致故障
将 CloudFormation 接入同一流水线
将 CloudFormation 作为流水线操作
CodePipeline 支持
CloudFormation 部署操作
流水线将
模板制品
传递给该操作
模式:
CREATE_UPDATE、DELETE_ONLY、REPLACE_ON_FAILURE、CHANGE_SET_REPLACE / EXECUTE
与源码、构建、应用部署操作并行运行
典型端到端流水线
Source
:Git 推送触发流水线
Build
:生成模板与应用制品
Deploy infra
:CloudFormation 创建或更新栈
Deploy app
:CodeDeploy 投产新版本
栈失败时自动回滚
更新失败将
自动回滚
到上一次正常状态
该流水线阶段
失败
,后续阶段停止
第 1 章配置的故障告警会自动触发
用嵌套栈实现模块化模板
嵌套栈
声明类型为
AWS::CloudFormation::Stack
父栈传参并读取输出
各模块在父栈内独立部署
面向多账号、多区域的 StackSet
StackSet
将一个模板部署到
多个账号与区域
适用于
安全基线、护栏、共享基础设施
可添加或移除
栈实例
,无需改模板
统一管理,本地部署
选择合适形态
Single stack
:小型应用,单一环境
Nested stacks
:大模板,模块化组件
StackSets
:同一模板,覆盖多账号与区域
三者均可与 CodePipeline 良好配合
让我们一起练习吧!
在 AWS 上自动化部署
Preparing Video For Download...