使用 Oracle Exadata Database Service 建置 Azure DevOps CI/CD 管線

分割堆疊是在兩個雲端 (即 Microsoft Azure 上的應用程式) 部署工作負載,並在 Oracle Cloud Infrastructure (OCI) 上部署 Oracle Database 服務時。

應用程式堆疊至堆疊是當一個由 Azure 應用程式和資料庫組成的完整堆疊,與位於 OCI 的另一個完整堆疊 (應用程式和 Oracle Database) 交互運作並共用資料。

對於各種業務和技術考量,您可以選擇跨 Oracle Cloud 和 Microsoft Azure 配置雲端工作負載。為了確保安全性並將延遲降到最低,Oracle Cloud 與 Azure Cloud 環境之間需要安全互連。

Oracle 和 Microsoft 已在特定區域的 Oracle Cloud Infrastructure 和 Microsoft Azure 之間建立專用跨雲端連線 ( 適用於 Microsoft Azure 的 Oracle Interconnect)。適用於 Microsoft Azure 的 Oracle Interconnect 可讓您設定跨雲端工作負載,無需透過網際網路進行雲端之間的流量。

因此,使用者可以在 Oracle Cloud Infrastructure 上使用 Oracle Exadata Database Service on Dedicated Infrastructure 建立並部署 Azure DevOps CI/CD Pipelines,並設定支援的虛擬網路基礎架構資源,以實現高效能和高可用性解決方案的分割堆疊部署。

架構

在此參考架構中,您將使用 Azure DevOps 搭配 Oracle Exadata Database Service on Dedicated Infrastructure 來建置和部署 CI/CD 管線。

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

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

此架構的主要元件是 Oracle Database Operator,可管理 Oracle Database 的生命週期、將佈建、調整規模、備份、更新及維護等作業自動化。這項整合可確保有效率的資料庫管理,以及在 AKS 和 Oracle Database 的微服務之間無縫接軌的互動。微服務使用 Azure ExpressRoute 和 Oracle FastConnect,透過互連安全地連線至 Oracle Database,以透過 Azure Key Vault 管理的證明資料維護安全可靠的資料庫連線。

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

下圖說明此參照架構。



oracle-exadata-azure-arch-oracle.zip

此架構具有下列元件:

  • 租用戶

    租用戶是 Oracle 在您註冊 Oracle Cloud Infrastructure 時在 Oracle Cloud 內設定的安全隔離分割區。您可以在您租用戶的 Oracle Cloud 中建立、組織及管理您的資源。租用戶與公司或組織同義字。通常,公司會有單一租用戶,並反映該租用戶內的組織結構。單一租用戶通常與單一訂閱關聯,而單一訂閱通常只有一個租用戶。

  • 地區

    Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,且遠距離可加以區分 (跨國家,甚至是大陸)。

  • 區間

    區間是 Oracle Cloud Infrastructure 租用戶內的跨區域邏輯分割區。使用區間組織您在 Oracle Cloud 中的資源、控制對資源的存取,以及設定使用配額。若要控制對指定區間中資源的存取,您必須定義原則,指定能夠存取資源的人員及其可執行的動作。

  • 可用性網域

    可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,提供容錯能力。可用性網域不共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域發生故障並不會影響該區域中的其他可用性網域。

  • 容錯域

    容錯網域是可用性網域內的一組硬體和基礎設施。每個可用性網域都有三個容錯域,分別具備獨立的電源和硬體。當您將資源分配給多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器失敗、系統維護,以及電源失敗。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。就像傳統資料中心網路一樣,VCN 可讓您完整控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後加以變更。您可以將 VCN 分割成子網路,子網路可以限定為區域或可用性網域。每個子網路都是由不與 VCN 中其他子網路重疊的連續位址範圍所組成。您可以在建立子網路後變更其大小。子網路可以是公用或專用。

  • 負載平衡程式

    Oracle Cloud Infrastructure Load Balancing 服務提供從單一進入點到後端多部伺服器的自動流量分配。

  • 安全清單

    您可以為每個子網路建立安全規則,指定子網路中必須允許進出的流量來源、目的地和類型。

  • 服務閘道

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

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 提供一個在您的資料中心與 Oracle Cloud Infrastructure 之間建立專屬私人連線的簡便方式。與網際網路式連線相比,FastConnect 提供更高的頻寬選項和更可靠的網路體驗。

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service on Dedicated Infrastructure 在 OCI 上的 Oracle Exadata Cloud Infrastructure 上執行。對於想要在公有雲執行的人來說,這是理想的解決方案,可在雲端以服務形式執行企業級資料庫。您將獲得 Oracle Database 及 Exadata 平台的所有強大功能。Oracle 管理基礎架構、廣泛的雲端自動化以及按使用付費的雲端經濟效益,是您專屬的雲端服務。

  • 物件儲存

    物件儲存可讓您快速存取各種內容類型的大量結構化和非結構化資料,包括資料庫備份、分析資料,以及豐富的內容 (例如影像和影片)。您可以安全地儲存資料,然後直接從網際網路或雲端平台內擷取資料。您可以無縫擴充儲存體,而不會發生任何效能或服務可靠性的降低情況。針對快速、立即且經常存取的「熱」儲存體,使用標準儲存體。將封存儲存用於保留很長一段時間、極少或極少存取的「冷」儲存。

  • 識別與存取管理 (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) 是 Oracle Cloud Infrastructure (OCI) 和 Oracle Cloud Applications 的存取控制層。IAM API 和使用者介面可讓您管理識別網域和識別網域內的資源。每個 OCI IAM 識別網域都代表一個獨立的識別和存取管理解決方案,或是不同的使用者群體。

  • 稽核

    Oracle Cloud Infrastructure Audit 服務會自動將所有支援之 Oracle Cloud Infrastructure 公用應用程式設計介面 (API) 端點的呼叫記錄為日誌事件。目前,所有服務都支援由 Oracle Cloud Infrastructure Audit 進行記錄。

