CardClash_CloudPractitioner_第7關_無伺服器應用程式的CI/CD的架構

目標

  • 類別: Game-Based Learning
  • 課名: AWS Card Clash – an Architecture Design Game
  • 關卡名稱(遊玩主題): CardClash_CloudPractitioner_第7關_無伺服器應用程式的CI/CD的架構

在這一關中,玩家將設計並實作一個自動化的 CI/CD 架構,用於無伺服器應用程式的部署與管理。

核心任務是運用 AWS 的 DevOps 工具組來自動化建置、測試與部署流程,確保功能更新能夠快速、安全、穩定地上線。

完成本關後,玩家將深入理解並掌握 AWS 無伺服器 CI/CD 架構中各項服務的角色與串接方式,並能實際應用於開發與部署流程中,大幅提升開發效率與系統可靠性。

第7關的架構圖雛形

架構應用場景

為無伺服器應用程式建置持續整合和交付 (CI/CD) 管道,以協助快速、可靠地交付功能和更新。此架構以 AWS Code 系列服務為核心,結合 AWS Lambda、API Gateway 與 CloudFormation,建立一個全自動化的部署流程。

相關卡牌的功能說明

Service Cards:

Amazon API Gateway

  • 外觀:  
  • 簡介:
    • Amazon API Gateway 是應用程式與後端服務之間的交通指揮官,確保資料交換快速、安全、結構清晰。它可整合多種協定與驗證方式,自動管理流量與縮放,讓開發者專注在商業邏輯的實作。
  • 功能:
    • 透過安全的連接應用程式與後端服務實現精簡化 API 管理。
    • 建立 RESTful 或 WebSocket API
    • 整合 IAM、Cognito 做身分驗證
    • 支援快取、日誌紀錄、限流與監控
  • 更多資訊: Amazon API Gateway | API 管理 | Amazon Web Services 

AWS CodeBuild

  • 外觀:
  • 簡介:
    • AWS CodeBuild 是一種完全受管的持續整合服務,可編譯原始程式碼、執行測試並產生可供部署的軟體套件。當接到任務後就會立刻開始建置程式碼、執行測試並打包部署所需的檔案。無需額外維護伺服器,開發者可專注於寫程式,其餘交給 CodeBuild 自動處理。
  • 功能:
    • 全託管的建置服務,負責編譯程式碼、執行測試並生成可部署套件。
  • 更多資訊: Continuous Integration Service – AWS CodeBuild – AWS

AWS CodeDeploy

  • 外觀:  
  • 簡介:
    • AWS CodeDeploy 是一個完全受管的部署服務,可自動將軟體部署到各種運算服務,例如 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Service (Amazon ECS)、AWS Lambda 和內部部署伺服器。你可以使用 CodeDeploy 自動化應用程式部署,無需進行容易出錯的手動操作。
  • 功能:
    • 一個完全託管的部署服務,可自動將軟體部署到各種運算服務。
  • 更多資訊: Automated Code Deployment – AWS CodeDeploy – AWS

AWS CodePipeline

  • 外觀:  
  • 簡介:
    • AWS CodePipeline 是一種完全受管的持續交付服務,可協助自動化發佈管道,以實現快速且可靠的應用程式和基礎架構更新。為軟體發佈流程建模,並減少設定或配置伺服器的需求。
  • 功能:
    • 一個完全受管的持續交付服務,可協助自動化發佈管道,以實現快速且可靠的應用程式和基礎架構更新。
    • 自動串接整合測試與部署流程的 CI/CD 發佈管道。
  • 更多資訊: CI/CD Pipeline – AWS CodePipeline – AWS 

AWS Lambda

  • 外觀: 
  • 簡介:
    • 像是使用者的魔法棒,幫助使用者執行程式碼,而無須擔心底層基礎設施。像擁有一個無伺服器的施法者。
  • 功能:
    • 自動處理擴展、部署和運行,根據事件觸發執行程式碼。
  • 更多資訊: 無伺服器運算– AWS Lambda

