欢迎访问深圳敏捷云计算科技有限公司!

实现从甲骨文云OCI ERP到Microsoft Azure SQL数据库的多云集成:云端协同的新境界

2024-01-15 原创文章

Oracle Integration Cloud Service是一种全面托管的服务,支持多云集成架构。这一参考架构提供了必要的考虑因素和建议,以启用一个多云、事件驱动的解决方案,使用以下方法将来自Oracle Fusion Cloud企业资源规划(Oracle Cloud ERP)的实时业务事件数据反馈到私有的Microsoft Azure SQL数据库:

  • 使用Oracle Integration Cloud Service(Oracle Integration)的原生适配器,为Oracle Cloud ERP和Microsoft Azure SQL数据库提供无代码方法。
  • 采用事件驱动模式,使用Oracle Cloud Infrastructure流媒体(OCI Streaming)服务(Oracle托管的Kafka服务)和Oracle Integration中我们为此Oracle Cloud Infrastructure(OCI)服务的原生适配器,将Oracle Cloud ERP与Microsoft Azure SQL数据库解耦。
  • 使用Oracle Integration连接性代理实现与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数据库的多云、事件驱动数据流 - 公共互联网和在Azure私有网络中部署的Oracle Integration连接性代理模式

此场景使用Oracle Integration连接性代理与私有Azure SQL数据库通信。

  • Oracle Integration连接性代理安装在Azure VNet内的私有子网中的Azure VM上。Azure Private Link连接到私有Azure SQL数据库。Private Link允许您通过私有端点连接到Azure SQL数据库。
  • 在这种情况下,托管Oracle Integration连接性代理的Azure VM可以通过私有端点(也设置在同一Azure虚拟网络(VNet)上)连接到私有Azure SQL数据库(禁用了Azure SQL服务器的公共访问)。
  • Oracle Integration连接性代理通过公共互联网与Oracle Integration通信,通过Azure NAT网关(关联到VNet内的私有子网),以及通过Azure私有端点(Private Link)与私有Azure SQL数据库通信。
  • 当Oracle Integration中的集成流程使用Microsoft Azure SQL数据库适配器对其执行操作时(例如,将Oracle Cloud ERP业务事件数据加载到Azure SQL表中),连接性代理会启动与Oracle Integration的安全连接,检索请求,然后在私有Azure SQL数据库上执行操作。
  • 使用连接性代理时,您无需打开防火墙即可访问Azure私有网络上的Azure SQL数据库。此外,Azure私有网络与Oracle Integration之间的所有消息都经过加密(SSL)。

以下图表说明了这一参考架构。

多云、事件驱动数据流从Oracle Cloud ERP到Microsoft Azure SQL数据库 - Oracle云与Azure间连接和Oracle Integration连接性代理在Azure私有网络模式中的部署

此场景使用Oracle Integration连接性代理与私有Azure SQL数据库通信。

  • Oracle Integration连接性代理安装在Azure VNet内的私有子网中的Azure VM上。Azure Private Link通过私有端点连接到私有Azure SQL数据库。
  • 在这种情况下,托管Oracle Integration连接性代理的Azure VM可以通过私有端点(也设置在同一Azure虚拟网络(VNet)上)连接到私有Azure SQL数据库(禁用了Azure SQL服务器的公共访问)。
  • Oracle Integration连接性代理通过一个安全的、私有的云间连接(Oracle云与Azure间连接)与Oracle Integration通信,该连接在Azure网络和OCI VCN之间绕过公共互联网。
  • 在这种情况下,连接性代理可以通过一个Azure虚拟网络网关(与VNet内的私有子网相关联)访问Oracle Integration,该网关又通过Oracle云与Azure间连接(Azure端的ExpressRoute和Oracle Cloud端的FastConnect)连接到OCI VCN,并通过Azure私有端点(Private Link)与私有Azure SQL数据库通信。
  • 当Oracle Integration中的集成流程使用Microsoft Azure SQL数据库适配器对其执行操作时(例如,将Oracle Cloud ERP业务事件数据加载到Azure SQL表中),连接性代理会启动与Oracle Integration的安全连接,检索请求,然后在私有Azure SQL数据库上执行操作。
  • 此外,必须配置OCI服务网关,以便将流量从VCN路由到Oracle Integration。同样,在OCI VCN上必须启用直接通过网关的过境路由(OCI VCN的路由表必须为OCI DRG附件以及OCI服务网关设置)。这样,流量就可以通过VCN传输到VCN之外的目的地,如Oracle Integration(使用OCI服务网关时,确保了对Oracle Cloud Services如Oracle Integration的私有访问)。

以下图表说明了这一参考架构。


多云、事件驱动数据流从Oracle Cloud ERP到Microsoft Azure SQL数据库 - Oracle云与Azure间连接和Oracle Integration连接性代理在OCI VCN模式中的部署