此架構支援下列 Microsoft Azure 元件。

  • Microsoft Azure VNet 和子網路

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

    您可以在 Azure 中定義 VNet。它可以有多個非重疊的 CIDR 區塊子網路,您可以在建立 VNet 之後新增這些子網路。您可以將 VNet 區隔成子網路,讓子網路可以擴展至某個區域或可用性區域。每個子網路都是由不與 VNet 中其他子網路重疊的連續位址範圍所組成。使用 VNet 以邏輯方式將您的 Azure 資源隔離在網路層次。

  • 虛擬網路閘道

    虛擬網路閘道允許 Azure VNet 與 Azure 外部網路之間的流量,不論是透過公用網際網路或使用 ExpressRoute,視您指定的閘道類型而定。此網路閘道不是用於 Oracle Database Service for Microsoft Azure Network Link。您可以改用它來管理 VNet 中對等互連 OracleDB for Azure 之內部部署的網路。

  • Microsoft Azure 路由表 (使用者定義路由 - UDR)

    在 Azure 子網路、VNets 和 Azure 以外的網路之間遞送表格直接流量。

    虛擬路由表包含規則,可將流量從子網路遞送至 VNet 以外的目的地,通常透過閘道。路由表與 VNet 中的子網路關聯。

  • Microsoft Azure 可用性網域

    Azure Availability Domain 或 availability set 是虛擬機器的邏輯群組。

建議

