AWS CodeDeploy 是可自動化任何執行個體應用程式部署的服務,包括 Amazon EC2 執行個體與執行現場部署的執行個體。CodeDeploy 可以完全自動化您的應用程式部署,無須手動操作。CodeDeploy 透過輪流更新和部署運作狀態追蹤,保護您的應用程式不會在部署期間停機。CodeDeploy 可讓您透過 AWS 管理主控台、CLI、軟體開發套件或 API 集中控制部署,讓您能夠啟動、控制和監控您的部署。您可以檢視部署進度,也可以仔細檢視每個執行個體上執行的個別設定活動。CodeDeploy 會追蹤和儲存您最近的部署歷史記錄,因此您可以調查時間軸並變更過去部署的歷史記錄。
AWS CodeDeploy 是適用於各種語言的平台,能與任何應用程式搭配使用,因此您可以重複使用現有的安裝程式碼。您也可以使用 AWS CodeDeploy API,輕鬆地將應用程式部署與現有的軟體交付程序或持續交付工具鏈整合。
您可以透過 AWS CodeDeploy,在不同執行個體群組之間輕鬆地重複應用程式部署。CodeDeploy 使用以檔案和命令為基礎的安裝模式,因此可以部署任何應用程式和重複使用現有的安裝程式碼。您用於將修訂版部署到開發執行個體供偵錯之用的安裝程式碼,與用於部署到分段執行個體供測試之用的安裝程式碼相同,然後再使用同一個安裝程式碼部署到生產,以發佈給客戶。消除部署中的手動操作可提升軟體交付程序的速度和可靠性。
AWS CodeDeploy 已與 Auto Scaling 整合,以協助您的應用程式軟體在動態變化的基礎設施中保持在最新狀態。Auto Scaling 可讓您根據您定義的條件 (如流量高峰),自動向上或向下擴展 Amazon EC2 容量。當有新執行個體啟動到 Auto Scaling 群組時,CodeDeploy 會收到通知,且會在新執行個體新增到 Elastic Load Balancer 之前,在該執行個體上自動執行應用程式部署。
您可以使用 AWS CodeDeploy 在執行於任意執行個體上的開發、測試和生產環境自動化程式碼部署,這些執行個體包括您自己資料中心的執行個體 (您的執行個體必須能夠連接至 AWS 公用終端節點)。這可讓您跨混合架構使用單一服務持續地部署應用程式。
使用 AWS CodeDeploy 時,將應用程式更新到新版本時不需要停機。CodeDeploy 可以在一組執行個體間執行輪流更新。執行更新時,一個時間只有一小部分執行個體是離線狀態。CodeDeploy 在執行個體間逐步執行工作,讓應用程式保持可用並繼續提供流量。CodeDeploy 也可執行藍/綠部署,在部署期間會使用最新的修訂版佈建並安裝一組新的執行個體。在新的執行個體上安裝新的修訂版之後,CodeDeploy 會將流量從您的生產執行個體重新路由到新的執行個體。
部署運作狀態追蹤與輪流更新一起執行,以保持應用程式在部署期間高度可用。如果部署不佳的更新,可能發生未預期的停機。AWS CodeDeploy 會在多執行個體部署中監控每個執行個體更新的成功狀態。您可以指定需要保持正常運作狀態的最低執行個體數量,如果執行個體更新失敗過多,CodeDeploy 將停止部署。
您可以使用 AWS 管理主控台、AWS CLI 或任何 AWS 開發套件,隨時停止執行中的應用程式部署。如果您稍後想繼續進行停止的部署,只需重新部署該修訂版即可。您也可以重新部署之前的修訂版,立即復原。
您可以直接從 AWS 管理主控台或使用 AWS CLI、軟體開發套件或 API,在目標執行個體啟動、控制和監控所有應用程式的部署。您可以檢視部署進度,也可以仔細檢視每個執行個體上執行的個別設定活動。如果發生故障,您可以查明確切的執行個體和發生故障的指令碼,無需登入個別執行個體。您也可以設定推送通知,允許您透過 Amazon Simple Notification Service 以SMS 或電子郵件訊息來監控部署的狀態。
應用程式可部署到多個部署群組中。部署群組由一組執行個體組成,例如分段或生產環境。您可以在分段環境中測試修訂版,然後在滿意後再將該修訂版部署到生產環境。AWS CodeDeploy 使用標籤或 Auto Scaling 群組名稱定義部署群組。要將執行個體新增到部署群組中,您只需在執行個體加上標籤,AWS CodeDeploy 就會在您下次部署時,將最新的應用程式修訂版自動部署到其中。
AWS CodeDeploy 會追蹤並儲存部署的最近歷史記錄。您可以檢視各個目標部署群組中目前部署哪些應用程式版本。您可以檢查過去在特定部署群組中進行之部署的變更歷史記錄和成功率。您也可以調查執行個體層級事件和過去部署的時間軸,以詳細查看部署成功和錯誤的情況。
AWS CodeDeploy 使用以檔案和命令為基礎的安裝模式,因此可以部署任何應用程式和重複使用現有的安裝程式碼。CodeDeploy 使用單一 AppSpec 設定檔,將您應用程式中的檔案映射到其主機目的地,並指定在每個生命週期事件 (部署階段) 執行的命令,例如 "install dependencies" 或 "stop server"。這些命令可以是任何程式碼 (如 shell 指令碼)、自訂程式,甚至是設定管理工具。
使用 AWS CodeDeploy API 可以輕鬆地整合應用程式部署與您現有的軟體交付工具鏈。有些 AWS 合作夥伴提供預先建立的 CodeDeploy 整合搭配其持續整合與持續交付服務,讓最新應用程式組建能輕鬆地自動部署到您的執行個體中。