此场景使用Oracle Integration连接性代理与私有Azure SQL数据库通信。

  • Oracle Integration连接性代理安装在OCI VCN内的私有子网上的OCI VM上。此外,必须配置OCI服务网关,以便将流量从VCN路由到Oracle Integration。在Azure侧,Azure Private Link连接到私有Azure SQL数据库。Private Link允许您通过私有端点连接到Azure SQL数据库。
  • 在这种情况下,托管在OCI VCN内的Oracle Integration连接性代理的OCI VM可以通过私有端点连接到私有Azure SQL数据库(禁用了Azure SQL服务器的公共访问),该私有端点设置在Azure虚拟网络(VNet)上。
  • Oracle Integration连接性代理(部署在OCI VCN中)通过OCI服务网关与Oracle Integration进行私密通信(使用OCI服务网关时,确保了对Oracle Cloud Services如Oracle Integration的私有访问)。
  • 另一方面,Oracle Integration连接性代理通过一个安全的、私有的云间连接(Oracle云与Azure间连接)与私有Azure SQL数据库通信,该连接在Azure网络和OCI VCN之间绕过公共互联网。在这种情况下,连接性代理可以通过OCI动态路由网关(DRG)访问私有Azure SQL数据库,该网关又通过Oracle云与Azure间连接(Azure端的ExpressRoute和Oracle Cloud端的FastConnect)连接到Azure VNet,它到达与Azure VNet相关联的Azure虚拟网络网关,最后通过配置在Azure VNet中的Azure私有端点(Private Link)连接到私有Azure SQL数据库。
  • 当Oracle Integration中的集成流程使用Microsoft Azure SQL数据库适配器对其执行操作时(例如,将Oracle Cloud ERP业务事件数据加载到Azure SQL表中),连接性代理会启动与Oracle Integration的安全连接,检索请求,然后在私有Azure SQL数据库上执行操作。

以下图表说明了这一参考架构。


对于上述部分中描述的所有三种模式:

Oracle Integration用于:

生产者集成流程

  • 通过Oracle ERP Cloud原生适配器从Oracle Cloud ERP接收实时数据(例如,采购订单事件、供应商创建事件、应付账款发票批准、日记账批次发布完成等)。
  • 丰富Oracle Cloud ERP事件有效载荷,使用Oracle ERP Cloud原生适配器检索额外的事件细节,例如在供应商创建事件之上获取额外的供应商细节(可选,仅适用于少数业务事件)。
  • 通过OCI Streaming原生适配器将Oracle Cloud ERP业务事件数据发布到OCI Streaming私有Kafka流/主题(例如,PurchaseOrderTopic, SupplierTopic, AccountPayablesTopic等)。Oracle Integration连接使用部署在OCI VCN的私有子网中的OCI VM中的连接性代理,该代理可以访问OCI Streaming私有端点所属的私有子网。此连接性代理通过OCI服务网关向Oracle Integration发出请求,确保访问Oracle Integration是通过内部网络路由的。

消费者集成流程

  • 通过OCI Streaming原生适配器从OCI Streaming私有Kafka流/主题(例如,PurchaseOrderTopic, SupplierTopic, AccountPayablesTopic等)消费Oracle Cloud ERP业务事件数据。
  • 通过Microsoft Azure SQL数据库原生适配器将Oracle Cloud ERP业务事件数据加载到私有Azure SQL数据库中。
  • OCI Streaming与Oracle Integration一起使用,以:
  • 将Oracle Cloud ERP与Azure SQL数据库解耦,最大限度地减少下游应用/系统故障(在本例中为Azure SQL数据库)对解决方案的影响。
  • 确保消息有效地发送到Azure SQL数据库,并进行有效的错误处理(如果Azure SQL数据库宕机,您可以使用OCI Streaming中的重试Kafka主题和死信Kafka主题重试失败的消息,使用Oracle Integration中的重试计划集成消费失败的消息并尝试将它们加载到Azure SQL数据库中)。
  • 使用OCI Streaming适配器能力并行处理Oracle Cloud ERP业务事件数据,该适配器可以从与同一主题关联的特定分区消费消息。
  • 测量发送到Azure SQL数据库的请求,因为OCI Streaming适配器允许从特定分区/主题消费一个或多个记录,以及控制您从分区/主题消费消息的频率。

该架构包含以下组件:

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 Streaming提供了一个全托管的、可扩展的、持久的存储解决方案,用于摄取连续的、高容量的数据流,您可以实时消费和处理这些数据。您可以使用Streaming来摄取高容量数据,如应用程序日志、操作遥测、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对象存储)的访问。从VCN到Oracle服务的流量通过Oracle网络织物传输,永远不会穿越互联网。

动态路由网关(DRG)

DRG是一个虚拟路由器,为同一区域内的VCN、VCN与区域外网络(如另一个Oracle Cloud Infrastructure区域的VCN、本地网络或其他云提供商的网络)之间的私有网络流量提供路径。

路由表

虚拟路由表包含将流量从子网路由到VCN外部目的地的规则,通常通过网关。

FastConnect