使用下列建議作為起點。您的需求可能與此處描述的架構不同。
  • VCN

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

    選取未與任何其他網路 (在 Oracle Cloud Infrastructure 中、您的內部部署資料中心或其他雲端提供者) 重疊的 CIDR 區塊,以設定專用連線。

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

    設計子網路時,請考慮流量和安全性需求。將特定層或角色內的所有資源連附至相同的子網路,以作為安全界限。

  • 安全

    使用 Oracle Cloud Guard 主動監控及維護 Oracle Cloud Infrastructure 中資源的安全性。Cloud Guard 使用偵測器處方,您可以定義這些處方來檢查資源是否有安全漏洞,以及監控操作員和使用者是否有危險的活動。偵測到任何組態錯誤或不安全的活動時,Cloud Guard 會建議更正動作,並根據您可以定義的回應器處方協助採取這些動作。

    對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是與以最佳做法為基礎之 Oracle 定義的安全原則處方關聯的區間。舉例來說,安全區域中的資源不得從公用網際網路存取,而必須使用客戶管理的金鑰加密。當您在安全區域中建立及更新資源時,Oracle Cloud Infrastructure 會根據安全區域處方中的原則驗證作業,並拒絕違反任何原則的作業。

  • 雲端保全

    複製並自訂 Oracle 提供的預設處方,以建立自訂偵測器和回應器處方。這些處方可讓您指定哪些類型的安全違規會產生警告,以及允許對它們執行哪些動作。例如,您可能會想要偵測可見性設為公用物件儲存的儲存桶。

    在租用戶層級套用 Cloud Guard 以涵蓋最廣泛的範圍,並降低維護多個組態的管理負擔。

    您也可以使用「受管理清單」功能,將特定組態套用至偵測器。

  • 安全區域

    對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是與以最佳做法為基礎之 Oracle 定義的安全原則處方關聯的區間。舉例來說,安全區域中的資源不得從公用網際網路存取,而必須使用客戶管理的金鑰加密。當您在安全區域中建立及更新資源時,Oracle Cloud Infrastructure 會根據安全區域處方中的原則驗證作業,並拒絕違反任何原則的作業。

  • 網路安全群組 (NSG)

    您可以使用 NSG 定義一組適用於特定 VNIC 的輸入和輸出規則。建議您使用 NSG 而非安全清單,因為 NSG 可讓您將 VCN 的子網路架構與應用程式的安全需求分開。

注意事項

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

  • 實行
    計畫導入此解決方案時,請複查下列項目:
    • 在佈建之前,請先確定您有足夠的 Oracle Exadata Database Service 限制和 OCI 服務限制。如需詳細資訊,請參閱 OCI 服務限制要求提高服務限制
    • 規劃網路拓樸:
      • 您需要至少一個 Azure 虛擬網路 (VNet),才能與對應的 OCI 虛擬雲端網路 (VCN) 配對。
      • 任何 Azure VNets 和 OCI VCN 的 CIDR 區塊不得重疊。
    • Oracle Interconnect for Microsoft Azure 先決條件:
      • 一個 Oracle Cloud 帳戶。如果您沒有帳戶,可以註冊 Oracle Cloud Free Tier 帳戶
      • Azure 帳戶。如果沒有帳戶,您可以註冊 Azure 免費帳戶
      • 根據此參照架構中描述的拓樸,部署資源所需的權限和資源配額。
      • 收集 OCI 區域、Azure 區域、互連區域以及傳輸量需求。
    • 網路

      Azure 中的應用程式和 OCI 中的 Oracle Database 必須位於相同的地理區域。例如,Azure West European (位於荷蘭阿姆斯特丹) 中的應用程式,以及荷蘭西北部 (阿姆斯特丹) OCI 中的 Oracle Database。區域是由一或多個可用性網域組成的局部地理區域。區域與其他區域無關,且遠距離可分開 (跨國家或大陸)。

  • 使用狀態

    Oracle Exadata Database Service on Dedicated Infrastructure 提供內建 Oracle 最佳實務功能。使用雲端自動化部署資料庫以獲得最佳效能、可用性和安全性,您的系統將進行最佳化設定,以提供最高的服務等級。它會自動部署 Oracle RAC,以提供調整為在 Oracle Exadata Database Service 雲端平台上執行的可擴充高可用性資料庫。Oracle RAC 可將工作分散到多個資料庫執行處理,以避免發生非計畫性的失敗。此外,它還會將即將進行維護的伺服器工作自動移轉至仍在線上的其他伺服器,以避免維護活動的停機時間。

    Oracle Data Guard 提供即時災害保護。如果遺失主要資料庫或資料中心,您的工作負載可能會容錯移轉至 Oracle Data Guard 自動維護的待命網站。Oracle Exadata Database Service on Dedicated Infrastructure 可讓您輕鬆透過單一 API 呼叫來啟用 Oracle Data Guard,或使用雲端自動化在 UI 中按幾下滑鼠。同樣地,自動化也支援關鍵使用案例,例如將主要資料庫切換至災害復原網站、在容錯移轉後切換回主要資料庫,以及復原主要資料庫。

    Oracle Exadata Database Service 支援所有 Oracle Maximum Availability (MAA) 技術,這些技術構成雲端中 Oracle 資料庫的高可用性藍圖。

認可

Authors: Leo Alvarado, Suzanne Holliday, Paul Parkinson