Connect Azure Kubernetes with Oracle Exadata Database Service on Oracle Database@Azure

瞭解如何將 Microsoft Azure Kubernetes Service 連線至 Oracle Database@Azure 上的 Oracle Exadata Database Service ,以發揮最佳 Oracle Database 效能、高可用性和可擴展性,包括 Oracle Real Application Clusters (Oracle RAC) 和 Azure 應用程式的安全性。這可讓應用程式開發人員從 Microsoft Azure 入口網站部署 Kubernetes 應用程式,並與位於 Azure 資料中心的 Oracle Exadata Cloud Infrastructure 連線至 Oracle Exadata Database Service ,並與 Azure Kubernetes Service 鄰近執行,以達到最低的延遲。

Before You Begin - 開始之前

若要利用此參考架構,需要下列項目:

  • Microsoft Azure Kubernetes 服務 (AKS)
  • 部署您的 AKS 叢集
  • 使用下列項目設定 Oracle Database@Azure
    • 存取 Azure 訂閱和目錄
    • 存取 OCI 租用戶
    • Azure 與 Oracle 雲端之間的作用中 Oracle Database@Azure 多雲端連結
在佈建 Oracle Database@Azure 之前,請確定您有足夠的 Oracle Exadata Database Service 限制和 Oracle Cloud Infrastructure (OCI) 服務限制:
  1. 在 OCI 功能表中,按一下治理與管理
  2. 在「租用戶管理」底下,按一下限制、配額和用量
  3. 從「服務」下拉式功能表中,選取資料庫

架構

此架構顯示部署在 Microsoft Azure 區域中 Azure Kubernetes Service (AKS) 和 Oracle Exadata Database Service 的容器化應用程式,自動備份至 Azure 區域中的 Oracle Database Autonomous Recovery Service 或 OCI 區域中的 OCI Object Storage

Kubernetes 是一個可攜式、可擴充的開源平台,用於管理容器化工作負載和服務,有助於宣告式組態和自動化。Kubernetes 被視為雲端原生運算的基石技術,具有大量且快速成長的生態系統。Kubernetes 服務、支援和工具已廣泛提供。

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

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

下圖說明此參考架構。

azure-kube-exadata-db.png 的描述如下
azure-kube-exadata-db.png 圖解描述

azure-kube-exadata-db-oracle.zip

架構具有下列元件:

  • 區域

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

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

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

  • Azure 可用性區域

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

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

  • Microsoft Azure 虛擬網路

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

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

  • 專用基礎架構上的 Exadata 資料庫服務

    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 資料庫。

  • Azure Kubernetes 服務

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

  • Oracle Database@Azure

    Oracle Database@Azure 是在 Microsoft Azure 資料中心部署的 Oracle Cloud Infrastructure (OCI) 上執行的 Oracle Database 服務 (Oracle Exadata Database Service on Dedicated InfrastructureOracle Autonomous Database Serverless)。此服務提供與 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 租用戶。Oracle Autonomous Database 建置在 Oracle Exadata Cloud Infrastructure 上,具備自我管理、自我保護及自我修復等功能,有助於免除手動資料庫管理和人為錯誤。Autonomous Database 可使用您選擇的大型語言模型 (LLM) 和部署位置,使用內建 AI 功能,開發具備任何資料的可擴充 AI 應用程式。

    Oracle Exadata Database ServiceOracle Autonomous Database Serverless 皆透過原生 Azure 入口網站輕鬆佈建,能夠存取更廣泛的 Azure 生態系統。

    客戶的商業利益包括使用 Azure 承諾 (MACC) 來採購 Oracle Exadata Database ServiceOCI Object StorageOracle Cloud Infrastructure Networking 資料傳輸費用。您可以利用現有的 Oracle 授權作為 BYOL 以及 Microsoft Azure Marketplace 中的授權、協作支援模型和採購,全部全部以統一帳單形式呈現。

  • 控制平面

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

  • 物件儲存

    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 Key Vault,而不是將連線字串密碼和公事包 (如果適用) 儲存在 Azure Kubernetes Service 的 Kubernetes 加密密碼中。
  • 網路
    • 至少需要一個具有委派子網路的 Azure Virtual Network (VNet) 連附至 Oracle Database 網路連附項。

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

  • 使用狀態
    • 考慮使用並設定通用連線集區 (UCP)、Oracle JDBC 驅動程式及 Oracle Real Application Clusters (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 區域。

部署

請執行下列作業來部署此參考架構:

  1. 若要部署 Azure Kubernetes Service (AKS) 叢集,請前往快速啟動:使用 Azure 入口網站部署 Azure Kubernetes 服務 (AKS) 叢集,然後依照指示部署 Azure Kubernetes 叢集。
  2. 從 Azure Marketplace 訂閱 Oracle Database@Azure
  3. 在 VNet 的委派子網路中部署 Oracle Exadata 虛擬叢集。
  4. 在相同 VNet 中的個別子網路中部署 Azure Kubernetes。
  5. 請更新您的應用程式定義,以使用連線字串連線至您的資料庫。

確認

  • 授權者Suzanne Holliday, Julien Silverston, Paul Parkinson, Leo Alvarado