將 IaC 納入 CI/CD pipeline
在 AWS 上自動化部署
Dunieski Otano
Amazon Web Services Solutions Architect
先程式,後基礎設施
透過 CodePipeline 部署程式碼;基礎設施手動更新
開發調整 Lambda;營運調整 SQS 佇列大小
程式與基礎設施漂移導致中斷
將 CloudFormation 接到同一條 pipeline
將 CloudFormation 作為 pipeline 動作
CodePipeline 支援
CloudFormation deploy action
pipeline 將
template artifact
傳給該動作
模式:
CREATE_UPDATE、DELETE_ONLY、REPLACE_ON_FAILURE、CHANGE_SET_REPLACE / EXECUTE
與 source、build、app-deploy 動作並行執行
端到端典型 pipeline
Source
:Git push 觸發 pipeline
Build
:產生 template 與 app artifact
Deploy infra
:CloudFormation 建立或更新 stack
Deploy app
:CodeDeploy 送出新版本
Stack 失敗時自動回復
更新失敗會
自動回復
到上一次良好狀態
該 pipeline 階段
失敗
並停止後續階段
第 1 章設定的失敗警示會自動觸發
以 Nested stacks 模組化模板
Nested stack
宣告型別為
AWS::CloudFormation::Stack
將 2,000 行 template 拆成
可重用模組
父 stack 傳入參數並讀取輸出
各模組在父層內獨立部署
StackSets:多帳戶、多區域
StackSet
可將一個 template 部署到
多個帳戶與地區
適用於
安全基線、護欄、共用基礎設施
可新增或移除
stack instances
,無需改寫 template
中央管理,本地部署
選對架構形態
Single stack
:小型應用,單一環境
Nested stacks
:大型模板,模組化元件
StackSets
:同一模板,多帳戶與多區域
三者皆可與 CodePipeline 搭配
一起來練習吧!
在 AWS 上自動化部署
Preparing Video For Download...