云原生架构下的系统集成平台方案设计

194 阅读8分钟
集成背景

v2-b1d0a2a6861ff24ab76dfa8ae97c36e7_1440w.jpg

当企业的 IT 系统随着时间的推移不断发展壮大,它们开始肆意蔓延,彼此割裂。供应商的解决方案无法与其他供应商的解决方案协同。最终,在企业的的整个 IT 堆栈中,这些解决方案除了"都是我们的"之外,再也没有任何其他联系(企业中常见的“烟囱式”应用,信息孤岛严重,数据难以流通,存在严重的资源浪费)。所以,我们需要一种恰当的方式来理清这团"打结的耳机线",从而消除各种重复操作(尤其是业务逻辑的重复实施和处理),同时,还可以最大价值的发挥现有系统的价值,协同不同系统之间的能力,从而推动业务的快速发展(尤其是在变化日益频繁的情况下)。 越来越多的企业意识到,信息的流畅流转在各个组织中都是至关重要的。随着数据量、组织的复杂性的增加,建立强大的自动化数据战略是关键所在!而这一切的关键所在就是如何连接各个孤立的应用,也就是我们常说的“集成”。
关于集成

etesi.png IT 集成(或系统集成)是指将 IT 组织中的各种数据、应用、API 和设备全都联系起来,以提高效率、生产力和敏捷性。集成是业务转型(为适应市场的变化,从根本上改变您的工作方式)的关键所在,因为它能使 IT 内部的一切紧密合作。集成不只是连接,它还能连接不同系统中的各种功能来产生新的功效,作出实质贡献。例如,可以通过 Apache Kafka 这个开源平台,将数据流与应用集成,让它们能够对数据做出实时响应。

集成现状

business-processes.png 随着越来越多的问题逐渐浮出水面,包括软件供应商和企业,正试图消除这些障碍,提出了几种代表性的解决方案:

  • 原生支持 - 多数的软件支持开箱即用的本地集成能力,允许客户快速的集成特定的应用程序。这些商业软件需要购买新产品或者更新才能支持一些满足客户需求的特性。这也就意味着,只提供了静态能力,不能很好的动态的拓展客户需求。而且,开发周期长,费用高昂。
  • 点对点集成方式 - 接口耦合度高,集成能力及经验无法复用,由于重复开发极易造成资源浪费,运维复杂;
  • 自定义的集成 - 通过利用代码和API,构建自己的核心集成能力。这需要训练有素的技术团队,并且非常耗时,因此很难以可扩展、高稳健的方式去构建。
现状弊端
  • 接口耦合度高,集成能力及经验无法复用,由于重复开发极易造成资源浪费,运维复杂
  • 缺少统一的业务系统集成途径,数据格式、协议多样化,难以传输和集成
  • 缺少与合作伙伴分享数据和业务能力服务的便捷途径
  • 缺少云上云下集成的有效手段
  • 遗留业务系统不能快速开放能力,原有供应商响应缓慢
  • 企业诉求

GettyImages-1277731016.jpg

  • 全栈式的应用与数据集成平台,聚焦应用和数据连接,适配多种企业常见的集成场景
  • 提供轻量化消息、数据、API、设备等集成能力,帮助企业快速实现异构系统的集成
  • 提供丰富的异构数据源及Any to API能力,以高效、轻量的方式实现本地系统的能力服务化改造
  • 实现多种异构数据源(MySQL、MongoDB、Restful API等)数据采集,为统一的数据仓库汇聚数据并实现主数据的分发
  • 简化企业上云的流程,支持云上云下、跨区域集成,帮助企业迅速实现数字化转型
  • 应对方案

