瞭解部署策略
本文所述的架構說明如何建置和部署具有 Blue-Green 和 Canary 部署策略的現代化應用程式。部署策略是可修改或升級應用程式的模型與實務。部署策略可讓 DevOps 團隊定義應用程式如何部署到生產環境。
在不同的部署策略之間選擇可讓管理員在部署新版本風險、新版本對使用者的影響,以及導入策略所需的基礎架構負荷之間,進行正確的交易。我們希望為客戶提供更多選項,以滿足客戶對應用程式的需求。
關於 Blue-Green 部署
有了 Blue-Green 部署策略,DevOps 團隊想要使用兩個相同環境 (其中某個環境在指定時間內有效) 核發其應用程式的新版本。目前的應用程式版本是在作用中環境中佈建,新版本則部署到待命資料庫。
部署至待命環境不會影響作用中環境或使用者流量。DevOps 版本管線可以根據新版本執行驗證測試,通過核准之後,便會將使用者流量切換至待命環境,升級至生產環境。此程序會針對每個新的應用程式版本重複執行。
此策略的主要優點是它提供幾近零停機時間和即時倒回功能。如果新版本發生任何問題,流量便可立即回復至先前穩定版本。而待命環境則可用來除錯應用程式發行版本中所發生的錯誤。
下圖說明 Blue-Green 部署架構:
瞭解 Blue-Green 部署元件
先前的架構具有下列元件。
-
區域
OCI 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且遠距離也能分隔它們 (跨國家或甚至大陸)。此架構使用單一區域。
-
DevOps 專案
導入 CI/CD 工作流程所需的 DevOps 資源邏輯群組。DevOps 資源可以是使用者自建物件、組建管線、部署管線、外部連線、觸發程式以及環境。DevOps 專案可讓您輕鬆為所有的 DevOps 資源啟用記錄、監控及通知。
-
組建管線
組建管線會從您的原始程式碼儲存區域取得確認 ID,然後使用該原始程式碼執行您的組建指示。組建管線可定義一組組建處理作業的階段 - 建置、測試和編譯軟體使用者自建物件、提供使用者自建物件至 OCI 儲存區域及選擇性觸發部署。您可以在組建規格檔案中定義組建執行的流程和指示。
-
建立階段
階段是管線執行期間發生的個別動作。此處提到的各種組建階段為:受管理的組建階段:可建立並測試原始程式碼的受管理組建階段。傳遞使用者自建物件階段 :將組建階段輸出推送至各種儲存區域的階段。將容器映像檔類似於容器儲存區域,以及將建置資訊清單移至使用者自建物件登錄。呼叫部署:建立階段完成後,呼叫部署管線的階段,以及將匯出的變數從受管理組建階段剖析至部署管線階段。
-
代碼儲存庫
DevOps 服務代管的專用 Git 儲存區域。您可以透過我們的 DevOps 程式碼儲存區域儲存、管理及開發原始碼。部署管線 將一組使用者自建物件傳遞和部署至目標環境的一連串步驟。您可以透過定義序列或平行執行的階段,控制軟體發行版本的流程和邏輯。
-
部署階段
階段是執行管線期間發生的個別動作。這裡提到的各種組建階段包括:- Blue/Green OKE 部署或Blue/Green 執行處理群組部署:將更新的程式碼部署至目標環境的階段。
- 部署驗證:驗證部署的選擇性階段 (透過函數)
- 控制:核准:控制階段以核准部署至目標生產環境。
- 藍色 / 綠色 OKE 流量轉移或藍色 / 綠色執行處理群組流量轉移:生產流量將切換至最新部署環境的最終階段。
-
DevOps 使用者自建物件
DevOps 使用者自建物件指任何構成您應用程式之檔案、二進位、套裝程式、資訊清單或映像檔的參照或指標。建立使用者自建物件時,請通知 Oracle DevOps 實際使用者自建物件的來源位置。DevOps 支援 OCI 容器映像檔登錄和 OCI 使用者自建物件登錄儲存區域。
-
使用者自建物件儲存區域
「使用者自建物件儲存區域」會建立群組相似使用者自建物件的儲存區域。建立儲存區域時,您可以將使用者自建物件上傳至儲存區域。這些使用者自建物件是傳遞至目標部署環境的文字檔、二進位檔以及部署資訊清單的集合。每個使用者自建物件都有其路徑所組成的名稱:版本。路徑是組織使用者自建物件的字串。
-
OCI 日誌記錄與通知服務
OCI 日誌記錄服務會儲存與部署相關的日誌。部署執行時間輸出與部署的最終結果會顯示為日誌項目。OCI 通知服務可查看部署專案與其資源的最新狀態,並採取任何必要的動作。例如,當重要事件 (例如部署管線中的階段等待核准) 時,您會收到通知。當您收到通知訊息時,可以前往 DevOps 部署管線並核准階段。
-
部署環境
環境是部署使用者自建物件之客戶運算資源的集合。環境可以是功能、運算虛擬機器 (VM) 或裸機執行處理或 OKE 叢集。Blue Green 部署僅適用於 OKE 叢集和運算虛擬機器。
瞭解 Blue-Green 部署的 Pro 和 Cons
部署現代化應用系統時,既獲得 Pro 和贊同採用 Blue-Green 策略。
- Blue Green 部署項目可讓您快速且無風險的部署。
- 它們採用有效的簡單倒回機制。
- 它們是協調 A/B 軟體測試的有效方法。
- 生產一律透過其中一個作用中環境 (亦即負載平衡器),提供零停機或近零停機時間。
- 若要維持 Blue-Green 部署環境,相同的環境和資源必須花費大量成本。
- 您必須密切監控這兩個環境,才能管理兩個相同環境之間的版本。
- 管理部署之間的資料庫相依性相當複雜。
關於 Canary 部署
運用 Canary 部署策略,應用程式發行版本會逐步遞增到一部分使用者。新版本一開始會部署至不具使用者流量的容器環境。DevOps 發行版本管線可以針對新版本執行驗證測試,一旦就緒,便只能將使用者的子集遞送至產品目錄環境。
此技術可讓 DevOps 團隊根據實際的使用者流量評估新的應用程式版本。他們可以在將新版本推出給較大的使用者庫之前,將兩個應用程式版本並排比較。它也提供風險降低措施,因為只有小部分使用者能夠啟用新版本,這些使用者可以在發生任何問題時輕鬆切換回先前的版本。
下圖說明 Canary 部署策略:
瞭解 Canary 部署元件
先前的架構具有下列元件。
-
區域
OCI 區域是包含一或多個資料中心 (稱為可用性網域) 的區域化地理區域。區域與其他區域無關,而且遠距離也能分隔它們 (跨國家或甚至大陸)。此架構使用單一區域。
-
DevOps 專案
導入 CI/CD 工作流程所需的 DevOps 資源邏輯群組。DevOps 資源可以是使用者自建物件、組建管線、部署管線、外部連線、觸發程式以及環境。DevOps 專案可讓您輕鬆為所有的 DevOps 資源啟用記錄、監控及通知。
-
組建管線
組建管線會從您的原始程式碼儲存區域取得確認 ID,然後使用該原始程式碼執行您的組建指示。組建管線可定義一組組建處理作業的階段 - 建置、測試和編譯軟體使用者自建物件、提供使用者自建物件至 OCI 儲存區域及選擇性觸發部署。您可以在組建規格檔案中定義組建執行的流程和指示。
-
建立階段
階段是在執行管線時執行的個別動作。此處提到的各種組建階段包括:- 受管理組建階段:用來建置和測試原始程式碼的受管理組建階段。
- 傳遞使用者自建物件階段:將組建階段輸出推送至各種儲存區域的階段。將容器映像檔與容器儲存區域相同,並且將部署資訊清單部署至使用者自建物件登錄。
- 呼叫部署:建立階段完成後,呼叫部署管線的階段,以及將匯出的變數從受管理組建階段剖析至部署管線階段。
-
代碼儲存庫
DevOps 服務代管的專用 Git 儲存區域。您可以透過我們的 DevOps 程式碼儲存區域儲存、管理及開發原始碼。
-
部署管線
一連串步驟,可將一組使用者自建物件傳遞至目標環境。您可以透過定義序列或平行執行的階段,控制軟體發行版本的流程和邏輯。
-
部署階段
階段是執行管線期間發生的個別動作。這裡提到的各種組建階段包括:- OKE 部署 (Canary Instance Group Deployment) 或Canary Instance Group Deployment:部署更新程式碼至目標獨具環境的階段。
- 部署驗證:驗證部署的選擇性階段 (透過函數)
- OKE 流量轉移 (Canary OKE Traffic Shift) 或加拿大執行處理群組流量轉移 (Canary Instance Group Traffic Shift) :根據坡度限制 (要轉移的流量百分比) 將流量切換至容器環境的階段。
- 控制:核准:控制階段以核准部署至目標生產環境。
- 可選擇部署執行處理群組生產或 OKE 部署生產:生產流量將切換至最新部署環境的最終階段。
-
DevOps 使用者自建物件
DevOps 使用者自建物件指任何構成您應用程式之檔案、二進位、套裝程式、資訊清單或映像檔的參照或指標。建立使用者自建物件時,請通知 Oracle DevOps 實際使用者自建物件的來源位置。DevOps 支援 OCI 容器映像檔登錄和 OCI 使用者自建物件登錄儲存區域。
-
使用者自建物件儲存區域
「使用者自建物件儲存區域」會建立群組相似使用者自建物件的儲存區域。建立儲存區域時,您可以將使用者自建物件上傳至儲存區域。這些使用者自建物件是傳遞至目標部署環境的文字檔、二進位檔以及部署資訊清單的集合。每個使用者自建物件都有其路徑所組成的名稱:版本。路徑是組織使用者自建物件的字串。
-
OCI 日誌記錄與通知服務
OCI 日誌記錄服務會儲存與部署相關的日誌。部署執行時間輸出與部署的最終結果會顯示為日誌項目。OCI 通知服務可查看部署專案與其資源的最新狀態,並採取任何必要的動作。例如,當重要事件 (例如部署管線中的階段等待核准) 時,您會收到通知。當您收到通知訊息時,可以前往 DevOps 部署管線並核准階段。
-
部署環境
環境是部署使用者自建物件之客戶運算資源的集合。環境可以是功能、運算虛擬機器 (VM) 或裸機執行處理或 OKE 叢集。Blue Green 部署僅適用於 OKE 叢集和運算虛擬機器。

