使用 Oracle Database@Azure 中的 Oracle Exadata Database Service 建立 Azure DevOps 管線

瞭解如何使用 Oracle Database@Azure 中的 Oracle Exadata Database Service 建置 Microsoft Azure CI/CD 管線,以發揮 Oracle Database 最佳效能、高可用性、可擴展性,包括 Oracle Real Application Clusters (Oracle RAC) 和 Azure 應用程式的安全性。這可讓應用程式開發人員使用 Azure DevOps 與 Oracle Exadata Database Service on Dedicated Infrastructure 搭配 Azure 資料中心內的 Oracle Exadata Cloud Infrastructure 來建置和部署 Microsoft Azure Pipelines,以接近 Microsoft Azure DevOps Pipelines 的方式執行,以達到可能的最低延遲。

Before You Begin - 開始之前

若要利用此參考架構,需要下列項目:
  • Microsoft Azure DevOps
  • Microsoft Azure 管線
  • 版本控制系統:Azure Repos Git,GitHub,and TFVC
  • Microsoft Azure Kubernetes 服務 (AKS)
  • 使用下列項目設定 Oracle Database@Azure
    • 存取 Azure 訂閱和目錄
    • 存取 Oracle Cloud Infrastructure (OCI) 租用戶
    • Azure 與 Oracle 雲端之間的作用中 Oracle Database@Azure 多雲端連結

在佈建 Oracle Database@Azure 之前,請確定您有足夠的 Oracle Exadata Database Service 限制和 OCI 服務限制:

  1. 在 OCI 功能表中,按一下治理與管理
  2. 租用戶管理底下,按一下限制、配額和用量
  3. 服務下拉式功能表中,選取資料庫

架構

此架構顯示如何使用 Azure DevOps 搭配 Oracle Exadata Database Service on Dedicated Infrastructure ,建置及部署 Microsoft Azure 管線。

應用程式和資料庫原始程式碼由 Microsoft Azure DevOps 程式碼儲存區域、GitHub 或類似版本代管。使用者將變更確認至觸發持續整合 (CI) 管線的程式碼儲存區域。此階段包括執行單元測試、整合測試、靜態程式碼分析,以及 Azure Kubernetes Service (AKS) 叢集內容器的測試,以驗證部署整備度。

測試完成後,組建管線會建立 Docker 映像檔並將其推送至 Azure 容器登錄檔。這些物件接著會起始連續傳遞 (CD) 管線。在 CD 階段,使用者自建物件會部署到執行端對端和系統測試的 AKS,以確保微服務在 Kubernetes 環境和 Oracle Database 內正常運作。接著會啟動暫存和生產環境 (使用藍色 / 綠色或金絲雀部署等策略),以進行新變更的零停機部署。

Kubernetes 叢集可以包含多個 Pod,每個 Pod 都可連線至其個別的可插拔資料庫 (PDB)。主要資料庫中的 PDB 部署在 Oracle Database@Azure 上,該 Oracle Exadata Database Service on Dedicated Infrastructure 在 Azure 可用性區域中執行。容器映像檔會儲存在 Azure 容器登錄中。使用者可透過公用負載平衡器從外部存取應用程式。

雲端自動化可簡化 Oracle Exadata Cloud Infrastructure 和 Oracle 多租用戶資料庫 ( CDBPDB) 的大多數生命週期和管理工作。例如,新增伺服器並縱向縮減 OCPU、建立資料庫和資料庫本位目錄、排定基礎架構維護、更新和升級 VM 作業系統、Oracle Grid Infrastructure 和資料庫、執行備份和復原作業,甚至透過 Oracle Data Guard 啟用災難復原保護。

使用 Azure Monitor、Oracle Cloud Infrastructure (OCI) 和 Oracle Database 的 Unified Observability OpenTelemetry 架構等工具持續觀察整個 CI/CD 流程的指標、日誌和追蹤,該架構提供從 Azure 上、所有子系統中的應用程式進入點到 Oracle Database 的追蹤,確保微服務和資料庫的效能和可靠性。此方法可確保在雲端原生環境中部署和管理現代應用程式的強大、高效且可擴展的解決方案。

下圖說明此參考架構。

exadata-database-service.png 描述如下
exadata-database-service.png 圖解描述

exadata 資料庫服務 -oracle.zip

架構具有下列元件:

  • 地區

    Oracle Cloud Infrastructure 區域是一個本地化地理區域,其中包含一或多個代管可用性網域的資料中心。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。

    Azure 區域是一個地理區域,其中有一或多個實體 Azure 資料中心 (稱為可用性區域)。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。

    Azure 和 OCI 區域都是本地化的地理區域。對於 Oracle Database@Azure,Azure 區域會連線至 OCI 區域,而 Azure 中的可用性區域 (AZ) 則會連線至 OCI 中的可用性網域 (AD)。選擇 Azure 和 OCI 區域組可將距離和延遲降到最低。

  • Azure 可用性區域

    可用性區域是區域內實體獨立的資料中心,旨在提供和容錯能力。可用性區域已足以與其他可用性區域建立低延遲連線。

    子網路委派是 Microsoft 將託管服務 (特別是平台即服務) 直接插入虛擬網路的能力。

  • Microsoft Azure 虛擬網路

    Microsoft Azure Virtual Network (VNet) 是您在 Azure 中專用網路的基礎建置區塊。VNet 可讓許多類型的 Azure 資源 (例如 Azure 虛擬機器 (VM) 安全地相互通訊、網際網路和內部部署網路。

    子網路委派是 Microsoft 將託管服務 (特別是平台即服務) 直接插入虛擬網路的能力。

  • Azure 管線

    Azure Pipelines are part of the Azure DevOps service offered by Microsoft Azure to automatically builds, tests, and deploys code projects for continuous integration, continuous testing and continuous delivery.(CI-CD)

  • Azure Kubernetes 服務

    Azure Kubernetes Service (AKS) 是由 Microsoft Azure 提供的託管 Kubernetes 服務,用於部署和管理容器化應用程式。Kubernetes 叢集可以包含多個 Pod。

  • Kubernetes 控制層

    Kubernetes 控制平面可管理 Kubernetes 叢集內工作節點與 Pod 的資源。控制層元件可偵測及回應事件、執行排程及移動叢集資源。

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service 在公有雲中針對特定用途建置、最佳化 Oracle Exadata Cloud Infrastructure,提供備受肯定的 Oracle Database 功能。內建雲端自動化、彈性資源擴展、安全性和快速效能,適用於 OLTP、記憶體內分析和融合式 Oracle Database 工作負載,有助於簡化管理並降低成本。

    Oracle Exadata Cloud Infrastructure 為公有雲帶來更多 CPU 核心、更高的儲存空間和更快的網路結構。Oracle Exadata 儲存伺服器包括 Exadata RDMA Memory (XRMEM),可建立一層額外的儲存體,並提升整體系統效能。Exadata 將 XRMEM 與可略過網路和 I/O 堆疊的創新 RDMA 演算法結合,免除昂貴的 CPU 中斷和上下文切換。

    Oracle Exadata Cloud Infrastructure 透過融合式乙太網路 (RoCE) 內部網路結構提高其 100 Gbps 主動 - 主動式遠端直接記憶體存取的傳輸量,比前一代在所有運算和儲存伺服器之間提供極低延遲的相互連線速度。

  • Oracle Database 自治式復原服務

    Oracle Database Autonomous Recovery Service 是一款完全託管的服務,旨在保護 Oracle 資料庫免於資料遺失和網路威脅。它提供更快速的備份,以減少資料庫負荷、使用驗證的備份提供可靠的復原,以及即時保護,讓您在停機或勒索軟體攻擊不到一秒的時間內復原。Oracle Database Zero Data Loss Autonomous Recovery Service 是自治式復原服務的「零資料遺失」選項。此服務提供集中式資料保護儀表板,建議您備份 Oracle 資料庫。

  • Oracle Database@Azure

    Oracle Database@Azure 是在 Oracle Cloud Infrastructure (OCI) 上執行的 Oracle Database 服務 (Oracle Exadata Database Service on Dedicated InfrastructureOracle Autonomous Database Serverless),部署在 Microsoft Azure 資料中心。此服務提供 OCI 的功能和價格同等性。在 Azure Marketplace 購買此服務。

    Oracle Database@AzureOracle Exadata Database ServiceOracle Real Application Clusters (Oracle RAC) Oracle Data Guard 技術整合至 Azure 平台。使用者可以在 Azure 主控台和 Azure 自動化工具管理服務。此服務部署在 Azure Virtual Network (VNet) 中,並與 Azure 識別和存取管理系統整合。Azure 原生提供 OCI 和 Oracle Database 一般指標和稽核日誌。此服務需要使用者擁有 Azure 訂閱和 OCI 租用戶。

  • 物件儲存

    OCI Object Storage 可讓您存取任何內容類型的大量結構化和非結構化資料,包括資料庫備份、分析資料,以及影像和影片等豐富內容。您可以直接從網際網路或雲端平台內安全地儲存資料。您可以擴展儲存體,而不會發生任何效能或服務可靠性的降低問題。

    針對您需要快速、立即和經常存取的「熱」儲存,使用標準儲存。針對長時間保留且極少或極少存取的「冷」儲存,使用封存儲存。

  • 服務閘道

    服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage 。從 VCN 到 Oracle 服務的流量會透過 Oracle 網路結構傳送,不會周遊網際網路。

注意事項

計畫部署此參考架構時,請考量下列各點:

  • 更新 YAML 檔案

    使用連線字串更新 Azure Kubernetes 服務部署的 YAML 檔案。您可以在 OCI 主控台中找到資料庫的連線字串。

  • 效能
    • 對於微服務架構的持續性層,建議使用 Oracle 多租戶架構,以隔離資料、安全性和高可用性的有界相關資訊環境。

      使用 Oracle 多用戶架構時,Oracle Database 可以作為容器資料庫 (CDB),其中包含多個可插式資料庫 (PDB)。這可讓具有各種資料類型和工作負載的微服務使用單一融合容器資料庫。Oracle 運用這些 PDB,即可在 CDB 內提供微服務隔離的資料庫,並啟用跨實體容器的 PDB 移動功能。微服務可以連線至在 Oracle Exadata Database Service on Dedicated Infrastructure 上執行的 Oracle Database 執行處理。

  • 安全
    • 請考慮使用保存庫,不要將應用程式的資料庫連線資訊、密碼和公事包 (如果適用) 儲存在 Azure Kubernetes 服務的 Kubernetes 加密密碼中。
  • 網路
    • 至少需要一個具有委派子網路的 Azure Virtual Network (VNet) 連附至 Oracle Database 網路連附項。

    • 請考慮在相同的 VNet 中部署 Microsoft Azure Kubernetes Service 子網路和 Oracle Exadata Database Service VM 叢集用戶端子網路。

  • 使用狀態
    • 請考慮使用並設定「通用連線集區 (UCP)」、「Oracle JDBC 驅動程式」及 Oracle RAC,在計畫性和非計畫性停機期間,運用 Oracle Database 的高可用性 (HA) 功能持續提供服務,以維持應用程式的持續可用性。

      UCP 支援所有立即可用的 Oracle Database 組態和關鍵任務功能 (可用性、擴展性及負載平衡),包括 Oracle RACOracle Data Guard 、Oracle Sharding、Asynchronous API、Runtime Load Balancing、XA、Application Continuity、Transparent Application Failover、Single Client Access Name (SCAN) 以及 Database Resident Connection Pool (DRCP) 的前端。使用 Oracle RAC 系統時,可以從數個伺服器節點相等地存取任何 Oracle 資料庫服務。如果節點或 Oracle RAC 叢集的子集失敗或離線進行維護,則仍可透過剩餘的作用中節點存取資料庫。

    • 以下是導入 Oracle Database Application High Availability 的建構區塊:

      1. 使用資料庫服務
      2. 設定高可用性的 URL 或連線字串
      3. 啟用快速應用程式通知 (FAN)
      4. 導入 Java 應用程式的清空及持續提供資料庫可用性
    • 請考慮使用 Oracle Database Autonomous Recovery Service 作為建議的 Oracle Database 備份目的地。

      下列兩個可用選項可用來儲存備份:在 Oracle Exadata Database Service 所在的相同 Azure 區域中,或與 Azure 區域關聯的預設 OCI 區域中

探索更多

深入瞭解 Oracle Cloud Infrastructure (OCI) 和 Microsoft Azure:

請檢閱下列其他資源:

如果您沒有 Oracle Cloud 帳戶或 Microsoft Azure 帳戶,請參閱下列資訊以註冊免費帳戶:

確認

  • 授權者Leo Alvarado, Paul Parkinson, Julien Silverston, Thomas Van Buggenhout, Tammy Bednar