將移轉的 MongoDB 工作負載部署到 Oracle Autonomous Transaction Processing Serverless

Migrate an existing workload that uses a document database, in this case MongoDB, to Oracle Autonomous Transaction Processing Serverless (ATP Serverless) database on Oracle Cloud Infrastructure (OCI) to modernize the development of your JSON-centric applications alongside other multi-model workloads.

使用文件和文件資料庫來發展資料綱要和應用程式的工作負載和應用程式,受開發人員的彈性影響。結構靈活性、快速開發和可擴展性可加速應用程式功能的原型設計、簡化應用程式演進,以及建立迭代較小的應用程式和功能的能力,讓開發人員可以擴展以因應大型使用者群。然而,這些類型的工作負載面臨各種挑戰,包括更弱的交易保證、資料查詢靈活性,以及無法支援文件上的其他工作負載,例如分析或機器學習。

如果這些工作負載可以受益於傳統文件資料庫的優勢,並利用關聯式資料庫的優勢,該怎麼辦?例如,擁有更強大的交易保證和新增功能 (例如分析和機器學習),而無需將資料複製到另一個資料庫或系統。

Autonomous Transaction Processing Serverless 是一項完全自動化的資料庫服務,可同時執行交易、分析和批次工作負載。為了加速效能,它會預先設定資料列格式、索引和資料快取,同時提供可擴展性、可用性、透明安全性和即時作業分析。應用程式開發人員和 DBA 可在不犧牲功能性或原子性、一致性、隔離性及持久性 (ACID) 特性的情況下,快速且符合成本效益地開發和部署應用程式。

功能架構

此參考架構假設您的工作負載具有應用程式和 MongoDB 資料庫 (不論是內部部署或雲端),並且將移轉至 OCI。內容描述未來狀態架構及其優點、您可以如何部署該架構,以及您可以用來增強現有工作負載的額外功能。

此參考架構著重於移轉工作負載的部署,而非移轉處理本身。如需移轉程序的詳細資訊,請參閱瀏覽更多一節。

此架構中使用的其中一個主要產品是 Oracle Database API for MongoDB,可讓應用程式使用 MongoDB 驅動程式、工具和 SDK,與 Oracle Database 中的 JSON 文件集合互動。這可讓現有的應用程式程式碼使用儲存在 Autonomous Transaction Processing 無伺服器 (ATP 無伺服器) 中的資料,而不需要重製程式碼。

下圖說明由資料庫、後端和前端層組成的典型應用程式。



mongodb-atp-s 邏輯 -arch-migration-oracle.zip

MEAN 堆疊是一種用來實行此樣式的常用堆疊:
  • MongoDB:文件資料庫
  • Express:後端架構
  • 角度:前端框架
  • Node.js:後端伺服器

此範例使用 MEAN 堆疊將現有部署移轉至 OCI 和 ATP Serverless。

此工作負載直接移轉至 OCI 和 ATP Serverless,包含以下步驟的高層級:

  1. 部署 ATP 無伺服器執行處理,在建立 Oracle Database Mongo DB API 時啟用。
  2. 將中繼資料與資料從 MongoDB 移轉至 ATP 無伺服器。
  3. 將應用程式伺服器部署為使用 VM、容器或 Kubernetes 執行 Node.js 和 Express,使其與 ATP Serverless 相同的區域和可用性網域。
  4. 將後端應用程式程式碼部署至應用程式伺服器。
  5. 使用與目前應用程式相同的 MongoDB 工具和驅動程式,將後端應用程式連線至 ATP Serverless。
  6. 將使用者連線至新的應用程式 URI。

工作負載移轉至 ATP 無伺服器之後,有數個功能可用來增強現有功能,無論是 1) 支援額外的非功能需求,例如輕鬆提升擴展性、彈性或高可用性,或 2) 具有額外的功能功能,例如作業報告、分析及機器學習,而不需要從資料庫複製資料。

若要提升擴展性和高可用性,請使用 Autonomous Transaction Processing 無伺服器自動調整功能。只需按一下或 API 呼叫,即可讓工作負載最多使用 3 倍的基準容量,無須停機。請注意,Autonomous Transaction Processing Serverless 使用 Oracle Real Application Clusters (Oracle RAC) 技術來提供高可用性。對於後端層,請使用具有自動調整規則的運算執行處理集區,以啟用應用程式高可用性和擴展性。

由於 Autonomous Transaction Processing Serverless 建立在多重模型、多重工作負載資料庫技術之上,因此您可以新增依賴關聯式、空間、圖形或向量資料類型的功能,這些功能可以與現有應用程式搭配運作。

實體架構

實體架構包括 OCI 中的公用和專用子網路,以及支援高可用性的次要備份區域。

