AWS CodeDeploy 功能

為什麼選擇 CodeDeploy?

AWS CodeDeploy 是可自動將應用程式部署到各種運算服務的服務,其中包括 Amazon Elastic Compute Cloud (Amazon EC2)、AWS Fargate、AWS Lambda 和內部部署的執行個體。CodeDeploy 可完全自動部署應用程式,無需手動操作。CodeDeploy 透過輪流更新和部署運作狀態追蹤,保護您的應用程式不會在部署期間停機。CodeDeploy 可讓您透過 AWS 管理主控台、AWS Command Line Interface (AWS CLI)、SDK 或 API 集中控制部署,讓您能夠啟動、控制和監控您的部署。您可查看精細到個別安裝事件的部署進度。CodeDeploy 會追蹤和儲存您最近的部署歷史記錄,因此您可以調查時間軸並變更過去部署的歷史記錄。

CodeDeploy 是適用於各種語言的平台,能與任何應用程式搭配使用,因此您可以重複使用現有的安裝程式碼。您也可以使用 CodeDeploy API,輕鬆地將應用程式部署與現有的軟體交付程序或持續交付工具鏈整合。

自動化部署

您可以透過 CodeDeploy,在不同執行個體群組之間輕鬆地重複應用程式部署。CodeDeploy 使用以檔案和命令為基礎的安裝模式,因此可以部署任何應用程式和重複使用現有的安裝程式碼。您可以使用相同的安裝程式碼,在 Amazon EC2 執行個體的部署、測試和產品發布階段,使用一致的方法部署和測試更新。移除部署中的手動操作,可提升軟體交付程序的速度和可靠性。

您可以使用 CodeDeploy 整合軟體部署和擴展活動,讓應用程式在動態生產環境永遠保持最新的狀態。至於 Amazon EC2 執行個體,CodeDeploy 已經與 Auto Scaling 整合在一起。Auto Scaling 可讓您根據定義的條件 (如流量高峰) 擴展 Amazon EC2 容量。當有新執行個體啟動到 Auto Scaling 群組時,CodeDeploy 會收到通知,且會在新執行個體新增到 Elastic Load Balancing (ELB) 負載平衡器之前,在該執行個體上自動執行應用程式部署。

您可以使用 CodeDeploy 在執行於任意執行個體上的開發、測試和生產環境自動化軟體部署,這些執行個體包括您自己資料中心的執行個體 (您的執行個體必須能夠連接至 AWS 公有端點)。這能讓您跨混合架構使用單一服務持續地部署應用程式。

將停機時間降到最低

使用 CodeDeploy 時,將應用程式更新到新版本時不需要停機時間。AWS CodeDeploy 可以對 Amazon EC2 執行個體、Amazon Elastic Container Service (Amazon ECS) 服務 (包括 Amazon EC2 和 Fargate 啟動類型) 或 Lambda 函數執行藍/綠部署。透過藍/綠部署,您的應用程式新版本會與舊版本一起啟動。當新版本完成測試並宣告就緒時,CodeDeploy 便會根據您的規格,將流量從舊版本轉到新版本。

CodeDeploy 也可以在一組 Amazon EC2 執行個體間執行輪流更新。執行更新時,在任何時間只有一小部分執行個體會是離線狀態。CodeDeploy 在執行個體間逐步執行工作,讓應用程式保持可用並繼續提供流量。至於 Lambda 函數,連入流量將逐漸從舊版本轉送到新版本。

部署運作狀態追蹤與輪流更新一起執行,以保持應用程式在部署期間高度可用。如果部署不佳的更新,可能發生未預期的停機。CodeDeploy 會監控您的部署,如果更新失敗次數太多就會停止部署。

您可以使用主控台、AWS CLI 或任何 AWS SDK,隨時停止執行中的應用程式部署。如果您稍後想繼續進行停止的部署,只需重新部署該修訂版即可。您也可以重新部署之前的修訂版,立即回復。

集中化控制

您可以直接從主控台或使用 AWS CLI、SDK 或 API 來啟動、控制和監控軟體的部署。如果發生失敗,您可以準確找出造成失敗的指令碼。您也可以設定推送通知,讓您能透過 Amazon Simple Notification Service (Amazon SNS) 以 SMS 或電子郵件訊息來監控部署的狀態。

一個應用程式可部署到多個部署群組。部署群組可將組態搭配到特定的環境,例如模擬或生產環境。您可以在模擬環境中測試修訂版,滿意之後再利用相同的部署指令,將相同的程式碼部署到生產環境。

CodeDeploy 會追蹤並儲存部署的最近歷史記錄。您可以檢視各個目標部署群組中目前部署哪些應用程式版本。您可以檢查過去在特定部署群組中進行之部署的變更歷史記錄和成功率。您也可以調查過去部署的時間軸,以詳細查看部署成功和錯誤的情況。

易於採用

CodeDeploy 使用以檔案和命令為基礎的安裝模式,因此可以部署任何應用程式和重複使用現有的安裝程式碼。CodeDeploy 使用您可以在每個生命週期事件 (部署階段) 使用的 AppSpec 檔案來執行動作、測試或驗證。這些命令可以是任何程式碼 (如 shell 指令碼)、自訂程式,甚至是設定管理工具。

使用 CodeDeploy API 可以輕鬆地整合應用程式部署與您現有的軟體交付工具鏈。 AWS CodePipeline 和一些 AWS 合作夥伴提供預先建置的 CodeDeploy 整合,用於持續整合和持續交付 (CI/CD) 服務,可簡化更新應用程式的自動部署。

接收通知

您可以針對影響您部署的事件建立通知。通知會以 Amazon SNS 通知的形式傳送。每則通知會包括一則狀態訊息以及一條前往資源的連結,此通知由該資源的的事件生成。