使用 Oracle Cloud Infrastructure DevOps 建立連續部署管線

快速遞送軟體對於在雲端有效執行應用系統而言非常重要。Oracle Cloud Infrastructure (OCI) DevOps 為開發人員提供端對端連續部署體驗。OCI DevOps 包括部署管線,將連續的軟體部署程序 (CD) 自動化至 OCI 平台:Container Engine for Kubernetes (OKE)、函數以及運算執行處理。

使用管線部署自動執行軟體版本會增加開發人員生產力,並可讓您更頻繁地釋出功能,並發生較少錯誤。它可協助避免建置期間的停止工作時間,並將更新應用程式的複雜性自動化。OCI DevOps 可供客戶將工作負載從企業內部部署或其他雲端移轉至 OCI,以及供 OCI 上開發新應用程式的客戶使用。

架構

在此參照架構中,使用 OCI DevOps 部署 Hello World 應用程式範例。Hello World 應用程式已經建置並可供建置。應用程式會部署至三個不同的目標環境:OKE、運算執行處理和函數。為了簡化程序,基礎架構自動化會使用 Terraform。

下圖說明此參考架構。

dev-ops-deployment-pipeline.png 描述如下
dev-ops-deployment-pipeline.png 圖解描述

deploy-pipeline-devops-arch-oracle.zip

此架構包含下列元件:
  • 區域

    OCI 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。

    架構使用單一區域。

  • DevOps 專案

    DevOps 專案是實行連續整合與部署 (CI/CD) 工作負載所需的資源邏輯群組。DevOps 資源可以是使用者自建物件、部署管線以及環境。DevOps 專案可讓您輕鬆啟用所有 DevOps 資源的記錄日誌、監督及通知。

  • 部署管道

    部署管線會保留必須滿足才能將一組使用者自建物件傳遞至環境的需求。管線包含階段,這些階段是管線的建構區塊。管線可以有循序或平行執行的階段,因此您可以控制軟體版本的流程和邏輯。

  • 部署階段
    階段是執行管線時所發生的個別動作。DevOps 部署管線包括下列預先定義的階段類型,供您在釋出處理作業中使用:
    • 機動部署:OKE、函數或執行處理群組的增量版本。
    • 等待:等待 N 秒。
    • 手動核准:如果已核准,則繼續進行;如果核准遭拒,則停止。
    • 呼叫函數:呼叫函數並傳送要求參數的使用者自建物件,以執行自訂作業和整合。
  • DevOps 人工因素

    DevOps 使用者自建物件是構成應用程式之任何檔案、二進位檔案、套裝程式、資訊清單或影像的參照或指標。建立構件時,您必須向 Oracle DevOps 告知實際構件的來源位置。DevOps 支援 OCI 容器映像檔登錄和 OCI 使用者自建物件登錄儲存區域。

  • 人工因素儲存區域

    「使用者自建物件儲存區域」可用來建立儲存區域以群組相似的使用者自建物件。建立儲存區域之後,即可將使用者自建物件上傳至該儲存區域。這些使用者自建物件是將傳遞至目標部署環境的文字檔、二進位檔案及部署清單的集合。每個使用者自建物件都有由其 path:version 組成的名稱。路徑是用來組織人工因素的字串。

  • OCI 記錄日誌與通知服務

    OCI 日誌記錄服務會儲存與部署相關的日誌。建置程式實際執行輸出和建置的最終結果會顯示為日誌項目。OCI 通知服務可檢視部署專案及其資源的最新狀態,並採取任何必要的動作。例如,系統會在重要事件 (例如建置管線中等待核准的階段) 時通知您。當您收到通知訊息時,可以移至 DevOps 建置管線並核准階段。

  • 建置環境
    環境是部署使用者自建物件之客戶的運算資源集合。環境可以是功能、運算虛擬機器 (VM)、裸機執行處理或 OKE 叢集。
    • Oracle Kubernetes 叢集 (OKE):Oracle Container Engine for Kubernetes 是一項完全受管理、可擴展的高可用性服務,可用來將容器化應用系統部署到雲端。
    • 運算執行處理:OCI 運算服務可讓您在雲端佈建及管理運算主機。您可以啟動資源配置符合您 CPU、記憶體、網路頻寬以及儲存資源需求的運算執行處理。
    • 函數:Oracle Functions 是一個完全受管理的多租用戶、高度可擴展、隨選、函數即服務平台。它是建置在企業級 OCI 上,並由 Fn 專案開源引擎提供。
    環境可以和部署管線的區域位於不同的 OCI 區域。這可讓開發人員使用相同的部署管線在多個 OCI 區域中進行部署。