此架構支援下列項目:

  • 前端層
    • 應用程式使用者可以從網際網路或公司網路連線。
    • 使用 OCI Web 應用程式防火牆保護使用者連線。
    • 應用程式的使用者連線負載平衡,以提升復原能力和擴展性。
    • 負載平衡器已部署高可用性。
  • 後端層
    • 應用程式伺服器使用執行處理集區以高可用性方式部署。
    • 執行處理集區可搭配自動調整功能使用,以達到水平擴展性。
    • 執行處理集區設定為在與 ATP 無伺服器相同的可用性網域中部署執行處理,以讓應用程式和資料庫共置,因此將連線延遲最佳化。
    • 執行處理集區設定為在放置 ATP Serverless 的相同可用性網域中,將執行處理分散到容錯域,以增加工作負載彈性。
  • 資料庫分層
    • ATP Serverless 提供 Oracle Real Application Clusters (Oracle RAC) 的高可用性,以及數個在服務執行處理底下的資料庫節點。因此,依預設,資料庫層具備高可用性和彈性。
    • 在 ATP Serverless 中啟用的 Oracle Database API for MongoDB,可讓您在不變更的情況下使用現有的應用程式程式碼。
    • Oracle Database API for MongoDB 具有高度復原能力,ATP Serverless 可在內部保證抗逆力。
    • 可承諾量無伺服器可使用自動調整,調整以增加及減少系統負載。
    • 透過以 Oracle Autonomous Data Guard 為基礎的跨區域災害復原,實現 ATP 無伺服器業務連續性。
    • 跨區域 Oracle Autonomous Data Guard 待命復原時間目標 (RTO) 為十五分鐘,而復原點目標 (RPO) 為一分鐘。
  • 災害復原
    • 兩個區域支援整個雲端部署的跨區域災害復原。
    • 待命區域支援預部署雲端執行處理的暖待命資料庫,以降低總復原時間目標 (RTO)。
    • 主要區域中的 ATP Serverless 在待命區域上有 Oracle Autonomous Data Guard 跨區域對等體
    • 後端層執行處理集區已預先設定集區中的執行處理數目下限,而 OCI Full Stack Disaster Recovery DR 計畫則會自動執行容錯移轉的每個步驟,可變更容錯移轉後應執行的運算執行處理數目。度量型自動調整組態的定義是決定集區中的執行處理數目下限和上限,以及用於橫向擴展和橫向縮減的度量。
    • 待命區域使用類似的拓樸部署,以縮短整體復原時間目標。
    • OCI Full Stack Disaster Recovery 可將整個堆疊的容錯移轉自動化至待命區域,並回復至主要區域。
  • 網路
    • 這兩個區域中部署的動態路由閘道都是對等互連的。
    • 內部部署連線運用 Oracle Cloud Infrastructure FastConnect 和網站至網站 VPN 進行備援。
    • 所有來自內部部署和來自網際網路的內送流量都會先遞送至中樞 VCN,然後再遞送至工作負載 VCN。
    • 使用集線器和軸輻網路設計來提高安全態勢,並容納其他工作負載 VCN。
    • 服務會與專用端點一起部署,以提升安全態勢。
    • JSON 工作負載 VCN 會隔離成數個專用子網路,以增加安全態勢。
  • 安全
    • 所有資料在傳輸中和靜態都是安全的。
    • 此部署未針對簡易性所描述的潛在設計改進包括使用完全符合 CIS 規範的登陸區域,以及運用部署在中樞 VCN 中的網路防火牆。網路防火牆會檢查所有流量並強制執行原則,以改善整體安全態勢。


mongodb-atp-s 實體 -arch-oracle.zip

此架構具有下列主要元件:

  • 地區

    OCI 區域是本地化的地理區域,包含一或多個代管可用性網域的資料中心。區域獨立於其他地區,且遠距離能夠分離它們 (跨國家,甚至是大陸)。

  • 虛擬雲端網絡 (VCN) 與子網路

    VCN 是您在 OCI 區域中設定的可自訂軟體定義網路。與傳統資料中心網路一樣,VCN 可讓您控制網路環境。VCN 可以有多個非重疊的無類別網域間路由 (CIDR) 區塊,您可以在建立 VCN 之後變更這些區塊。您可以將 VCN 分隔到子網路中,而子網路的作用領域可以調整到某個區域或可用性網域。每個子網路都是由連續的位址範圍所組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用網路或專用網路。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 會在您的資料中心與 OCI 之間建立專用的專用連線。與基於網際網路的連線相比,FastConnect 提供更高的頻寬選項以及更可靠的網路體驗。

  • 動態路由閘道 (DRG)

    DRG 是一個虛擬路由器,提供相同區域 VCN 之間、VCN 與區域外部網路 (例如另一個 OCI 區域中的 VCN、內部部署網路,或其他雲端提供者中的網路) 的專用網路流量路徑。

  • 網路位址翻譯 (NAT) 閘道

    NAT 閘道可讓 VCN 中的專用資源存取網際網路上的主機,而不會向內送網際網路連線公開這些資源。

  • 服務閘道

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

  • 網際網路閘道

    網際網路閘道允許 VCN 中公用子網路與公用網際網路之間的流量。

  • 負載平衡器

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

  • Web 應用程式防火牆

    Oracle Cloud Infrastructure Web Application Firewall (WAF) 是隨附於強制點 (例如負載平衡器或 Web 應用程式網域名稱) 的符合支付卡產業 (PCI) 規範、以區域為基礎和邊緣強制實行服務。WAF 可保護應用程式免於惡意和不需要的網際網路流量。WAF 可保護任何對網際網路公開的端點,為您的應用系統強制實施一致的規則。

  • Oracle Autonomous Transaction Processing Serverless

    Oracle Autonomous Transaction Processing Serverless 是一款全自動化的資料庫服務,可同時執行交易、分析和批次工作負載。為了加速效能,它會預先設定資料列格式、索引和資料快取,同時提供可擴展性、可用性、透明安全性和即時作業分析。應用程式開發人員和 DBA 可在不犧牲功能性或原子性、一致性、隔離性及持久性 (ACID) 特性的情況下,快速、輕鬆且符合成本效益地開發和部署應用程式。

  • 全端災害復原

    Oracle Cloud Infrastructure Full Stack Disaster Recovery 是一個協調流程和管理服務,可為應用程式堆疊的所有層 (包括基礎架構、中介軟體、資料庫和應用程式) 提供全面的災害復原功能。

  • 物件儲存

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

    針對需要快速、立即及頻繁存取的「熱」儲存使用標準儲存。將封存儲存用於保留一段很長的時間和很少或很少存取的「冷」儲存。

  • Oracle Database API for MongoDB

    Oracle Database API for MongoDB 可讓應用程式使用 MongoDB 驅動程式、工具和 SDK,與 Oracle Database 中的 JSON 文件集合互動。