Oracle Cloud Infrastructure FastConnect提供了一种简便的方法,用于在您的数据中心和Oracle Cloud Infrastructure之间创建专用、私有连接。与基于互联网的连接相比,FastConnect提供了更高的带宽选项和更可靠的网络体验。

OCI和Azure互连

Oracle Cloud和Microsoft Azure互连是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资源。

Private Link(私有端点)

Private Link允许您通过私有端点连接到Azure中的各种PaaS服务(如Azure SQL数据库)。私有端点是特定VNet和子网中的私有IP地址。

虚拟网络网关

虚拟网络网关允许Azure VNet与Azure外部的网络之间的流量,无论是通过公共互联网还是通过ExpressRoute,这取决于您指定的网关类型。

路由表

路由表指导流量在Azure子网、VNets和Azure外部网络之间的流向。

ExpressRoute

Azure ExpressRoute让您可以在VNet和另一个网络之间建立私有连接,如您的本地网络或另一个云提供商的网络。ExpressRoute是典型互联网连接的更可靠、更快速的替代方案,因为通过ExpressRoute的流量不会穿越公共互联网。

建议

在启用从Oracle Cloud ERP到Microsoft Azure SQL数据库的多云、事件驱动集成解决方案时,通过Oracle Integration和OCI Streaming,以下建议可作为起点。您的需求可能与这里描述的架构不同。

连接性

  • OCI和Azure内的所有连接都应通过私有网络建立,即:
  • 连接到OCI Streaming的连接性代理应安装在OCI VCN内的私有子网中的OCI VM上。
  • 您创建的OCI Streaming Kafka流/主题应与部署有私有端点的流池关联(与OCI VCN中的私有子网相关联)。
  • 连接到Azure SQL数据库的连接性代理应安装在Azure VNet内的私有子网中的Azure VM上。
  • 托管连接性代理的Azure VM(部署在VNet的私有子网中)与Azure SQL数据库之间的连接应通过Azure私有链接(私有端点)。

您可以从设置公共互联网和连接性代理部署在Azure私有网络模式开始,这只需要您在Azure VM中安装连接性代理,并配置Azure中适当的安全设置,以保证连接性代理对Oracle Integration实例的访问(这是通过公共互联网的SSL通信)。

为了保证这种集成架构的端到端私有连接,您可能会考虑设置Oracle云与Azure间连接和连接性代理部署在Azure私有网络模式,或Oracle云与Azure间连接和连接性代理部署在OCI VCN模式,以使用Oracle云与Azure间连接,使得Oracle Integration与具有私有访问权限的Azure SQL数据库的连接性代理之间的所有集成事务通过它路由。

限制对Oracle Integration实例的访问

通过配置Oracle Integration允许列表(以前称为白名单)来限制对您Oracle Integration实例的网络访问。只有来自您指定的特定IP地址、无类别域间路由(CIDR)块和虚拟云网络的用户/系统可以访问Oracle Integration实例。

在这种集成架构中,Oracle Integration允许列表可以限制对Oracle Integration实例的访问,只允许由Oracle Cloud ERP实例和与托管连接性代理的VMs相关联的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 Streaming(带有私有端点)、托管连接性代理的OCI VM等定义入站和出站规则。

部署考虑因素

在部署此参考架构时,请考虑以下几点。

可扩展性

  • 在创建OCI Streaming流/主题时,管理员指定他们计划使用的流数量。流可以按业务域创建(例如,InvoiceStream、PurchaseOrderStream等)。管理员还指定他们计划每个流/主题使用的分区数量。分区允许您通过在多个节点上分割消息来分布流/主题,允许多个消费者并行读取流/主题(在这种情况下,您可以在Oracle Integration中拥有同一消费者集成流的多个克隆,每个都使用OCI Streaming适配器作为触发器,从流/主题的不同分区读取)。
  • 在创建Oracle Integration实例时,管理员指定他们计划每个实例使用的消息包数量。

资源限制

  • 考虑最佳实践、服务限制和您租户的部门配额。

安全性

  • 使用Oracle Cloud Infrastructure身份和访问管理(OCI IAM)策略来控制谁可以访问您的云资源(例如,Oracle Integration、OCI Streaming实例、OCI计算实例等)以及可以执行哪些操作。为了保护数据库密码或任何其他秘密,考虑使用OCI保险库服务。

可用性

  • 根据您的部署要求和所在区域,考虑使用高可用性选项。选项包括在一个区域的多个可用性域内分布资源,以及在一个可用性域内的故障域之间分布资源。
  • 故障域为在单个可用性域内部署的工作负载提供最佳的弹性。对于应用层的高可用性,在不同的故障域中部署应用服务器,并使用负载均衡器分配客户端流量至应用服务器。

性能和成本

  • OCI提供了适用于广泛应用和用例的计算形状。谨慎选择计算实例的形状。选择为您的负载提供最佳性能的形状,同时成本最低。如果您需要更高的性能、内存或网络带宽,可以更换为更大的形状。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: