將已移轉的 MongoDB 工作負載部署到 Oracle Exadata Database Machine
使用文件和文件資料庫來發展資料綱要和應用程式的工作負載和應用程式,受開發人員的彈性影響。結構靈活性、快速開發和可擴展性可加速應用程式功能的原型設計、簡化應用程式演進,以及建立迭代較小的應用程式和功能的能力,讓開發人員可以擴展以因應大型使用者群。然而,這些類型的工作負載面臨各種挑戰,包括更弱的交易保證、資料查詢靈活性,以及無法支援文件上的其他工作負載,例如分析或機器學習。
如果這些工作負載可以受益於傳統文件資料庫的優勢,並利用關聯式資料庫的優勢,該怎麼辦?例如,擁有更強大的交易保證和新增功能 (例如分析和機器學習),而無需將資料複製到另一個資料庫或系統。
Oracle Database 23ai 旨在簡化 AI、微服務、圖形、文件、空間和關聯式應用程式的開發,是一個融合式資料庫平台,提供單一強大解決方案所需的一切功能。
Oracle Exadata Database Machine 的設計為效能最高、可用度最高的 Oracle Database 執行平台。Exadata 會執行所有類型的資料庫工作負載,包括線上異動處理 (OLTP)、資料倉儲存 (DW) 以及混合工作負載的合併。簡單又快速的導入 Exadata 旨在支援和保護最重要的資料庫,是理想的資料庫即服務基礎。
功能架構
此參考架構著重於部署移轉的工作負載,而非移轉處理。若要深入瞭解移轉程序,請參閱探索更多一節。
此架構中使用的其中一個主要功能是 MongoDB 的 Oracle Database API,可讓應用程式使用 MongoDB 命令與 Oracle Database 中的 JSON 文件集合互動。這可讓現有的應用程式程式碼使用儲存在 Oracle Database 23ai 中的資料,而不需要重製程式碼。
下圖說明由資料庫、後端層和前端層組成的典型應用程式。
mongodb-logical-arch-migration.zip
用來實行此樣式的常用堆疊是 MEAN 堆疊:
- MongoDB :文件資料庫
- Express:後端架構
- 角度:前端框架
- Node.js:後端伺服器
此架構使用 MEAN 堆疊作為現有部署的範例,以移轉至 Oracle Database 23ai。將此工作負載移轉至 Oracle Database 23ai 包含下列高階步驟:
- 使用 Oracle Real Application Clusters (Oracle RAC) 在多個資料庫節點的 Exadata 中部署高可用性 Oracle Database 23ai 執行處理。
- 將中繼資料和資料從 MongoDB 移轉至 Oracle Database 23ai。
- 安裝並設定後端層運算,無論是 VM、容器或 Oracle REST Data Services。
- 設定 Oracle REST Data Services 以啟用 MongoDB API,讓應用程式能夠使用 MongoDB 驅動程式與資料庫通訊。
- 將應用程式設定為使用新的資料庫連線字串。
- 使用目前應用程式上使用的相同 MongoDB 工具和驅動程式,將後端應用程式連線至 Oracle Database 23ai。
在將工作負載移轉至 Oracle Database 之後,您可以啟用其他功能 (例如改善的安全性、作業報告、分析和機器學習) 來增強功能,而無需從資料庫複製資料。Oracle Database 23ai 是一個多模型的多工作負載平台,可讓您在現有應用程式中無縫整合使用關聯式、空間、圖形或向量資料類型的功能。
如果要提升工作負載的擴展性,請將更多的運算和記憶體配置給資料庫。由於 Oracle Database 23ai 是多模型、多工作負載資料庫技術,因此可以新增依賴關聯式、空間、圖形或向量資料類型的額外功能,並與現有應用程式搭配運作。
實體架構
前端層
- 使用目前的部署。
- 使用者可以從網際網路或公司網路連線。
- DNS 功能已設定為在發生容錯移轉時,將要求遞送至待命資料中心。
後端層
- 現有的應用程式會部署並與相同的運算執行處理搭配使用。
- 客戶管理的 Oracle REST Data Services 會共置並部署在應用程式伺服器上。應用程式程式碼可以透過 Oracle REST Data Services 連線至 Oracle Database 23ai。
- 採用目前的可擴充性機制,即可實現後端層可擴充性,並隱含調整安裝在每個應用程式伺服器中的 Oracle REST Data Services。
資料庫分層
- Oracle Database 23ai 部署在 Exadata 中,用於將 JSON 文件儲存並提供給後端層。
- 使用 Oracle REST Data Services 啟用 Oracle Database API for MongoDB,讓現有應用程式程式碼無需變更程式碼即可使用。
業務連貫性
- 使用 Oracle Data Guard 災害復原策略達成。
- 假設採用暖災復原策略,其中後端層和相關資源已部署並在執行中。
下圖說明此參照架構。
mongodb-exadata- 機器實體 -arch.zip
實體架構的設計:
業務連貫性
- 有兩個部署相同的資料中心:一個作用中,另一個位於待命資料庫。
- DNS 流量操控會將使用者要求導向至作用中資料中心。如果在應用程式層執行的 DNS 狀況檢查探測經常失敗,系統會重新設定 DNS,將流量路由至待命資料中心工作負載。
- 負載平衡器會將內送要求分散至多個後端層 VM,以防止發生單一失敗點。
- 後端層有數個 VM 可處理使用者要求。
- 客戶管理的 Oracle REST Data Services 會部署並設定在後端層 VM 上。當您新增 VM 時,應用程式伺服器和 Oracle REST Data Services 都會自動擴展。
- 復原時間目標 (RTO) 不僅取決於資料庫容錯移轉,還完全容錯移轉至待命資料中心的其他工作負載元件。
- 資料庫 RTO 和 RPO (復原點目標) 取決於設定的 Oracle Data Guard 保護模式。
- 資料庫容錯移轉將根據業務持續性的詳細需求,運用 Oracle Data Guard 手動或自動容錯移轉。
網路
- 有一個公用子網路可接收來自網際網路的內送使用者要求。
- 負載平衡器要求會遞送至服務使用者要求的後端層伺服器。
- Exadata VM 會連附至從屬端和管理網路。
- 透過 Oracle REST Data Services 對資料庫進行的後端層要求會使用從屬端網路位址。
- 這兩個資料中心會與支援 Oracle Data Guard 組態所需的頻寬和低延遲互連。
資料庫
- Oracle Database 23ai 部署在 Exadata VM 叢集中。
- VM 叢集使用數個資料庫節點來提供高可用性。
- Oracle RAC 可確保資料庫針對工作負載使用數個資料庫節點。
安全
- 所有資料在傳輸中和靜態都是安全的。
此部署未針對簡易性驗證所描述的潛在設計改善包括:
- 使用作用中資料保全,讓待命資料庫能夠進行唯讀存取和卸載作業分析查詢。
建議
- 應用程式部署
如果應用程式可以在容器中執行,請考慮使用 Kubernetes 的容器型部署。如果使用容器,請考慮使用已安裝後端程式碼和客戶管理的 Oracle REST Data Services 容器映像檔。
- 安全
請考慮使用 Oracle Database Advanced Security Option 功能來加密靜態資料並啟用動態資料隱匿,使用 Oracle Database Advanced Security Option 時必須具備 Oracle Database Enterprise Edition 授權。
- 可觀測性
請考慮使用 Oracle Data Safe 進一步增加工作負載安全態勢,並且能夠執行資料庫稽核。
- 應用程式演進
- 您可以考慮使用 SQL 和 Oracle APEX 等前端,在 Oracle Database 23ai 中部署作業分析和即時報告,將資料保留在資料庫中,以進行值得信賴的即時分析。
- 您可以考慮使用 Oracle Database 23ai 來進行使用 Oracle Machine Learning for SQL 的機器學習、使用 JSON 資料建置和訓練模型,而無需移動資料,以及將模型與現有工作負載一起部署以有效率地推論。
- 您可以考慮使用資料庫來儲存其他資料類型 (關聯式、向量、空間或圖表),以增加工作負載功能和彈性。
- 您可以考慮使用 Exadata 和 Oracle Database 23ai 來進行超出作業分析的分析,並受益於針對資料分析量身打造的高效率分欄格式「混合分欄壓縮」,藉此提高分析效能,同時減少儲存資料所需的空間。Exadata 支援「混合分欄壓縮」,並隨附於 Oracle Database Enterprise Edition 授權中。