启用从 Oracle Cloud ERP 到 Microsoft Azure SQL 数据库的多云集成
Oracle Integration Cloud Service 是一项完全托管的服务,支持多云集成架构。
- A no-code approach with Oracle Integration Cloud Service (Oracle Integration) native adapters for Oracle Cloud ERP and Microsoft Azure SQL Database
- 一种事件驱动模式,用于使用 Oracle Cloud Infrastructure Streaming (OCI 流处理)服务 (Oracle Managed Kafka Service) 和 Oracle Cloud Infrastructure (OCI 流处理)服务的本机适配器从 Microsoft Azure SQL 数据库分离 Oracle Cloud ERP (OCI) 服务(位于 Oracle Integration 中)。
-
使用 Oracle Integration Connectivity Agent 与 Microsoft Azure SQL 数据库的专用连接,后者是多云集成架构的关键推动因素。
体系结构
此参考架构展示了如何启用多云、事件驱动和无代码集成解决方案,以接收来自 Oracle Cloud ERP 的实时馈送并将这些馈送发送到专用 Microsoft Azure SQL 数据库,并利用组件 Oracle Integration 提供了称为连接代理的连接代理,以促进内部部署/多云集成。
您可以在以下各节中详细介绍的任何以下模式中使用 Oracle Integration 连接代理,以在专用 Azure 网络上设置 Oracle Integration 与 Microsoft Azure SQL 数据库之间的连接。
从 Oracle Cloud ERP 到 Microsoft Azure SQL 数据库的多云事件驱动源 - 公共 Internet 和部署在 Azure 专用网络模式中的 Oracle Integration 连接代理
此方案使用 Oracle Integration 连接代理与专用 Azure SQL 数据库进行通信。
- Oracle Integration 连接代理安装在 VNet 内专用子网中的 Azure VM 上。Azure 专用链接连接到专用 Azure SQL 数据库。通过专用链接,您可以通过专用端点连接到 Azure SQL 数据库。
- 在这种情况下,托管 Oracle Integration 连接代理的 Azure VM 可以通过专用端点连接到专用 Azure SQL 数据库(禁用对 Azure SQL Server 的公共访问),该端点也是在同一 Azure 虚拟网络 (VNet) 上设置的。
- Oracle Integration 连接代理通过公共互联网通过一侧的 Azure NAT 网关(与 VNet 中的专用子网关联)与 Oracle Integration 进行通信,另一端通过 Azure 专用端点(专用链接)与专用 Azure SQL 数据库进行通信。
- 当 Oracle Integration 中的集成流使用 Microsoft Azure SQL 数据库适配器对其执行操作(例如,将 Oracle Cloud ERP 业务事件数据加载到 Azure SQL 表中)时,连接代理会启动与 Oracle Integration 的安全连接,检索请求,然后对专用 Azure SQL 数据库执行操作。
- 使用连接代理时,不必打开防火墙即可访问 Azure 专用网络上的 Azure SQL 数据库。此外,Azure 专用网络与 Oracle Integration 之间的所有消息都加密 (SSL)。
下图说明了此参考体系结构。
oci-multicloud-int-public-internet-oracle.zip
从 Oracle Cloud ERP 到 Microsoft Azure SQL 数据库的多云事件驱动源 - Oracle Interconnect for Azure 和部署在 Azure 专用网络模式中的 Oracle Integration 连接代理
- Oracle Integration 连接代理安装在 VNet 内专用子网上的 Azure VM 上。Azure 专用链接通过专用端点连接到专用 Azure SQL 数据库。
- 在这种情况下,托管 Oracle Integration 连接代理的 Azure VM 可以通过专用端点连接到专用 Azure SQL 数据库(禁用对 Azure SQL Server 的公共访问),该端点也在同一 Azure 虚拟网络 (VNet) 上设置。
- Oracle Integration 连接代理通过安全 Azure 网络与 OCI VCN 之间的专用云间连接与 Oracle Integration 进行通信,后者绕过公共互联网 (Oracle Interconnect for Azure) 。
- 在这种情况下,连接代理可以通过 Azure 虚拟网络网关(与 VNet 中的专用子网关联)访问 Oracle Integration ,然后通过 Oracle Interconnect for Azure(Azure 端为 ExpressRoute,Oracle Cloud 端为 FastConnect)连接到 OCI VCN,通过 Azure 专用端点(专用链路)与专用 Azure SQL 数据库连接。
- 当 Oracle Integration 中的集成流使用 Microsoft Azure SQL 数据库适配器对其执行操作(例如,将 Oracle Cloud ERP 业务事件数据加载到 Azure SQL 表中)时,连接代理会启动与 Oracle Integration 的安全连接,检索请求,然后对专用 Azure SQL 数据库执行操作。
- 此外,必须配置 OCI 服务网关以将流量从 VCN 路由到 Oracle Integration 。此外,必须在 OCI VCN 上直接通过网关启用传输路由(必须为 OCI DRG 连接以及 OCI 服务网关设置 OCI VCN 上的路由表)。这样,流量会通过 VCN 传输到超出 VCN 的目标,例如 Oracle Integration (使用 OCI 服务网关时会确保对 Oracle Cloud Services 的专用访问,例如 Oracle Integration )。
下图说明了此参考体系结构。
oci-multicloud-interconnect-azure-oracle.zip
从 Oracle Cloud ERP 到 Microsoft Azure SQL 数据库的多云事件驱动馈送 - Oracle Interconnect for Azure 和部署在 OCI VCN 模式中的 Oracle Integration 连接代理
- Oracle Integration 连接代理安装在 OCI VCN 内专用子网上的 OCI VM 上。此外,必须配置 OCI 服务网关以将流量从 VCN 路由到 Oracle Integration 。在 Azure 端,Azure 专用链接连接到专用 Azure SQL DB。通过专用链接,您可以通过专用端点连接到 Azure SQL DB。
- 在这种情况下,托管 OCI VCN 中的 Oracle Integration 连接代理的 OCI VM 可以通过在 Azure 虚拟网络 (VNet) 上设置的专用端点连接到专用 Azure SQL 数据库(禁用对 Azure SQL Server 的公共访问)。
- Oracle Integration 连接代理(部署在 OCI VCN 中)通过 OCI 服务网关与 Oracle Integration 私密通信(使用 OCI 服务网关时,确保对 Oracle Cloud Services 的专用访问,例如 Oracle Integration )。
- 另一方面,Oracle Integration 连接代理通过安全 Azure 网络与 OCI VCN 之间的专用云间连接(绕过公共 Internet)(Oracle Interconnect for Azure ) 与专用 Azure SQL 数据库进行通信。在这种情况下,连接代理可以通过 OCI 动态路由网关 (DRG) 访问专用 Azure SQL 数据库,然后通过 Oracle Interconnect for Azure(Azure 端为 ExpressRoute)连接到 Azure VNet,FastConnect 在 Oracle Cloud 端 ),它到达 Azure 虚拟网络网关(与 Azure VNet 关联),最后通过在 Azure VNet 中配置的 Azure 专用端点(专用链接)连接到专用 Azure SQL 数据库。
- 当 Oracle Integration 中的集成流使用 Microsoft Azure SQL 数据库适配器对其执行操作(例如,将 Oracle Cloud ERP 业务事件数据加载到 Azure SQL 表中)时,连接代理会启动与 Oracle Integration 的安全连接,检索请求,然后对专用 Azure SQL 数据库执行操作。
下图说明了此参考体系结构。
oci-multicloud-interconnect-agent-oracle.zip
对于以上各节中介绍的所有三种模式:
Oracle Integration 用于:
生成器集成流
- 通过 Oracle ERP Cloud 本机适配器从 Oracle Cloud ERP 接收实时数据(例如,采购订单事件、供应商创建事件、批准的应付账款发票、已完成的日记账批过账等)。
- 扩充 Oracle Cloud ERP 事件有效负载,使用 Oracle ERP Cloud 本机适配器检索其他事件详细信息,例如 - 在供应商创建事件的基础上获取其他供应商详细信息 -(可选,仅适用于少数业务事件)。
- 通过 OCI 流处理原生适配器将 Oracle Cloud ERP 业务事件数据发布到 OCI 流处理私有 Kafka 流/主题(示例、PurchaseOrderTopic、SupplierTopic、AccountPayablesTopic 等)(Oracle Integration 连接使用在专用子网中的 OCI VM 中部署的连接代理,该连接可以访问 OCI 流处理专用端点所属的专用子网。此连接代理通过 OCI 服务网关向 Oracle Integration 发出请求,确保通过内部网络路由对 Oracle Integration 的访问。
使用者集成流
- 通过 OCI 流处理原生适配器使用来自 OCI 流处理私有 Kafka 流/主题的 Oracle Cloud ERP 业务事件数据(示例、PurchaseOrderTopic、SupplierTopic、AccountPayablesTopic 等)。
- 通过 Microsoft Azure SQL 数据库原生适配器将 Oracle Cloud ERP 业务事件数据加载到专用 Azure SQL 数据库中。
OCI 流处理与 Oracle Integration 结合使用可用于:
- 从 Azure SQL 数据库分离 Oracle Cloud ERP ,在下游应用程序/系统关闭时最大程度地降低对解决方案的影响(在本例中为 Azure SQL 数据库)。
- 使用有效错误处理确保将消息传送到 Azure SQL 数据库(如果 Azure SQL 数据库已关闭,则可以使用 OCI 流处理中的重试 Kafka 主题和死信 Kafka 主题重试失败的消息,并在 Oracle Integration 中使用重新安排的集成来使用失败的消息并尝试将其加载到 Azure SQL 数据库中)。
- 使用 OCI 流处理适配器功能并行处理 Oracle Cloud ERP 业务事件数据,以使用与同一主题关联的特定分区中的消息。
- 计量发送到 Azure SQL 数据库的请求,因为 OCI 流处理适配器允许使用特定分区/主题中的一个或多个记录,并控制从分区/主题中消耗消息的频率。
该体系结构具有以下组成部分:
Oracle Cloud Infrastructure 组件
- Oracle Cloud ERP
Oracle Cloud ERP 应用程序公开 Web 服务、API、业务对象和发布事件。Oracle Integration 附带的 Oracle ERP Cloud 适配器可连接到 Oracle Cloud ERP 中的不同模块,例如财务、采购、应付账款、总账等,而无需了解集成中涉及的特定详细信息。Oracle Cloud ERP 业务事件只能通过 Oracle ERP Cloud 适配器使用。
- Oracle Integration
Oracle Integration 是一项完全托管的服务,可用于集成应用、自动执行流程、深入洞察业务流程以及创建可视化应用。
- 连接代理
您可以在专用或内部部署网络中的应用程序与使用连接代理的 Oracle Integration 之间创建混合集成并交换消息。
- 流
Oracle Cloud Infrastructure 流处理提供了一个完全托管、可扩展和持久的存储解决方案,用于摄取可以实时使用和处理的大量数据流。您可以使用流处理来摄取大量数据,例如应用日志、运行状况遥测、Web 点击流数据;或在发布 - 订阅消息传递模型中连续生成和处理数据的其他用例。
- 区域
Oracle Cloud Infrastructure 区域是一个局部地理区域,包含一个或多个称为可用性域的数据中心。区域独立于其他区域,广阔的距离可以将其分开(跨国家甚至大陆)。
- 可用性域
可用性域是区域中的独立独立数据中心。每个可用性域中的物理资源与提供容错能力的其他可用性域中的资源隔离。可用性域不共享基础设施(例如电源或冷却设备)或内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 虚拟云网络 (VCN) 和子网
VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后对其进行更改。您可以将 VCN 细分为多个子网,这些子网可以限定到区域或可用性域。每个子网包含一系列不与 VCN 中的其他子网重叠的连续地址。创建后可以更改子网的大小。子网可以是公共子网,也可以是专用子网。
- 网络安全组 (NSG)
网络安全组 (NSG) 用作云资源的虚拟防火墙。使用 Oracle Cloud Infrastructure 的零信任安全模型,所有流量将被拒绝,您可以控制 VCN 中的网络流量。NSG 由一组入站和出站安全规则组成,这些规则仅应用于单个 VCN 中一组指定的 VNIC。
- 服务网关
通过服务网关,可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量会通过 Oracle 网络网状结构网络传输,并且从不通过互联网传输。
- 动态路由网关 (DRG)
DRG 是虚拟路由器,用于为同一区域中的 VCN 之间、VCN 与区域外的网络(例如另一个 Oracle Cloud Infrastructure 区域中的 VCN、内部部署网络或其他云提供商中的网络)的专用网络流量提供路径。
- 路由表
虚拟路由表包含将流量从子网路由到 VCN 外部的目标(通常通过网关)的规则。
- FastConnect
Oracle Cloud Infrastructure FastConnect 提供了在您的数据中心与 Oracle Cloud Infrastructure 之间创建专用私有连接的简便方式。FastConnect 与基于 Internet 的连接相比,可提供更高的带宽选项和更可靠的网络体验。
- OCI 和 Azure 互连
Oracle Cloud 和 Microsoft Azure Interconnect 是 Oracle 的首个多云产品。它在世界各地的特定 Azure 和 Oracle Cloud Infrastructure (OCI) 数据中心之间提供直接网络连接。通过该服务,Azure 管理员和开发人员可以将应用连接到在 OCI 中运行的应用和服务,而无需创建专用链接或通过公共互联网发送应用流量。
Microsoft Azure 组件
- Azure SQL 数据库
Azure SQL 数据库是一个完全托管的数据库引擎(平台即服务),可以在不涉及用户的情况下处理大多数数据库管理功能,例如升级、打补丁、备份和监视。Oracle Integration 附带的 Microsoft SQL Server 适配器使您可以通过使用 Oracle Integration 连接代理将 Azure 网络防火墙后面的 Microsoft Azure SQL Server 数据库与 Oracle Integration 集成。使用 Microsoft SQL Server 适配器轮询新记录和更新的记录,以便在 Oracle Integration 中进行处理。
- 虚拟网络 (VNet) 和子网
VNet 是您在 Azure 中定义的虚拟网络。一个 VNet 可以具有多个不重叠的 CIDR 块子网,您可以在创建 VNet 后添加这些子网。您可以将 VNet 细分到子网中,该子网可以限定到某个区域或可用性区域。每个子网由一组不与 VNet 中的其他子网重叠的连续地址组成。使用 VNet 在网络级别逻辑隔离 Azure 资源。
- 专用链接(专用端点)
通过专用链接,您可以通过专用端点连接到 Azure 中的各种 PaaS 服务(例如 Azure SQL 数据库)。专用端点是特定 VNet 和子网中的专用 IP 地址。
- 虚拟网络网关
虚拟网络网关允许 Azure VNet 与 Azure 外部的网络之间的通信(通过公共互联网或使用 ExpressRoute),具体取决于您指定的网关类型。
- 路由表
在 Azure 子网 VNets 和 Azure 外部的网络之间路由表直接通信。
- ExpressRoute
通过 Azure ExpressRoute,您可以在 VNet 和其他网络(例如您的内部部署网络或其他云提供商中的网络)之间设置专用连接。ExpressRoute 是比典型互联网连接更可靠、更快的替代方案,因为通过 ExpressRoute 的流量不会通过公共互联网。
建议
在通过 Oracle Integration 和 OCI Streaming 实现从 Oracle Cloud ERP 到 Microsoft Azure SQL 数据库的多云、事件驱动的集成解决方案时,请使用以下建议作为起点。您的要求可能不同于此处所述的体系结构。
- 连接
OCI 和 Azure 中的所有连接都应通过专用网络建立,即:
- 连接到 OCI 流处理的连接代理应安装在专用子网内的 OCI VM 中。
- 您创建的 OCI 流处理 Kafka 流/主题应与部署到专用端点的流池关联(与 OCI VCN 中的专用子网关联)。
- 连接到 Azure SQL 数据库的连接代理应安装在 VNet 中的专用子网内的 Azure VM 中。
- 托管连接代理(在 VNet 中的专用子网中部署)的 Azure VM 与 Azure SQL 数据库之间的连接应通过 Azure 专用链路(专用端点)进行。
您可以首先设置部署在 Azure Private Network 模式中的公共 Internet 和连接代理,该模式仅要求您在 Azure VM 中安装连接代理,并在 Azure 中配置相应的安全设置以保证从连接代理访问 Oracle Integration 实例(这是通过公共 Internet 的 SSL 通信)。
为了保证此集成体系结构的端到端专用连接,您可以考虑设置 Oracle Interconnect for Azure and Connectivity Agent 部署在 Azure Private Network 模式中或 Oracle Interconnect for 部署在 OCI VCN 模式中的 Azure 和 Connectivity Agent 使用 Oracle Interconnect for Azure,因此 Oracle Integration 与对 Azure SQL 数据库具有专用访问权限的 Connectivity Agent 之间的所有集成事务处理都会通过它进行路由。
- 限制对 Oracle Integration 实例的访问
通过配置 Oracle Integration 允许列表(以前称为白名单)来限制有权访问 Oracle Integration 实例的网络。只有特定 IP 地址、无类域间路由 (Classless Inter-Domain Routing,CIDR) 块和您指定的虚拟云网络中的用户/系统才能访问 Oracle Integration 实例。
在此集成体系结构中,Oracle Integration 允许列表可以限制对 Oracle Integration 实例的访问,仅允许由 Oracle Cloud ERP 实例和与托管连接代理的 VM 关联的 VCN OCID 启动的请求。
- 在高可用性环境中使用连接代理
您可以使用 Oracle Integration 在高可用性环境中使用连接代理。您在不同主机上安装了两次连接代理。连接代理可以横向扩展,从而提供为代理组运行多个代理的所有优势。这样可提高性能并扩展故障转移优势。
在此集成体系结构中,您可以:- 两个连接代理安装在两个不同的 OCI VM 上(用于访问 OCI 服务的代理)、每个 OCI VM 部署在不同的容错域(在可用性域内)或不同的可用性域(在云区域中)。
- 两个连接代理安装在两个不同的 Azure VM 上(用于访问 Azure 服务的代理),每个 Azure VM 部署在不同的 Azure 可用性区域(在 Azure 区域中)。
- VCN(也适用于 Azure VNet)
创建 VCN 时,根据计划附加到 VCN 中的子网中的资源数,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure、您的内部部署数据中心或其他云提供商中)不重叠的 CIDR 块。
创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑您的流量流和安全要求。将特定层或角色中的所有资源连接到可充当安全边界的同一子网。
使用区域子网。
- 网络安全组 (NSG)
您可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG,而不是安全列表,因为 NSG 可以将 VCN 的子网架构与应用的安全要求分开。
在此集成架构中,NSG 用于为具有专用端点的 OCI 流处理、托管连接代理的 OCI VM 等定义入站和出站规则。
考虑事项
部署此引用体系结构时,请考虑以下几点。
- 可扩展性
创建 OCI 流处理流/主题时,管理员指定他们计划使用的流数。可以按业务域创建流(例如,InvoiceStream、PurchaseOrderStream 等)。管理员还可以根据流/主题指定他们计划使用的分区。通过分区,您可以通过将消息拆分到多个节点来分发流/主题,从而使多个使用者可以并行读取一个流/主题(在这种情况下,在 Oracle Integration 中,同一使用者集成流的多个克隆,每个克隆都使用 OCI 流处理适配器作为触发器从流/主题的不同分区读取)。
创建 Oracle Integration 实例时,管理员指定他们计划用于每个实例的消息包数。
- 资源限制
请考虑您的租户的最佳实践、按服务列出的限制以及区间限额。
- 安全性
使用 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 策略控制谁可以访问云资源(例如 Oracle Integration 、OCI 流处理实例、OCI 计算实例等)以及可以执行哪些操作。要保护数据库密码或其他密钥,请考虑使用 OCI Vault 服务。
- 可用性
请考虑根据您的部署需求和您的区域使用高可用性选项。这些选项包括在一个区域中的多个可用性域之间分配资源,以及在可用性域内的容错域中分配资源。
对于在单个可用性域中部署的工作负载,容错域具有出色的可恢复性。要在应用层实现高可用性,请在不同的容错域中部署应用服务器,并使用负载平衡器在应用服务器上分配客户端流量。
- 性能和成本
OCI 提供了适合各种应用和用例的计算配置。请仔细为计算实例选择配置。选择能够以最低成本为负载提供最佳性能的配置。如果您需要更高的性能、内存或网络带宽,可以更改为更大的配置。
浏览更多
详细了解如何通过 Oracle Integration 建立多云专用网络连接。
查看以下附加资源:
- 视频:通过低代码集成构建多云、事件驱动的 PO 馈送解决方案
- Oracle ERP Cloud 适配器功能
- 将 Oracle Cloud Infrastructure Streaming Service 适配器与 Oracle Integration 一起使用
- Microsoft SQL Server 适配器功能
- 使用 Oracle Integration 创建混合集成
- 了解如何将 Oracle Cloud 与 Microsoft Azure 互连
- 连接代理
- 限制对 Oracle Integration 的访问
- 保护流
- Oracle Cloud Infrastructure 的优秀实践框架
- Oracle Cloud Infrastructure 文档
- Oracle Cloud 成本估算器