將已移轉的 MongoDB 工作負載部署至 Oracle Database Appliance
使用文件和文件資料庫來發展資料綱要和應用程式的工作負載和應用程式,受開發人員的彈性影響。結構靈活性、快速開發和可擴展性可加速應用程式功能的原型設計、簡化應用程式演進,以及建立迭代較小的應用程式和功能的能力,讓開發人員可以擴展以因應大型使用者群。然而,這些類型的工作負載面臨各種挑戰,包括更弱的交易保證、資料查詢靈活性,以及無法支援文件上的其他工作負載,例如分析或機器學習。
如果這些工作負載可以受益於傳統文件資料庫的優勢,並利用關聯式資料庫的優勢,該怎麼辦?例如,擁有更強大的交易保證和新增功能 (例如分析和機器學習),而無需將資料複製到另一個資料庫或系統。
Oracle Database 23ai 旨在簡化 AI、微服務、圖形、文件、空間和關聯式應用程式的開發,這是一個融合式資料庫平台,提供單一強大解決方案所需的一切功能。
Oracle Database Appliance 是一個工程系統,可簡化高可用性 Oracle Database 解決方案的部署、管理和支援。它整合了軟體、運算、儲存和網路,為各種線上交易處理 (OLTP)、分析、資料倉儲和 AI 應用程式提供可靠的效能。
功能架構
此參考架構著重於部署移轉的工作負載,而非移轉處理。若要深入瞭解移轉程序,請參閱探索更多一節。
此架構中使用的其中一個主要功能是 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 Database Appliance 。
- 在 Oracle Database Appliance 中建立 Oracle Database 23ai 執行處理。
- 將中繼資料和資料從 MongoDB 移轉至 Oracle Database 。
- 在 Oracle Database Appliance 中建立 VM,以執行後端層和 Oracle REST Data Services。
- 在 Oracle Database Appliance VM 中部署並設定後端層和 Oracle REST Data Services。
- 設定 Oracle REST Data Services 以啟用 MongoDB API,讓應用程式能夠使用 MongoDB 驅動程式與資料庫通訊。
- 將應用程式設定為使用新的資料庫連線字串。
- 使用應用程式中使用的相同 MongoDB 工具和驅動程式,將後端應用程式連線至 Oracle Database 。
在將工作負載移轉至 Oracle Database 之後,您可以啟用其他功能 (例如改善的安全性、作業報告、分析和機器學習) 來增強功能,而無需從資料庫複製資料。Oracle Database 23ai 是一個多模型的多工作負載平台,可讓您在現有應用程式中無縫整合使用關聯式、空間、圖形或向量資料類型的功能。
為了提升工作負載的擴展性,請調整指定給資料庫和應用程式 VM 的 CPU 核心,以便將更多的運算和記憶體配置給資料庫。
為了提高可用性,Oracle Database Appliance 擁有完全備援的高可用性系統 Oracle Database Appliance 高可用性,該系統使用兩個運算節點來部署資料庫和後端層。如果搭配 Oracle Database 23ai Real Application Clusters 使用,則可實現完整的高可用性。
實體架構
前端層
- 使用目前的部署。
- 使用者可以從網際網路或公司網路連線。
- 有一項 DNS 功能,可設定在發生容錯移轉時,將要求遞送至待命資料中心。
後端層
- 現有的應用程式部署在 Oracle Database Appliance VM 中,以允許工作負載整合並降低整體成本。
- 客戶管理的 Oracle REST Data Services 會共置並部署在應用程式伺服器 Oracle Database Appliance VM 上,因此應用程式程式碼可以透過 Oracle REST Data Services 連線至 Oracle Database 23ai。
- 您可以視需要新增更多安裝在每個應用程式伺服器 VM 中的 Oracle Database Appliance VM (隱含調整 Oracle REST Data Services),以實現後端層擴展性。
資料庫分層
- Oracle Database 23ai 是以單一節點組態部署在 Oracle Database Appliance 上,用於將 JSON 文件儲存到後端層。
- 使用 Oracle REST Data Services 啟用 Oracle Database API for MongoDB,讓現有應用程式程式碼無需變更程式碼即可使用。
業務連貫性
- 系統會使用備份式災害復原策略。
- 若要確保在從待命資料中心執行工作負載時,維持相同的應用系統服務層次目標 (SLO),請在該位置執行可比較的 Oracle Database Appliance 基礎架構。
下圖說明此參照架構。
實體架構的設計:
業務連貫性
- 有兩個部署相同的資料中心:一個作用中,另一個位於待命資料庫。
- 備份會儲存在網路檔案儲存體 (NFS) 上,並複製到待命位置。
- 如果作用中資料中心發生故障,最新的備份可讓待命中心快速啟動工作負載。
- DNS 流量操控會將使用者要求導向至作用中資料中心。如果在應用程式層執行的 DNS 狀況檢查探測經常失敗,系統會重新設定 DNS,將流量路由至待命資料中心工作負載。
- 負載平衡器會將內送要求分散至多個後端層 VM,以防止發生單一失敗點。
- 客戶管理的 Oracle REST Data Services 會部署並設定在後端層 VM 上。每次新增 VM 時,應用程式伺服器和 Oracle REST Data Services 都會隨之調整。
- 復原時間目標 (RTO) 取決於待命資料中心內所有工作負載元件的部署,包括從上次複製的備份回復資料庫。
- 復原點目標 (RPO) 取決於最近的複製備份。
網路
- 有一個公用子網路會接收來自網際網路的內送使用者要求。
- Oracle Database Appliance 公用網路介面卡 (NIC) 已連附至工作負載專用子網路。
- 負載平衡器要求會遞送至服務使用者要求的 Oracle Database Appliance 後端層 VM。
資料庫
- Oracle Database 23ai 部署在 Oracle Database Appliance 中。
- 資料會以雙重或三重鏡像方式儲存,以提高資料的韌性。
- 自動化資料庫備份設定為備份到 NFS,這些備份會使用現有的 NFS 複製功能複製到待命資料中心 NFS。
安全
- 以資料庫角色為基礎的存取控制 (RBAC) 功能是用來保護工作負載。
- 如果使用 Oracle Database Enterprise Edition Advanced Security Option,則可以使用通透資料加密 (TDE) 來加密資料庫中儲存的資料。
此部署未針對簡易性驗證所描述的潛在設計改善包括:
- 利用由兩個運算節點組成的 Oracle Database Appliance 高可用性 (HA) 系統,以確保後端工作負載的高可用性。在兩個節點之間以自動重新啟動和容錯移轉部署 VM。
- 使用 Oracle Database Appliance HA 搭配 Oracle Database Enterprise Edition 和 Oracle Real Application Clusters (Oracle RAC) ,為資料庫層提供高可用性。
建議
- 應用程式部署
運用數個後端層 VM 提升韌性。啟用 Oracle Database Appliance 的 CPU 資源管理,以配置正確的 VM 運算量,保證應用程式所需的服務品質。
- 安全
請考慮使用 Oracle Database Advanced Security Option 功能來加密靜態資料並啟用動態資料隱匿,使用 Oracle Database Advanced Security Option 時必須具備 Oracle Database Enterprise Edition 授權。
- 可觀測性
請考慮使用 Oracle Data Safe 進一步增加工作負載安全態勢,並且能夠執行資料庫稽核。
- 營運效率
您可以考慮將基礎架構即程式碼 (即 Terraform) 與 Oracle Database Appliance SDK 搭配使用,以自動部署 VM 和資料庫。
- 應用程式演進
- 您可以考慮使用 SQL 和 Oracle APEX 等前端,在 Oracle Database 23ai 中部署作業分析和即時報告,將資料保留在資料庫中,以進行值得信賴的即時分析。
- 您可以考慮使用 Oracle Machine Learning for SQL 將 Oracle Database 23ai 用於機器學習,使用 JSON 資料建置和訓練模型,而無需移動資料,並將模型與現有工作負載一起部署,以有效率地推論。
- 您可以考慮使用資料庫來儲存其他資料類型 (關聯式、向量、空間或圖表),以增加工作負載功能和彈性。
- 您可以考慮使用 Oracle Database Appliance 和 Oracle Database 23ai 來進行超出作業分析的分析,並受惠於針對資料分析量身打造的高效率分欄格式「混合分欄壓縮」,以提高分析效能,同時減少儲存資料所需的空間。Oracle Database Appliance 支援混合分欄壓縮,並隨附於 Oracle Database Enterprise Edition 授權中。