軟體的快速交付對於在雲中高效執行應用程式至關重要。 通過管道部署自動化軟體發布可提高開發人員的工作效率,並允許您更頻繁地發布功能並減少錯誤。 它有助於避免部署期間的停機時間,並自動執行更新應用程式的複雜性。 Oracle Cloud Infrastructure DevOps 為開發人員提供端到端的持續部署體驗。 Oracle Cloud Infrastructure DevOps 服務包括部署管道,用於自動執行到 Oracle Cloud Infrastructure (OCI) 平台(Oracle Cloud Infrastructure Container Engine Kubernetes、Oracle Functions 和 Oracle Cloud Infrastructure 計算例項)的持續軟體交付和部署過程 (CD)。 Oracle 雲基礎設施適用於在本地部署或從其他雲遷移工作負載的客戶,以及在 OCI 上開發新應用的客戶。 此體系結構顯示了使用 Oracle Cloud Infrastructure (OCI) DevOps 服務從儲存庫部署的 NodeJS 應用程式的示例。 應用程式將部署到 Oracle Cloud Infrastructure Container Engine Kubernetes (OKE) 集群。 為了簡化流程,我們使用 Terraform 進行基礎架構自動化。 下圖演示了此參考體系結構。
此架構由以下元件組成:地區Oracle Cloud Infrastructure 區域是乙個地理位置受限的區域,其中包含乙個或多個資料中心(稱為可用性域)。 區域獨立於其他地區,並且可能相距很遠(跨國家甚至跨大陸)。
虛擬雲網路 (VCN) 和子網VCN 是在 Oracle Cloud Infrastructure 區域中設定的可定製的軟體定義網路。 與傳統的資料中心網路一樣,VCN 可讓您完全控制網路環境。 乙個 VCN 可以有多個不重疊的 CIDR 塊,您可以在建立 VCN 後更改這些塊。 您可以將 VCN 劃分為多個子網,這些子網的範圍可以限定為區域或可用性域。 每個子網都包含一系列連續位址,這些位址不與 VCN 中的其他子網重疊。 您可以在建立子網後更改子網的大小。 子網可以是公有子網,也可以是私有子網。
OCI DevOps 專案OCI DevOps 專案是實施持續整合和部署 (CI CD) 工作負載所需的資源的邏輯分組。 OCI DevOps 資源可以是構件、部署管道和環境。 借助 OCI DevOps 專案,您可以輕鬆為 OCI DevOps 資源啟用日誌記錄、監控和通知功能。
構建管道生成管道從源儲存庫獲取提交 ID,並使用該源執行生成說明。 構建管道定義了構建過程的一系列階段:構建、測試和編譯軟體構件,將構件交付到 OCI 儲存庫,以及選擇性地觸發部署。 您可以在生成規範檔案中定義生成執行的過程和說明。
構建階段生成階段是在生成管道執行期間發生的單個操作。 OCI DevOps 構建管道由三個階段組成:
構建容器:執行構建規範YAML 指令來編譯、構建和準備必要的工件。
上載工件:上載所有準備好的工件(如 Docker 映像),以推送到配置的 Oracle Cloud Infrastructure 登錄檔儲存庫。
觸發部署:觸發部署管道的 OKE,以將更改應用於配置。
部署管道部署管道包含將一組專案交付到環境中需要滿足的要求。 管道包含階段,這些階段是管道的構建基塊。 管道可以具有序列或並行執行的階段,因此您可以控制軟體版本的流程和邏輯。
部署階段階段是在管道執行期間發生的單個操作。 OCI DevOps 部署管道僅包含乙個預定義階段(稱為 Deployment Helm),用於使用 Helm 圖表部署 Kubernetes 應用。 helm 圖表 URL 和可選值YAML 檔案將作為 OCI DevOps 專案傳送到部署 Helm 階段。 在執行期間,Helm 階段從 Oracle Cloud Infrastructure Registry 獲取 Helm 圖表,並將其應用於配置的 OKE OCI DevOps 環境,並選擇性地提供值yaml 檔案。
DevOps 工件OCI DevOps 工件是對構成應用的任何檔案、二進位檔案、包、清單或映象的引用或指標。 建立工件時,必須將實際工件的源位置通知 OCI DevOps。 OCI DevOps 支援 OCI 容器登錄檔和 OCI 構件登錄檔儲存庫。
專案儲存庫物品倉庫用於建立用於對相似物品進行分組的倉庫。 建立儲存庫後,您可以上傳專案。 這些專案是文字檔案、二進位檔案和部署清單的集合,將傳遞到目標部署環境。 每個工件都有乙個名稱,由其路徑組成:version。 路徑是用於組織工件的字串。
helmHelm 是 Kubernetes 的包管理器,它將應用程式部署作為一組 Helm 圖表進行管理,使您能夠輕鬆管理單個服務及其生命週期。
Oracle Linux 的 Helm 模組將 Helm 安裝到 Kubernetes 模組(集群)中。
Helm 圖表Kubernetes YAML 清單將合併到乙個包中,該包可以部署到 Kubernetes 集群。 Helm 圖表包含 Kubernetes YAML 清單檔案的模板和乙個值YAML 檔案來提供預設模板值。 使用 helm 圖表部署應用程式或大型應用程式的元件。
OCI 日誌和 OCI 通知Oracle Cloud Infrastructure 日誌和 Oracle Cloud Infrastructure 通知儲存與您的部署相關的日誌。 部署執行時輸出和部署的最終結果顯示為日誌條目。 OCI 通知提供對部署專案及其資源的最新狀態的可見性,並採取必要的措施。
部署環境環境是客戶計算資源的集合,其中部署了專案。 環境可以是函式、計算虛擬機器 (VM) 或裸機例項,也可以是 OKE 群集。
Oracle Kubernetes 集群 (OKE):OCI 容器引擎是面向 Kubernetes 的完全託管、可擴充套件且高度可用的服務,可用於將容器化應用部署到雲中。
計算例項:借助 OCI 計算,您可以在雲中配置和管理計算主機。 您可以啟動滿足 CPU、記憶體、網路頻寬和儲存資源需求的計算例項。
功能:Oracle Functions 是乙個完全託管、多租戶、高度可擴充套件的按需功能即服務 (FaaS) 平台。 它基於企業級 OCI 構建,由 FN Project 開源引擎提供支援。
此體系結構使用 OKE 群集作為環境。 環境可以位於與部署管道的區域不同的 OCI 區域中。 這樣,開發人員就可以使用相同的部署管道在多個 OCI 區域中進行部署。
使用以下建議作為起點。 您的需求可能與此處描述的體系結構不同。 虛擬雲網路 (VCN)。建立 VCN 時,請根據計畫連線到 VCN 子網的資源數量確定所需的 CIDR 塊數和每個塊的大小。 在標準專用 IP 位址空間中使用 CIDR 塊。
建立 VCN 後,可以更改、新增和刪除其 CIDR 塊。
此體系結構使用公共 VCN 來託管 OKE 群集。 您也可以使用專用 VCN。 在這種情況下,請使用 NAT 閘道器使群集能夠通過公共 Internet 訪問。
計算形狀此體系結構使用具有 E4 彈性配置的 Oracle Linux OS 映像,以最少的資源在 OKE 群集節點中託管計算主機。 如果應用程式需要更多記憶體或核心,則可以從不同的配置中進行選擇。
kubernetes(oke)此體系結構作為目標終結點部署到 OKE 群集。 工作節點部署在 E4 Oracle Linux OS 上。 此體系結構在乙個群集中使用三個工作節點,但每個群集上最多可以建立 1000 個節點。
容器映象倉庫此架構將登錄檔部署為供內部使用的專用 docker 登錄檔。 docker 映像被推送到登錄檔並從中拉取。 您還可以將登錄檔用作公共 Docker 登錄檔,使任何具有 Internet 訪問許可權並了解相應 URL 的人都可以從 Oracle Cloud 中的公共儲存庫中提取映像。 在此架構中,同一容器登錄檔也用於儲存 Helm 圖表。
專案登錄檔此體系結構為 OKE 群集使用的軟體和配置建立專案。 架構將建立乙個專案登錄檔儲存庫供內部使用。 軟體二進位檔案、文字和部署配置將上傳到專案登錄檔儲存庫或從專案登錄檔儲存庫上傳。
部署此參考體系結構時,請考慮以下幾點。 Oracle Cloud Infrastructure DevOps 支援的部署DevOps 支援部署到 Kubernetes (OKE)、計算主機和 Oracle Functions。 此體系結構使用 helm 圖表部署到 OKE 群集。 請考慮根據需要部署到其他終結點。
支援的主機僅支援將例項組部署到 Oracle Cloud Infrastructure 計算例項的 Linux 主機。
產品使用 Oracle Cloud Infrastructure DevOps 部署的工件必須駐留在 Oracle Cloud Infrastructure 工件登錄檔或容器映像登錄檔儲存庫中。
專案最佳做法是將每個應用程式及其所有微服務分組到乙個專案中。
GitHub 上提供了此參考體系結構的 Terraform。 使用 Oracle Cloud Infrastructure Explorer 中的示例堆疊進行部署:
點選並輸入租戶和使用者憑據(如果尚未輸入)。
選擇要在其中部署堆疊的區域。
按照螢幕上的提示和說明建立堆疊。
建立堆疊後,單擊 Terraform 操作,然後選擇 Plan。
等待作業完成並檢視計畫。
如果您需要進行任何更改,請返回到堆疊詳細資訊頁面,單擊編輯堆疊,然後進行必要的更改。 然後,再次執行計畫操作。
如果不需要進行任何進一步的更改,請返回堆疊詳細資訊頁面,單擊 Terraform 操作,然後選擇應用。
在 GitHub 中使用 Terraform 進行部署:Deploy using Terraform in GitHub:訪問 GitHub。
轉殖或儲存庫到本地計算機。
按照 README 文件中的說明進行操作。
作為甲骨文標準合作夥伴,Agilewing正在重新定義企業體驗甲骨文雲服務的方式。 憑藉其簡化的開戶流程和一流的技術支援,雅居翼將複雜的開戶和操作流程轉變為簡單、直觀的體驗。 借助我們的一站式服務,您可以快速啟動並執行全套 Oracle 雲服務,從而無縫整合到雲中。 Agilewing 的 AgileCDN 服務與 OCI 基於雲的服務相結合,可提供一流的全球內容加速解決方案。 由2,800多個全球POP節點和7,000個直接連線點組成的強大網路可確保您的業務擴充套件到全球的任何地方,都能確保高效穩定的運營。 利用 Oracle 雲的先進技術,Agilewing 致力於簡化雲服務構建、雲遷移和業務走出去的流程。 “我們的合作模式為客戶提供了經濟高效的解決方案,使他們能夠更專注於核心業務,同時享受 Oracle 雲的高效能和安全性。” Oracle 雲服務是乙個前景廣闊的領域,憑藉其高效能、安全性和全球一致的服務標準,為企業開啟了通往新機遇的大門。 通過雅樂之翼的專業服務,無論是個人使用者還是企業,都能輕鬆進入這個充滿技術創新和高效能的新時代。 讓 Agilewing 開始探索 Oracle 雲服務,開啟通往全新世界的大門。