Amazon S3

  • 外觀: 
  • 簡介:
    • 全名為 Amazon Simple Storage Service。
    • Amazon S3 就像是檔案的數位倉庫,想像一個巨大的儲存設施,你可以根據需求儲存或取回物件。AWS S3 用途廣泛,所以你可以託管靜態網站、儲存備份、為大型資料集建立儲存庫。它就像擁有一個持續擴展的儲存空間,可以從任何地方存取,使其成為無數應用程式和服務的基礎建構區塊。
  • 功能:
    • 透過 API 存取有效、可擴充且安全的物件儲存。
    • 以高耐久與高擴充性著稱的物件儲存服務,是備份長期保存或版本控管的理想選擇。
  • 更多資訊: 雲端物件儲存– Amazon S3

Security Cards:

IAM

  • 外觀:
  • 簡介:
    • 全名為 AWS identity and Access Management ,在雲端中擔任安全守衛,它像是一個警覺的門衛,在俱樂部門口只允許授權的訪客進入。
  • 功能:
    • 控制對 AWS 資源的存取,定義誰能執行特定操作以及他們可以與那些資源互動。擁有一個可自訂的安全策略,可強制執行規則、防止未經授權的存取。
  • 更多資訊: 存取管理– AWS Identity and Access Management (IAM)

AWS WAF

  • 外觀:
  • 簡介:
    • AWS WAF 是一種 Web 應用程式防火牆,可透過設定規則來允許、封鎖或監控(計算)Web 請求,從而協助保護 Web 應用程式免受攻擊,規則的依據是您定義的條件。 這些條件包括 IP 位址、HTTP 標頭、HTTP 主體、URI 字串、SQL 注入、跨網站指令。
  • 功能:
    • 是一種 Web 應用程式防火牆,可以讓你建立規則,根據 IP 位址、HTTP 標頭和本文或自訂 URI 等條件來篩選 Web 流量。
  • 更多資訊: Web Application Firewall, Web API Protection – AWS WAF – AWS

Others:

AWS CLI

  • 外觀:
  • 簡介:
    • 像是使用者的雲端運算中央控制中心,提供一個可視化所有使用者雲端資源及工具的控制面板。
  • 功能:
    • 使用者友善的網頁介面整合了管理、監控雲端環境以及跟雲端環境互動的流程,能瀏覽、調整設定以及觀察和維護使用者雲端資源的健康度及效能。
  • 更多資訊: AWS CLI

AWS Management Console

  • 外觀: 
  • 簡介:
    • 像是使用者的雲端運算中央控制中心,提供一個可視化所有使用者雲端資源及工具的控制面板。
  • 功能:
    • 使用者友善的網頁介面整合了管理、監控雲端環境以及跟雲端環境互動的流程,能瀏覽、調整設定以及觀察和維護使用者雲端資源的健康度及效能。
  • 更多資訊: AWS 管理主控台

AWS Cloud Formation

  • 外觀:  
  • 簡介:
    • 使用者的虛擬架構師,使用者定義所需資源及其關係, Cloud Formation 會根據這些定義建立模板,並處理繁重的部署工作。
  • 功能:
    • 以結構化的方式引導雲端環境的創建與管理,用於規劃雲端基礎設施的布局。協調雲端資源的佈建及配置,確保一致性並減少手動工作。
  • 更多資訊:  佈建基礎設施即程式碼– AWS CloudFormation 

最終架構圖樣貌

結論

在本關卡中,玩家深入學習了如何為無伺服器應用程式建構 CI/CD 架構,並掌握了 AWS 各項 DevOps 工具的功能與應用場景。透過 AWS CodeBuildCodeDeployCodePipeline 的整合,玩家能夠建立一條從原始碼變更到部署的全自動化管線,顯著提升部署效率與程式品質。

同時,透過 API GatewayLambda 的搭配,玩家學會如何以事件為驅動,部署靈活的無伺服器應用程式。而透過 CloudFormation 進行架構自動化,也讓整體部署流程更加一致與可擴展。

這一關不僅強化了玩家對 CI/CD 流程的理解,也讓玩家掌握在實際專案中實踐 DevOps 與無伺服器架構的核心能力。透過這些實作經驗,玩家未來將能更加得心應手地設計出穩定、彈性且可持續交付的雲端應用程式架構。

相關參考資料

如果想知道更多雲端新知,加入我們LINE@官方號

感謝您的填寫,將有專人與您聯繫