實體架構變異

ATP Serverless 提供的完全託管 MongoDB API 是大部分工作負載的最佳解決方案,因為它更容易管理。此實體架構變體使用在每個應用程式伺服器中執行的客戶管理 Oracle REST Data Services 部署。

如果需要手動控制 Oracle REST Data Services 的組態和管理,則可以使用客戶管理的 Oracle REST Data Services。例如,允許應用程式使用較大的連線集區。

附註:

如果有特定的工作負載需求,請使用此架構變體。只有進階使用者才能部署此架構變異。

本節僅說明與先前描述的實體架構相比的差異,因此除非另有說明,否則所有實體架構設計原則都是有效的。

下方的架構圖說明如何部署變體。為了簡化,只有部署在 JSON 工作負載 VCN 中的雲端資源會被描述,因為其餘部署與以前所述相同。



mongodb-atp-s-arch- 變數 -oracle.zip

以下為變體的前端層:
  • 後端應用程式程式碼會部署在屬於執行處理集區的應用程式伺服器中。
  • 負載平衡器會分配內送使用者要求,因此前端層可水平擴展,而且不會發生單點故障。
  • 客戶管理的 Oracle REST Data Services 會安裝在每個應用程式伺服器上,並設定為啟用 MongoDB API,讓應用程式可以使用 MongoDB 工具和驅動程式連線至資料庫。
  • 客戶管理的 Oracle REST Data Services 設定為透過設定較大的連線集區或使用其他資料庫服務,根據工作負載的非功能需求進行調整。
  • 後端程式碼和客戶管理的 Oracle REST Data Services 都已預先安裝並預先設定在集區使用的執行處理組態中,因此只要將執行處理新增至集區,就能在執行處理啟動設定之後執行後端並連線至資料庫。

建議

使用下列建議作為進一步改善及發展工作負載的起點。 您的需求可能與此處說明的架構不同。

請注意下列事項:

  • 應用程式部署

    如果應用程式可以在容器中執行,請使用 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 的容器型部署。

  • 安全
    • 使用 Oracle Data Safe 可進一步提高工作負載安全態勢,並且能夠執行資料庫稽核。
  • 可觀測性
    • 使用 OCI AuditOracle Autonomous Database Serverless 以外的所有 OCI 服務執行鑑識稽核。
    • 您可以使用 OCI 監控OCI 日誌記錄和 OCI 日誌記錄分析來完整檢視環境作業狀態。
  • 營運效率
    • 如果 ATP 無伺服器 JSON 工作負載是更廣泛的資料庫機組的一部分,以提高成本效益,請使用彈性集區。
    • 啟用 Oracle Cloud Infrastructure Database Management。此服務提供一組完整的資料庫效能監控和管理功能,以簡化 ATP 無伺服器執行處理。
  • 應用程式演進
    • 使用 SQL 和前端 (例如 APEX 或 Oracle Analytics Cloud) 在 ATP Serverless 中部署作業分析和即時報告,而無需將資料移出資料庫來進行可信任和即時的資料分析。
    • 使用 ATP Serverless 和 Oracle Machine Learning,無需移動資料即可使用 JSON 資料建置和訓練模型,並將模型與現有工作負載一起部署,以有效率地推論。
    • 對於應用程式核心以外的其他使用案例,請考慮使用 Oracle Autonomous Database Select AI 和查詢 JSON 和保留中繼資料的資料庫檢視。這可讓使用者使用自然語言查詢 JSON 資料。
    • 使用 ATP 無伺服器儲存額外的資料類型 (關聯式、向量、空間或圖表),以增加工作負載功能和彈性。

確認

  • 作者José Cruz
  • 貢獻者Massimo Castelli, Simon Griffith, Hermann Baer, Matt DeMarco, Julian Dontcheff