selecting-iPaaS-solution.png

  • 定义 iPaaS是一套云服务,支持集成流程的开发、执行和治理。这些集成流程可以连接一些独特的或者跨多部门的、组织内本地的或者基于云的流程、服务、数据以及其相关组合。
  • 特性
    • 丰富的、开箱即用的Endpoint连接器:iPaaS解决方案可以更轻松的直接连接特定的应用程序,而不是需要对API编码,这包括一些特定的协议(HTTP/FTP/XML标准等)、应用程序(SAP/Twiter等)
    • 数据权限管理:可以保证只有特性权限的用户才能接触到这些业务数据。
    • 集成的生命周期管理:提供了中心式的集成控制台,可以对集成的全生命周期(创建、治理、销毁等)进行管控。同时,还可以基于控制台开发集成流程来自动化的在孤立应用程序、数据源、贸易伙伴之间进行数据交换。
    • 错误处理:提供数据传输过程中的错误处理机制
    • 保障数据传输的可靠:有能力保证数据可靠的传输到目标端
    • 开发者工具:在复杂业务的场景下,可以自定义集成流程
    • 易用性:拖拽式的可视化界面、引导式的业务集成流程、状态可观测
    • 云服务:运维简单、方便括/缩容、方便部署业务集成流程
    • 自动化:业务流程构建、部署、触发自动化
  • 如何工作:iPaaS-architecture.png iPaaS提供应用程序服务器和基础设施数据的托管,并提供集成工具和中间件,帮助开发人员构建、测试、部署和管理运行于云服务的集成流程。同时,还会提供开箱即用的链接器和业务规则,来定义客户业务中的交互流程,从而加速整个企业集成流程的开发。
    • 适用场景:ipaas-diagram.png
      • 应用到应用的集成:连接位于企业内部或者云端的应用程序、系统、数据,并实现接口和数据流来建立和管理集成流程。
      • 微服务集成:使整个组织架构可以自动生成和发布API以支持微服务,从而减少内部设计和构建它们的成本。
      • B2B集成:无需通用API或自定义集成即可处理与不同第三方合作伙伴的B2B集成,并为B2B数据流提供安全实施和审计的能力。
      • 数据集成:管理不同数据源之间的数据格式转换并验证数据同步的可靠性,是传统脚本驱动数据传输的替代方案。
      • 平台集成:随时随地的连接各种平台,包括本地、远程、云上服务,企业还可以保留传统的内部集成方案。
      • 大数据集成:处理业务分析、机器学习、人工智能多复杂场景的集成。这些集成通常涉及数数据湖、数据仓库以及必须要以低延时处理的大批量数据。
      • 物联网设备集成:集成大量的物联网设备(传感器、执行器)、工具和API之间的连接,以支持涉及多个系统和云平台的数据收集、处理和传输。
      • 混合云集成:创建、实现和管理公共云资源、服务与其他云(例如SaaS提供商)的资源、服务之间的复杂集成。
    • 方案设计
      • 系统架构 iPaaS arch.drawio.png
      • 核心概念
        • 连接器 - 用来与集成引擎Apache-Camel及其底层组件通信,例如支持sql、kafka、mqtt、soap等多种连接器
        • 连接 - 连接器通过配置源、目标数据,组成一个连接,例如mysql数据库的链接
        • 运行时集成 - 根据连接器、依赖、配置构建的Dokcer镜像,并部署在云端运行的实例
      • 核心组件
        • UI - 用户接口,创建、管理、展示集成信息
        • Server - 服务编排组件,并未UI提供接口
        • Meta - 提供开箱即用的连接器的信息
        • Source to Image - 创建可运行的集成实例(Runtime integration)
        • Database - 存储集成、链接等相关的配置
      • 集成内核
        • 使用Apache Camel作为集成引擎,关于Apache Camel 此处不做介绍。
      • 组件架构 image.png
        • 工作流程
          • 用户通过UI与Server交互,创建集成
          • Server通过Meta服务查询连接器的信息
          • Server根据连接器信息创建集成信息
          • Source to Image 服务将必要的Connector(Spring-Boot应用)和依赖构建(Project Generator)成docker镜像
          • Source to image 服务将镜像部署到容器中
          • 集成实例运行,提供集成能力
          • 所有的集成信息存储在SQL中
重要意义

iPaaS.jpg 越来越多的企业开始拥抱基于分布式微服务的应用程序、云服务以及多样性的数据源,并希望将它们整合在一起。随着应用市场的发展,iPaaS将与API管理、SaaS集成、数字化转型、机器人流程自动化(RPA)、业务流程自动化(BPA)等领域相互促进、相互成就。随着业务目标与应用程序之间更深入的联系(例如,统一工作流、管理客户数据等),iPaaS的战略意义越发的显著。据Gartner预测,iPaaS将成为未来企业应用的主流产品,并发挥重要的商业价值,而传统的类似ESB的供应商,将无法与之匹敌。