使用 Oracle Cloud Infrastructure DevOps 和 OCI 執行處理建立 CI/CD 管線
架構
此參照架構顯示如何建置現代化應用程式,然後將其部署到 OCI 運算執行處理。此示範使用以 Graal Enterprise/Micronaut 啟用 Java 應用程式為基礎的應用程式。此應用程式會透過 OCI 負載平衡器公開,確保在作用中部署期間順暢切換流量。
下圖說明此架構。
instance-group-deploy-arch.png 圖解描述
- 區域
OCI 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域獨立於其他區域,因此廣大的距離可以劃分區域 (跨國家甚至大陸)。此架構使用單一區域。
- DevOps 專案
實作 CI/CD 工作流程所需的 DevOps 資源邏輯群組。DevOps 資源可以是使用者自建物件、組建管線、部署管線、外部連線、觸發程式以及環境。DevOps 專案可讓您輕鬆啟用所有 DevOps 資源的記錄日誌、監督和通知。
- 組建管線
組建管線會從您的原始程式碼儲存區域取得確認 ID,然後使用該原始程式碼執行您的組建指示。組建管線主要定義組建處理作業的階段:建立、測試及編譯軟體使用者自建物件、將使用者自建物件傳遞至 OCI 儲存區域,以及選擇性觸發部署。您可以在組建規格檔案中定義組建執行的流程和指示。
- 建置階段
階段是管線執行期間發生的個別動作。此處提及的各種建置階段:
- 「受管理組建階段」- 建置和測試原始程式碼的受管理組建階段。
- 傳遞使用者自建物件階段 - 將組建階段輸出推送至各種儲存區域的階段。就像容器映像檔一樣,容器儲存區域和部署資訊清單也是使用者自建物件登錄。
- 呼叫建置 - 在建置階段完成後呼叫建置管線的階段,以及將匯出的變數從管理的建置階段剖析至建置管線階段。
- 代碼儲存庫
由 DevOps 服務代管的專用 Git 儲存區域。您可以使用我們的 DevOps 程式碼儲存區域來儲存、管理及開發原始碼。
- 部署管線
一連串步驟,用來將一組構件遞送與部署至目標環境。您可以透過定義可序列或平行執行的階段,來控制軟體發行版本的流程和邏輯。
- 部署階段
階段是管線執行期間發生的個別動作。因此,我們正在使用部署管線中的運算執行處理群組累計階段,這會相應地將應用程式安裝至 OCI 運算執行處理。
- DevOps 使用者自建物件
DevOps 使用者自建物件是構成應用程式之任何檔案、二進位、套裝程式、資訊清單或映像檔的參照或指標。建立使用者自建物件時,請通知 Oracle DevOps 實際使用者自建物件的來源位置。DevOps 支援 OCI 容器映像檔登錄和 OCI 使用者自建物件登錄儲存區域。
- 物件儲存區域
使用者自建物件儲存區域會建立儲存區域,將相似的使用者自建物件分組。建立儲存區域之後,您可以將使用者自建物件上傳至該儲存區域。這些使用者自建物件是文字檔、二進位檔案以及傳遞至目標部署環境的部署清單集合。每個使用者自建物件都有一個名稱,其中包含其路徑:版本。此路徑是用來組織使用者自建物件的字串。
- OCI 日誌記錄和通知服務
OCI 日誌記錄服務會儲存與部署相關的日誌。部署執行時期輸出與部署的最終結果會顯示為日誌項目。OCI Notifications 服務可讓您檢視部署專案及其資源的最新狀態,並採取任何必要的動作。例如,重要事件 (例如部署管線中的階段等待核准) 時會通知您。當您收到通知訊息時,可以前往 DevOps 部署管線並核准階段。
- 部署環境
環境是部署使用者自建物件之客戶運算資源的集合。環境可以是函數、運算虛擬機器 (VM)、裸機執行處理或 OKE 叢集。Blue Green 部署只能與 OKE 叢集和運算虛擬機器搭配使用。
- OCI 運算執行處理
Oracle Cloud Infrastructure 提供快速、彈性且經濟實惠的運算能力,可滿足任何工作負載需求,從高效能的裸機伺服器和 VM 到輕量型容器。OCI Compute 提供獨特靈活的 VM 和裸機執行處理,以實現最佳性價比。此架構使用 OCI 運算搭配 Oracle Linux 作為作業系統映像檔。
- OCI 負載平衡器
Oracle Cloud Infrastructure Load Balancing 服務提供從一個進入點到多個可從您虛擬雲端網路 (VCN) 存取之伺服器的自動化流量分配。此服務提供負載平衡器,您可以選擇公用或專用 IP 位址,以及佈建的頻寬。
建議
- 運算資源配置
此架構使用具有 E3 或 E4 彈性資源配置的 Oracle Linux 作業系統映像檔,在 OKE 叢集節點中代管運算主機。如果您的應用程式需要更多記憶體或核心,您可以選擇不同的資源配置。
- VCN
建立 VCN 時,根據您計劃附加到 VCN 子網路的資源數量,決定所需的 CIDR 區塊數量和每個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。
建立 VCN 之後,您可以變更、新增和移除其 CIDR 區塊。
此架構使用公用 VCN 來代管 Oracle Container Engine for Kubernetes。您也可以使用專用 VCN。在此情況下,請使用 NAT 網關來授權叢集透過公用網際網路存取。
- 執行處理群組
如果您選擇將架構部署到執行個體群組,則您的租戶中將建立了自選形狀的新運算執行個體。
- 物件登錄
此架構會為執行處理群組、OKE 及 Functions 部署使用的軟體和組態建立使用者自建物件。此架構會建立使用者自建物件登錄儲存區域供內部使用。軟體二進位檔案、文字和部署組態會上傳至使用者自建物件登錄儲存區域並從其中下載。
注意事項
建置此參照架構時,請考量以下各點。
- DevOps 支援的部署項目
DevOps 支援部署到 OKE、運算主機和 Functions。此架構會部署到 OKE 叢集。請考慮根據需求部署到其他端點。
- Linux 支援
運算執行處理的執行處理群組部署只支援 Linux 主機。
- 已部署的使用者自建物件
要使用 DevOps 部署的使用者自建物件必須位於 OCI 使用者自建物件登錄或容器映像檔登錄儲存區域中。
- 群組應用程式
最佳做法是將每個應用程式及其所有微服務都群組成單一專案。
部署
您可以在 Oracle Cloud Infrastructure Resource Manager 中使用這項參考架構的 Terraform 程式碼作為範例堆疊。您也可以從 GitHub 下載程式碼,並自訂程式碼以符合您的特定需求。
- 使用 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊部署:
- 使用 GitHub 中的 Terraform 程式碼進行部署:
- 前往 GitHub 。
- 複製儲存區域或將儲存區域下載至您的本機電腦。
- 依照
README
文件中的指示進行。