AWS 上的 CI/CD 入門

在 AWS 上自動化部署

Dunieski Otano

Amazon Web Services Solutions Architect

持續循環

在 AWS 上自動化部署

認識講師

具 AWS 證照的講師

在 AWS 上自動化部署

為何需要 CI/CD

  • 人工部署又慢又容易出錯
  • 開發者推送程式碼後,還得等人部署
  • CI/CD 將程式碼到上線全程自動化
  • 發布更快,錯誤更少

 

ci_cd

在 AWS 上自動化部署

CI/CD 生命週期

  • Source:提交程式碼到版本庫
  • Build:編譯並安裝相依套件
  • Test:自動化測試驗證建置
  • Deploy:發布應用;產物在各階段流轉

生命週期

在 AWS 上自動化部署

AWS Code 服務總覽

  • CodeCommit:版控(Git 儲存庫)
  • CodeBuild:編譯、測試、封裝
  • CodeDeploy:部署到 EC2、Lambda 或 ECS
  • CodePipeline:協調所有階段

   

 

Code services image

在 AWS 上自動化部署

CI、連續交付與連續部署

  • Continuous Integration(CI):每次推送都合併、建置、測試
  • Continuous Delivery:自動部署到測試環境;正式環境需人工核准(最常見)
  • Continuous Deployment:所有通過的建置自動上線

 

three-tier

在 AWS 上自動化部署

CodePipeline 如何協調一切

cp

  • CodePipeline 依序串接各階段
  • 每個階段包含一個或多個動作
  • 原始碼變更會自動觸發管線
  • 任一階段失敗,管線即停止
在 AWS 上自動化部署

真實世界的管線範例

  • Source:開發者推送到 CodeCommit
  • Build:CodeBuild 執行測試並封裝 ZIP
  • Staging:CodeDeploy 部署到測試環境
  • 核准 => Production:主管核准後部署到正式環境

 

Real pipeline example

在 AWS 上自動化部署

一起來練習吧!

在 AWS 上自動化部署

Preparing Video For Download...