将迁移的 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:后端框架
- Angular:前端框架
- 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 一起使用,将实现完全高可用性。
物理体系结构
前端层
- 使用当前部署。
- 用户可以从 Internet 或公司网络进行连接。
- DNS 功能配置为在发生故障转移时将请求路由到备用数据中心。
后端层
- 现有应用部署在 Oracle Database Appliance VM 中,可整合工作负载并降低总体成本。
- 客户管理的 Oracle REST Data Services 在应用服务器 Oracle Database Appliance VM 上托管和部署,因此应用代码可以通过 Oracle REST Data Services 连接到 Oracle Database 23ai。
- 通过在需要时添加更多 Oracle Database Appliance VM 来实现后端层可扩展性,并隐式扩展每个应用服务器 VM 中安装的 Oracle REST Data Services。
Database Tier
- Oracle Database 23ai 在 Oracle Database Appliance 上部署在一个节点配置中,用于将 JSON 文档存储和服务到后端层。
- Oracle Database API for MongoDB 使用 Oracle REST Data Services 启用,允许在不更改代码的情况下使用现有应用程序代码。
业务连续性
- 使用基于备份的灾难恢复策略。
- 为了确保在从备用数据中心运行工作负载时维护相同的应用服务级别目标 (SLO),请在该位置运行可比较的 Oracle Database Appliance 基础结构。
下图说明了此参考体系结构。
物理体系结构的设计:
业务连续性
- 有两个数据中心具有相同的部署:一个是活动数据中心,另一个是待机数据中心。
- 备份存储在网络文件存储 (Network File Storage,NFS) 上并复制到备用站点。
- 在活动数据中心发生故障时,通过最新备份,可以在备用中心快速启动工作负载。
- DNS 流量引导将用户请求定向到活动数据中心。如果在应用层上执行的 DNS 健康检查探测器经常失败,则 DNS 会重新配置以将流量路由到备用数据中心工作负载。
- 负载平衡器会在多个后端层 VM 之间分配传入请求,以防止出现单点故障。
- 客户管理的 Oracle REST Data Services 在后端层 VM 上部署和配置。每当添加 VM 时,应用服务器和 Oracle REST Data Services 都会相应地进行缩放。
- 恢复时间目标 (Recovery Time Objective,RTO) 取决于在备用数据中心部署所有工作负载组件,包括从上次复制的备份还原数据库。
- 恢复点目标 (Recovery Point Objective,RPO) 取决于最近的复制备份。
网络
- 存在接收来自 Internet 的传入用户请求的公共子网。
- Oracle Database Appliance 公共网络接口卡 (Network Interface Card,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 Enterprise Edition 许可证才能使用 Oracle Database Advanced Security Option。
- 观测
考虑使用 Oracle Data Safe 进一步提高工作负载安全态势,并能够执行数据库审计。
- 运营效率
考虑将基础设施作为代码(即 Terraform)与 Oracle Database Appliance SDK 结合使用,以自动部署 VM 和数据库。
- 应用程序演变
- 考虑使用 SQL 和 Oracle APEX 等前端在 Oracle Database 23ai 中部署运营分析和实时报告,将数据保留在数据库中,以便进行可信的实时分析。
- 考虑使用 Oracle Database 23ai 使用 Oracle Machine Learning for SQL 进行机器学习,无需移动数据即可使用 JSON 数据构建和训练模型,并将模型与现有工作负载一起部署,以实现高效推断。
- 考虑使用数据库存储其他数据类型(关系型、向量型、空间型或图形型),以提高工作负载功能和灵活性。
- 考虑使用 Oracle Database Appliance 和 Oracle Database 23ai 进行运营分析以外的分析,充分利用为数据分析量身定制的高效列式压缩来提高分析性能,同时减少存储数据所需的空间。Oracle Database Appliance 支持混合列式压缩,并附带 Oracle Database Enterprise Edition 许可证。