深圳幻海软件技术有限公司 欢迎您!

多云平台环境集成方案

2023-03-20

​在我们进入细节之前,让我们回答这个问题:“什么是云集成架构?”云集成架构是云组件和多个云提供商的组合,允许跨多个数据中心交换数据。例如,假设我们有一个大型银行解决方案。一些银行不想迁移他们的核心和安全数据。他们希望将其保存在本地数据中心。但是,他们无法避免使用云。他们将现有项目、正在启动的新项目,

​在我们进入细节之前,让我们回答这个问题:“什么是云集成架构?” 云集成架构是云组件和多个云提供商的组合,允许跨多个数据中心交换数据。

例如,假设我们有一个大型银行解决方案。一些银行不想迁移他们的核心和安全数据。他们希望将其保存在本地数据中心。但是,他们无法避免使用云。他们将现有项目、正在启动的新项目,甚至整个呼叫中心和后台办公室迁移到云端。构建这种复杂的架构需要了解云提供的集成服务和工具。

让我们看看 AWS、Google Cloud 和 Azure 提供了哪些组件。

通用集成服务

了解一般的云集成最佳实践和模式至关重要。但是,了解每个云提供商提供的具体内容也很重要。在这里,我们将深入了解 AWS、Google Cloud 和 Azure 提供的顶级集成服务。此外,我们还会了解每项服务的优点和缺点。

AWS

AWS 有多种集成服务,提供强大的功能和简单性。

SQS(简单队列服务)

SQS是一种简单的查询服务或分布式排队系统。它是一个队列,用于存储应稍后处理的消息。SQS 是一种基于拉取的服务,允许云组件和微服务解耦。

优点:

  • 包括死信队列:自动分离未处理的消息并推入死信队列
  • 标准队列和 FIFO 之间的选择
  • 自动重复删除:SQS 会自动检测并删除重复的消息。

缺点:

  • 不支持一对多消息广播

SWF(简单工作流服务)

SWF是一种任务协调和工作流服务。它允许构建并行和顺序工作流。它允许构建一个可靠的分布式系统,其中任务是应用程序的逻辑单元或功能。SWF 适用于处理基于人工的操作,如订单工作流或程序请求。

优点:

  • 可靠性:工作流和状态跟踪在高可用性数据中心运行时是可靠的
  • 灵活性和逻辑分离:SWF 允许架构师和用户轻松修改工作流元素。此外,SWF 将后台作业的控制流分开

缺点:

  • AWS 管理控制台中存在很多错误,并且缺乏一般支持
  • 设置过程很困难,需要很多时间
  • 缺乏限制控制跟踪:可能导致节流问题

AWS 步骤功能

AWS 步骤函数允许我们创建无服务器工作流或状态机;例如,自动化呼叫中心任务。Step Functions 是一种编排其他 Lambda 函数的编排函数。

优点:

  • 通过将工作流逻辑与业务逻辑分离来降低应用程序的复杂性

缺点:

  • Step Functions 使用特定的状态机来定义工作流,仅对 Step Functions 服务有帮助。这可能会导致供应商锁定。

谷歌云(GC)

GC 有一个集成生态系统,一个集成平台即服务 (iPaaS)。它提供了一组工具和服务来管理和连接应用程序。Google Cloud iPaaS 包含以下服务:

Integration designer

Integration designer是一种无代码 UI 工具,能够构建由触发器和任务组成的工作流(见下文)。任务和触发器通过边和fork 和 join连接。该服务看起来与 SWF 非常相似。

触发器Triggers

触发器Triggers是必不可少的工作流元素。触发器通常是工作流的入口点,代表启动任务的事件。例如,API 触发器或发布/订阅触发器。

任务Tasks

任务Tasks是触发器之后的工作单元(或函数)。一个例子是数据映射,您可以在其中将一个数据模型集成到另一个数据模型中。一些预定义任务包括Call Integration任务、For Each Parallel任务、For Each Loop任务、Timer任务等等。

除了许多优点外,Google Cloud 也有一些缺点:

  • 与 Azure 和 AWS 相比缺乏数据中心
  • 这是一个相对较新的框架。某些功能可能处于预览版(或测试版)并包含一些错误。

Azure

Azure 提供了一个 Azure 集成服务集。它包含多种服务以在应用程序之间建立强大的集成。以下是 Azure 提供的一组最强大的集成服务。

API管理

API 管理是一种 API 网关服务,它集成了多个 API 并连接 Azure Functions、逻辑应用程序和服务总线。

优点:

  • API 管理提供许多功能,如身份验证、授权、缓存响应以及细粒度配额和限制。
  • 通过 API 策略灵活定制

缺点:

  • 开发人员门户包含许多可用性问题和错误。
  • 扩展成本可能太高。API管理自动扩展;但是,在缩放成本方面没有很好的透明度。

逻辑应用

Logic Apps是一种无服务器、低代码的工作流集成工具(类似于 GC Integration designer 和 AWS SWF)。

优点:

  • 该服务可以连接 SQL Server、Event Grid、Oracle、ServiceNow 和 Office 365。我们可以选择 200 多个连接器。
  • 能够在本地托管地图和模式

缺点:

  • 难以管理和维护复杂的集成工作流
  • 用户界面问题,尤其是复杂的工作流程

服务总线

服务总线是实现事件总线模式的服务。当一个组件产生一条消息,而其他组件使用它时,它提供了一种基于队列和发布/订阅集成原理的事件总线。

优点:

  • 该服务还支持翻译、死信、多消费者基于主题的逻辑和其他功能。
  • 强大的消息路由和过滤功能

缺点:

  • HTTPs 连接性能缓慢
  • 监控消息、队列和主题的选项非常有限
  • 没有用于调试消息、查询和过滤器的集成 UI 工具

事件网格

通过事件网格,您可以加入产生事件的云资源(发布者)和处理事件的资源(订阅者)。事件网格看起来类似于AWS SNS。它也是基于推送方法。事件网格侦听来自一个组件的事件,并可以在保留消息时触发其他组件。例如,一个应用程序可以向 Azure 队列发送消息和电子邮件通知。

优点:

  • 企业集成:支持几乎所有的Azure事件源;例如,函数、事件/IoT 中心、逻辑应用程序、服务总线、SignalR 等等
  • 包含用于监视和调试消息的选项
  • 包括自动死信队列
  • 成本更低:按事件付费的价格模型导致成本非常低。

缺点:

  • 可以提高有关如何存储和启用死信的透明度。

Azure Arc

Azure Arc是一项服务,它允许我们连接来自不同云提供商的服务并实现多云集成。该服务将作为银行多云应用程序的主要集成服务。

优点:

  • 支持 SQL Server 和 Kubernetes 等服务
  • 支持Windows和Linux操作系统

缺点:

  • 有时,代理连接可能不稳定且难以调试。

结论

在本文中,我们介绍了用于构建云集成的顶级组件。然而,集成解决方案不必是企业级的:它们可以是多管齐下甚至是小型的。例如,我们的应用程序 A 需要在应用程序 B 之间交换数据。我们可以使用Azure Durable Functions或 AWS Step Functions 创建集成中间件。通过这些服务,我们可以为数据映射、通知甚至一些简单的分析创建工作流。