一文详解基于云原生技术的aPaaS的应用实践
来源:华为云aPaaS服务产品部
本次为我们分享的王老师是来自华为云开天aPaaS服务产品部的高级研发工程师,拥有4年云原生技术领域研发经验,目前负责产品连接器和流编排等架构设计及核心功能研发,研究范围包括云原生技术下的业务架构应用、弹性伸缩架构、高并发架构及创新技术。
1. 云原生架构
首先我们来简单了解一下云原生的概念和发展历史。
1.1 云原生1.0
2015年CNCF云原生基金会提出云原生1.0架构的定义,主要聚焦在技术标准上,其代表技术为:容器、服务网格、不可变基础设施、声明式API。
左下图中CNCF总结了云原生典型技术的演进历史,从服务器、虚拟化、IaaS、PaaS、OpenStack到容器等,云原生技术是随着云技术栈逐渐迭代发展而来。
右下图是不同阶段的产品开发和对云技术栈的使用,比如:自由开发、瀑布式开发、敏捷开发、云原生开发等,对团队、架构、构建、分发、运维等诉求的适配技术。
1.2 云原生2.0
由华为云定义的云原生2.0:“云原生”是指应用或服务从一开始就是基于云平台来设计和构建的,而“基于云平台”是说利用云平台所提供的产品和服务来设计和构建。应用“生于云,长于云”才是“原生”的本意。Cloud Native是在云环境下构建、运行、管理软件的新的系统实践范式。
所以,基于这样的定义,云原生2.0白皮书列举的技术栈扩大了1.0技术栈的范围。
1.3 云原生架构思考
从传统架构到云原生架构,业务与基础周边的解耦一直是重点。
六边形架构、洋葱架构、整洁架构殊途同归,都追求业务逻辑与基础周边分离。业务逻辑与基础周边分离设计开发,可以实现松耦合的组装发布,把复用度高的基础周边提炼出来,从而提升业务开发的效率。
云原生时代提出的MultiRuntime(Mecha)、服务网格架构也是这个思路,通过周边解耦来支持分布式基础特性。在提升效率的同时,应用也构建在基础设施上,实现“生与云,长于云”。
2. aPaaS架构与云原生的关系
2.1 aPaaS定义
云服务的传统分层划分为:IaaS(基础设施服务)、PaaS(平台服务)、SaaS(软件服务),aPaaS其实是PaaS层的细分层。
Gartner对aPaaS的定义:基于PaaS(平台即服务)的一种解决方案,支持应用程序在云端的开发、部署和运行,提供软件开发中的基础工具给用户,包括数据对象、权限管理、用户界面等。
相比于tPaaS(技术平台服务),aPaaS(应用平台服务)强调的是“经验即服务”,平台在帮助汇聚各类行业经验服务的同时,提供了低代码的服务组装工具,支持行业SaaS应用的高效开发。
从这里可以看出,云原生技术栈中基础周边提供的都是技术特性,aPaaS扩大了特性的范围,把可复用的行业经验也纳入进来了,比如:ID、搜索引擎、地图等,用户可复用的物料更多了,开发行业特性不需要从零开始。
2.2 aPaaS平台介绍
aPaaS平台的目标是使能行业经验沉淀,使能行业应用创新。开天集成工作台具备了零码、低码、全码的丰富工具链,配合丰富的领域API,重构了SaaS开发模式,降低了软件开发门槛。元数据作为基础的资产标准规范,在工具中互认,实现基于元数据的规范,使能开放生态。
华为云开天aPaaS为开发者提供了行业经验的开放和使用平台,具体有哪些平台工具呢?
华为云开天aPaaS主要有两个产品:开天集成工作台和开天企业工作台。
• 集成工作台主要面向开发者,开发者可以在集成工作台上基于行业经验来组装、生产、发布行业经验或应用。
企业工作台面向企业用户,提供了行业应用的统一入口,供企业用户使用,完成SaaS应用的典型生态闭环。
3. aPaaS在云原生技术的实践案例:应用集成编排框架
云原生平台提供云环境下构建、运行、管理软件的能力,aPaaS的集成编排工具聚焦于行业经验能力的组装集成,下面我们来看看设计实践及应用案例。
3.1 设计实践:自助化编排能力
aPaaS集成工作台提供了连接业务系统的能力,由数据驱动,可实现跨系统的自助化编排。
其核心功能包括:数据模型(ABM)、连接器、流编排。
• 数据模型(ABM):提供数据/元数据驱动。相比于传统的技术工具,数据模型可通过数据沉淀行业经验,提升了开发效率;
• 连接器:将每一个APP变成一组标准的API,实现APP的开放,提供可被编排的能力,每个应用只需集成一次;
• 流编排:提供多系统的集成与编排能力,可实现多系统间的数据/能力打通;流也可以发布为连接器供业务调用
开天aPaaS集成工作台提供了图形化的流编排环境,可以实现零代码的开发;还预制了丰富的连接器和流模板,流模板开箱即用;同时,还提供了AI相关的连接器,利用AI技术让业务流程更加的高效。
3.1.1 核心能力:连接器
连接器是应用集成编排工具的核心之一,它可以将每一个APP变成一组标准的API,实现APP能力的标准化开放,以及提供被组装编排的能力。
3.1.2 核心能力:流程
连接器生产出来后,可以通过流程来组装使用。流程是指,多个业务步骤完成一个完整业务行为的过程。流程有很多类型,包括控制流、工作流、业务流、数据流等。
开天集成工作台主要解决的是将行业能力快速的组装起来,选择了基于流程编程(FBP)的范式。这种编程范式将应用定义为网络,它们经过预先定义的连接,通过消息传递来黑箱进程交换数据,而这里的连接是在“外部”指定给进程的。可以看到,流程节点间不共享上下文、状态,仅仅通过消息来串联步骤和传递数据,流程节点内部是独立的处理逻辑和状态,适合把黑箱节点灵活组织起来完成复杂的业务。
基于流程(flow-based)编程(缩写为FBP)
企业集成流程是一种特殊形式的FBP,强调源端、通道、路由、转换器、目标端等功能节点的参与,专注于完成企业应用间的集成,也是应用编排工具要重点支持的场景。
企业集成流程
3.1.3 流程自动化
流程自动化的部署运行是指,通过消息驱动启动停止流程、调度连接器、传递数据,比如:
• 流程在云端自动被编译、检查、入库,供流程控制器调度;
• 流程开发态与运行态支撑服务解耦,流程运行引擎可以部署在不同的目标引擎上;
• 流程引擎既支持流程部署在共享的流程引擎上,也支持部署在独立的函数(ServerlessFunction)上,同时还支持部署在云端、边端上,适配不同的场景,从而达到不同的安全隔离目标;
• 流程使用元数据描述,结合元数据描述的连接器,架构上既支持解释执行,也可以编译到不同的平台上运行;
3.1.4 流程开放生态
用户在应用集成工具上开发出来的流程,可以通过连接器去引用、拓展应用能力,把行业经验快速组装起来;也可以把组装好的流程发布为API,供开天集成工作台上的其他开发工具调用。
开天集成工作台为开发者提供了统一的开发入口,汇聚了各类行业应用及能力。工作台上的工具既可以消费行业能力,也可以生产出新的行业能力,形成生态闭环。
如下图所示,组装好的流程可以发布为API,然后通过开天集成工作台框架通知低代码开发工具。因此,开发者在开发低代码应用时,就可以直接使用已发布的API,不需要再去配置导入。当然,低代码应用工具也可以发布为API或其它类型的资产到开天集成工作台,供所有工具使用。
所以,开天集成工作台通过统一工具框架的方式,来管理行业经验、聚合不同开发工具,从而支持开发者高效地完成端到端的应用开发。
3.1.5 跨云、多端
在边缘、手机等端节点部署流程引擎,支持下发多端流程,实现多端业务的闭环,方便端到端业务的拉通及扩展。
通过多个流程引擎的联动,实现跨端通讯及编排,完成复合业务流程。这种方法需要统一的编辑管理平台来完成流程的设计开发、管理不同端流程引擎,并且能够识别流程部署任务,实施流程的分布式部署。
应用编排工具就可以支持不同流程工具的整合,协同完成跨云、端的开发部署。
比如:在云端开发的所有流程,包括云端的设备监控告警、边端的设备温度数据定期采集、手机端的工单提示等流程,多个流程协同完成业务场景。
3.1.6 流程运维
首先要准确定位问题出处,并看到每一步的输入、输出及执行效率,这些全都可以通过流程引擎统一实现,无需连接器来实现。
在事件驱动调度的流程,运维模块可以松耦合的织入,类似“切面编程”,对原有流程毫无入侵性,把和主业务无关的事情放到流程外面去做。这在企业集成模式里叫“Wire Tap”(线路分支)。
比如:增加运维日志模块,订阅每一步的输入输出,记录执行时延等,业务流程无需变动。
4. 开天aPaaS集成工作台操作演示
开天aPaaS集成工作台提供了丰富的API和零码/低码开发工具,降低开发者应用开发的门槛,提供自动化、智能化的运维工具,降低应用成本。
4.1 应用场景:如何开发连接器,以及如何在流程中使用这个连接器
(1) 从空白开始创建连接器
在开天集成工作台左侧选择连接器->我的连接器->创建我的连接器。(如果已有标准的swagger 2.0文档,可以通过导入来创建连接器)
填写连接器的基本信息,以心知天气为例:
根据心知天气API介绍文档,填写协议(https)、主机地址(api.seniverse.com)和验证方式(API key)。
(2) 创建执行动作
接口路径选择GET,输入 /v3/weather/daily.json,选择查询参数Query,添加子节点location位置。
从心知天气API接口文件中找到返回结果参数,在响应体中导入JSON文件,直接生成响应参数。
发布连接器后,创建连接,填写验证信息。连接器就正式创建成功了。
(3) 创建流
选择流编排->我的流->创建流,从零开始创建流。
添加计划->重复执行->设定流的运行时间,例如:每天早上8点。
添加刚刚创建好的心知天气连接器,选择查询天气的执行动作,设置好位置。
添加发送邮件的连接器,填写邮件地址、主题和内容。
(4) 发送运行结果
选择保存并测试,查看流的运行状态。这样,我们就完成了一个每天早上8点自动发送天气预报邮件的小工具。
4.2 应用场景:基于CDM实现由X*Y*Z变成X+Y+Z的集成
例如在销售订单同步集成场景,将金蝶ERP中的销售订单数据同步到纷享销客CRM中。
(1) 选择行业模板
在开天集成工作台上选择应用模型->行业模型,找到对应的订单域。在行业模板信息架构包中,将行业模板加载到租户下面。
(2) 将金蝶ERP和纷享销客CRM开放为连接器后,打开已经创建好的金蝶ERP连接器,找到执行动作
(3) 通过函数来定义执行动作,输入函数代码
通过CDM导入,生成函数的出参
(4) 查看纷享销客CRM连接器,编辑好“保存销售订单”执行动作。
(5) 在流程中快速实现应用集成。
创建流,选择重复执行,设定运行时间。添加金蝶的“销售订单列表”连接器,设定好运行时间。创建遍历集合元素,添加遍历金蝶销售订单列表,选择数据集合;添加纷享销客CRM的“销售订单”连接器,自动完成智能映射。
(6) 保存并查看运行情况。运行结束后,金蝶ERP中的销售订单就会按照设定的时间自动将数据同步到纷享销客CRM中了。
4.3 应用场景:基于Flow编排开发新服务特性的API
将组装好的流程发布为API。以心知天气为例。
(1) 定义API
提前准备:在连接器->我的连接器中,下载4.1中已创建好的心知天气连接器。
流编排->我的流->创建流,在添加执行动作->内置中选择API流。API请求方式选择GET,API认证方式选择无认证,填写API后端IAM认证信息。在API请求体架构中,填写刚刚下载好的心知天气连接器文件中的参数。
(2) 查询天气
添加创建好的心知天气连接器,直接引用参数
(3) 将结果用邮件形式发送出来
在添加执行动作中选择邮件连接器,填写邮件地址、主题和内容。
(4) 定义API的响应
添加执行动作->API流,选择响应的执行动作。
选择查询天气为响应体
(5) 保存并测试,开启流程。在浏览器中粘贴刚刚生成好的URL,查看运行结果。
4.4 应用场景:将AppCube和开天集成工作台的流及连接器结合使用
在AppCube(应用魔方)页面创建一个APP,选择aPaaS的业务模型。在AppCube开发页面,可以选择在aPaaS集成工作台中开发好的连接器和流。
5. 总结
开天aPaaS集成工作台基于云原生技术,在传统云技术栈之上提供了行业能力,使能应用开发;工作台上的丰富行业能力和组装工具,可以支持用户进行组装式应用开发;AI识别能力的应用,加速了平台自动化进程,有效提高了应用开发效率。
aPaaS平台开放生态标准,支持第三方参与行业经验的构建,欢迎广大的企业伙伴和开发者加入进来,和我们一起沉淀更多行业资产,加速资产的积累和行业应用的创新。
6. 学练考一站式进阶
在线课程
华为云开发者学堂为大家准备了《半小时玩转开天集成工作台MSSI》,通过学习本课程,使开发者了解什么是华为云开天集成工作台,熟悉集成工作台的产品优势和主要功能,能够在合适的场景下应用集成工作台服务。
产品体验
如果想进行产品体验的开发者们,可以前往开天集成工作台MSSI 开通试用,体验基于元数据、可配置的集成框架,试用连接器、流模板、业务模型等集成资产和开发工具。
- 点赞
- 收藏
- 关注作者
评论(0)