建議

使用下列建議作為起點。您的需求可能會與此處描述的架構不同
  • 運算資源配置

    此架構使用 Oracle Linux 作業系統映像檔搭配 E3 或 E4 彈性資源配置與最少資源,來代管 OKE 叢集節點中的運算主機。如果您的應用程式需要更多的記憶體或核心,您可以選擇不同的資源配置。

  • VCN

    建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,判斷所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    此架構使用公用 VCN 代管 Oracle Container Engine for Kubernetes。您也可以使用專用 VCN。在此情況下,請使用 NAT 閘道透過公用網際網路授予叢集存取權。

  • OKE

    此架構會部署至 OKE 叢集作為其中一個目標環境。工作節點部署在 E3 或 E4 Oracle Linux 作業系統上。此架構使用叢集中的三個工作節點,但是您最多可以在每個叢集上建立 1,000 個節點。

  • 函數

    如果您選擇要部署到 OCI 函數的架構,系統就會在您的租用戶中建立新的函數應用程式和函數。

  • 實例群組

    如果您選擇要部署到執行處理群組的架構,系統就會為您選擇的資源配置建立新的運算執行處理。

  • 容器映像檔登錄

    此架構會將登錄檔部署為專用 Docker 登錄檔以供內部使用。Docker 映像檔會推送至登錄,並從登錄提取。您也可以使用「登錄」作為公用 Docker 登錄檔,讓任何具有網際網路存取與適當 URL 的知識的使用者能夠從 Oracle Cloud 中的公用儲存庫提取影像。

  • 人工因素登錄

    此架構會為執行處理群組、OKE 以及「函數」部署所使用的軟體和組態建立使用者自建物件。架構會建立供內部使用的物件登錄儲存庫。軟體二進位檔案、文字及部署組態會上傳至物件登錄儲存庫,並從中下載。

注意事項

部署此參照架構時,請注意下列幾點。

  • DevOps 支援的建置

    DevOps 支援 OKE、運算主機以及函數的部署。此架構會部署到 OKE 叢集。請考慮根據需求部署到其他端點。

  • Linux 支援

    運算執行處理的執行處理群組部署只支援 Linux 主機。

  • 已部署的使用者自建物件

    要使用 DevOps 部署的使用者自建物件必須在 OCI 使用者自建物件登錄或容器映像檔登錄儲存區域中。

  • 群組應用程式

    最佳作法是將每個應用程式及其所有微服務群組為單一專案。

部署

此參照架構的 Terraform 程式碼在 Oracle Cloud Infrastructure Resource Manager 中提供為範例堆疊。您也可以從 GitHub 下載程式碼,然後自訂程式碼以符合您的特定需求。

  • 使用 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊進行部署:
    1. 按一下特定使用案例的建置按鈕,以存取「資源管理程式」:

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 選取您要在其中部署堆疊的區域。
    3. 依照畫面上的提示和指示建立堆疊。
    4. 建立堆疊之後,請按一下 Terraform 動作,然後選取畫。
    5. 等待工作完成,然後複查計畫。

      若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「劃」動作。

    6. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取用。
  • 使用 GitHub 中的 Terraform 程式碼部署:
    1. 前往 GitHub
    2. 將儲存區域複製或下載到您的本機電腦。
    3. 依照 README 文件中的指示進行。

變更日誌

此日誌會列出重大變更: