1. 程式人生 > >AWS自動部署工具codedeploy的部署概述

AWS自動部署工具codedeploy的部署概述

1)在AWS lambda平臺上部署:

三大部分:要部署的內容 -->  部署的配置 --> 更新的lambda函式版本

部署的流程:上傳修訂的應用程式-->建立一個應用程式-->指定部署組-->指定部署的配置-->指定一個appspec檔案-->進行部署-->檢查部署結果-->如果出現問題再根據需要重新部署。

2)在AWS ECS 平臺上的部署:

部署前提:

在建立codedeploy部署組時,必須指定包含ECS服務的ECS叢集;

codedeploy必須已經啟用ECS服務,預設情況下,ECS部署已啟用ECS服務,當建立部署組時需要選擇部署ECS叢集的ECS服務;

在要隨ECS部署一起更新的ECS服務必須使用ELB,可以使用 應用程式負載均衡器 或 Network Load Balancer。官方建議使用 應用程式負載均衡器,以便可以利用動態埠對映和基於路徑的路由和優先順序規則等功能。在建立 CodeDeploy 應用程式的部署組時,需要指定負載均衡器;

在建立部署組時,您需要指定一個或兩個偵聽器,偵聽器是負載均衡器將流量定向到目標組的。(如果使用ECS控制檯建立ECS服務,系統建立偵聽器)

一個ECS部署需要2個目標組,一個用於ECS程式的原始任務集,一個用於ECS程式的替換任務集。在部署過程中,codedeploy會建立一個替換的任務集,並將流量替換到新的任務集,在建立部署組時需要指定目標組。(在部署期間,CodeDeploy 會確定哪個目標組與  ECS 服務中狀態為 PRIMARY

(這是原始任務集)的任務集關聯,並將一個目標組與其關聯,然後將另一個目標組與替換任務集關聯。如果執行其他部署,則與當前部署的原始任務集關聯的目標組將與下一個部署的替換任務集關聯)。

需要在 CodeDeploy 應用程式的 AppSpec file中指定任務定義的 ARN(執行包含 ECS 應用程式的 Docker 容器需要任務定義);

需要在codedeploy應用程式的appspec file中指定容器的名稱,appapec file中指定的容器必須是ECS任務定義的之一。(Docker 容器 包含您的軟體應用程式需要執行的所有內容。負載均衡器將流量定向到 Amazon ECS 應用程式任務集中的容器);

在ECS部署期間,負載均衡器會將流量定向到您 CodeDeploy 應用程式的 AppSpec file所指定容器上的埠,需要在 CodeDeploy 應用程式的 AppSpec file中指定埠。

部署元件:要部署的內容 -->  部署的配置 --> ECS的替換任務集

部署工作流程:建立一個ECS部署,並將部署控制器設定為codedeploy--> 建立一個codedeploy應用程式-->建立一個部署組-->指定一個APPspec file-->部署-->檢查部署結果-->出現問題再回到部署環節

3)EC2或本地計算平臺上的部署

部署元件:要部署的內容-->  部署的配置 --> 部署組和縮放組

主要的部署工作流程:建立一個應用程式-->指定部署組-->指定部署的配置-->更新需要部署的內容-->部署-->檢查部署-->出現問題再回到部署環節

步驟詳解:

1.通過指定唯一表示您要部署的應用程式修訂和表示應用程式的計算平臺的名稱來建立應用程式;

2.設定部署組時,要指定部署型別和要部署應用程式修訂的例項。就地部署將使用最新的應用程式修訂更新例項。藍/綠部署向負載均衡器註冊部署組的一組替換例項並取消註冊原始例項、可以指定應用於例項的標籤或 Amazon EC2 Auto Scaling 組名稱、在所有情況下例項必須配置為在部署中使用(即,它們必須已標記或屬於 Amazon EC2 Auto Scaling 組),並且已安裝並執行 CodeDeploy 代理、AWS提供了一個 AWS CloudFormation 模板,您可使用該模板基於 Amazon Linux 或 Windows Server 快速設定 Amazon EC2 例項,還提供了獨立的 CodeDeploy 代理、配置Amazon SNS 通知 — 建立觸發器,以便在部署和例項中發生指定的事件(例如,成功或失敗事件)時,向 Amazon SNS 主題的訂閱者傳送通知、基於警報的部署管理 — 實現 Amazon CloudWatch 警報監控,以在指標超出或低於 CloudWatch 中設定的閾值時停止部署、自動部署回滾 — 配置部署,使之在部署失敗或達到警報閾值時自動回滾到已知良好的版本。

3.指定部署配置,以指明多少例項要同時部署應用程式修訂並描述成功和失敗的條件;

4.將應用程式修訂上傳到 Amazon S3 或 GitHub。除了要部署的檔案和要在部署期間執行的所有指令碼外,您還必須包含application specification file(AppSpec file)。該檔案包含部署說明,例如,要將檔案複製到的每個例項上的位置,以及執行部署指令碼的時間。

5.將應用程式修訂部署到部署組。部署組中每個例項的 CodeDeploy 代理將您的應用程式修訂從 Amazon S3 或 GitHub 複製到該例項。然後,CodeDeploy 代理將取消捆綁修訂,使用 AppSpec file將相應檔案複製到指定的位置並執行任何部署指令碼。。

6.檢查部署結果

7.重新修訂,重新部署。

注意:以下是開始前需要做的{

設定例項

您需要先設定例項,然後才能首次部署應用程式修訂。如果一個應用程式修訂需要三個生產伺服器和兩個備份伺服器,您將啟動或使用五個例項。

要手動預配例項,請執行以下操作:

  1. 在例項上安裝 CodeDeploy 代理。CodeDeploy 代理可安裝在 Amazon Linux、Ubuntu Server、RHEL 和 Windows Server 例項上。

  2. 如果要使用標籤來標識部署組中的例項,請啟用標記。CodeDeploy 依賴標籤來標識例項並將其分組到 CodeDeploy 部署組。儘管入門教程同時使用了鍵和值,但是您可以只使用鍵或值為部署組定義標籤。

  3. 啟動附加有 IAM 例項配置檔案的  EC2 例項。IAM 例項配置檔案必須附加到啟動的  EC2 例項,以便讓 CodeDeploy 代理驗證該例項的身份。

  4. 建立服務角色。提供服務訪問權,以便 CodeDeploy 可以展開您的 AWS 賬戶中的標籤。

對於初始部署,AWS CloudFormation 模板將為您完成所有這些操作。它基於已安裝 CodeDeploy 代理的 Amazon Linux 或 Windows Server 建立並配置單個新 Amazon EC2 例項。

注意

對於藍/綠部署,您可以選擇使用您已有的用於替換環境的例項,或者也可以選擇讓 CodeDeploy 在部署過程中為您預置新