
2.3 统一能力框架
iuap针对微服务开发、中台服务孵化、连接及持续发展,定义且实现了统一的规范及配套组件,将企业服务的微服务化、平台化、中台化最佳实践方案沉淀为iuap5.0的核心框架,即统一能力框架,英文Unified Capacity Framework,简称UCF。UCF致力于为企业云服务的发展提供坚实的底座,与企业云共同发展、相互促进,实现真正的共创共赢。
2.3.1 统一能力框架的理念
如果把一个功能完备、坚实耐用的数字化中台比喻为一栋摩天大楼,那么数字化中台的开发框架就是这栋大楼的框架。一个成熟的开发框架可以保障程序开发效率、软件健壮性、软件性能、运行维护和功能扩展等。由于开发框架实现了很多基础性功能,有了统一的开发标准规范,程序员只需专心实现自己的业务需求。
UCF是用友云针对企业数字化中台理念实现的一套开发框架,目标是让开发人员快速开发数字化中台,支撑中台理论的开发落地,并用中台能力快速实现创新业务。用友数字化平台本身是基于UCF规范构建的,同时也支持企业基于UCF构建自己的业务平台。
iuap以UCF编程模型为基础,在其上构建技术平台、数据中台、业务中台、领域中台等中台化产品。开放平台是内部中台能力、开发支撑能力对外开放的生态开发入口,它提供开发工具的支撑和开发资产的管理,涵盖运维部署等功能。UCF和中台产品的关系如图2.14所示。

图2.14 UCF和中台产品关系
2.3.2 UCF是中台落地的抓手
针对开发、集成、运维、扩展、多端化、国际化、专属化七大企业云服务的关键研发诉求,UCF通过UCF-CN(云原生应用基础规范及配套组件)、UCF-MDD(元数据驱动及配套服务)、UCF-DEM(数字化建模基础规范及服务接口)、UCF-OE(开放扩展的机制与接口)、UCF-EC(专属化的规范标准和工具)五大核心模块对具体问题域进行细分并对基础框架进行支撑。五个模块可相互独立,但又由统一规约连接形成一个完整的整体。五大模块类似于一只手的五根手指(如图2.15所示),“一指禅可悟道,两指、三指、四指各式组合可练神功”,其最终目标是五指合力形成最有力的抓手。

图2.15 UCF是中台落地的抓手
围绕这五大核心模块,iuap及各个领域服务还会在UCF的基础上持续建设周边配套,实现中台能力孵化、运营、业务管理、数据分析及考核等相关服务。比如UCF-CP(能力广场)、UCF-TOOL(能力孵化工具包)等。
UCF从企业云服务核心问题域出发,通过梳理核心解决方案,提炼并抽象出最佳实践,形成一整套统一的标准及规范,可指导企业数字化中台理念的开发落地。以下是对UCF五大落地抓手的详细介绍。
1. 云原生应用基础规范及配套组件
UCF-CN中的CN指的是Cloud Native,即云原生应用开发。在新的云服务模式下,用友总结了在业务开发中的问题,提出了UCF-CN的云原生开发规范和基于开发规范提供的工具、组件、脚手架工程,从而帮助云应用开发人员快速掌握开发技术,规避开发风险。
UCF-CN已经提供的组件包括:ucf-parent(统一第三方包管理)、ucf-common(核心对象接口定义)、ucf-core(针对ucf-common中核心接口的工具实现)、ucf-log(日志组件)、ucf-dao(数据库持久化组件)、ucf-sql-translator(数据库方言适配)、ucf-sharding(数据库分库分表)、ucf-web(前端开发组件)、ucf-spring-boot-stater(基于Spring Boot的启动器)。UCF-CN的功能框架如图2.16所示。

图2.16 UCF-CN的功能框架
除上述组件以外,UCF-CN还在RPC(远程过程调用服务)、统一日志追踪、开发平台、专属化安装盘打包及专属化安装器等产品中也适配了UCF的规范。它们将作为一个完整的整体,为广大开发人员提供便利的、体系化的原生开发环境,同时让企业的数字化中台能力基于云原生进行构建,以保证原生能力的弹性及健壮性。
2. 元数据驱动及配套服务
UCF-CN更多的是规范和基础性的组件,UCF-MDD则是一个开发套件,其整体开发流程如图2.17所示。

图2.17 UCF-MDD开发流程
MDD指的是模型驱动开发(Model Driven Development),这不是一个新的概念,多年以前就由UML(统一建模语言)的创建组织OMG提出。MDD采用了模型和技术分离的架构设计,其在形式化后就是MDA(模型驱动架构,Model Driven Architecture)。它通过使用高度抽象的领域业务模型作为构件,配以各种模型驱动引擎作为配置支撑,达到降低开发成本,应对复杂需求变更的目的。
UCF-MDD的核心就是元数据服务和相关场景的驱动引擎。UCF-MDD基于统一元数据服务和领域模型驱动开发框架的整合/融合而抽象出来。UCF-MDD目前包含了企业应用中比较常用的两大元数据及其对应的引擎:物理对象元数据和UI元数据。UCF-MDD在扩展性上除了针对两大元数据提供相关的设计器进行可视化的模型扩展之外,还有一个规则引擎,提供代码级别的扩展机制,并预置了众多默认规则。UCF-MDD向下对接UCF-CN规范,向上则通过规则实现和各类公共支撑服务的对接。UCF-MDD架构如图2.18所示。

图2.18 UCF-MDD架构
UCF-MDD需要体现更大的价值,除了完善框架本身的功能之外,陆续进行公共服务的对接和预置服务的默认规则的实现也很重要。为了扩大元数据范围,可以将更多企业应用模型纳入统一元数据管理。深入具体业务可以沉淀大量的行业业务模型作为元数据模板,也作为整个用友中台的数据资产来提供支撑。以上都需要各领域和行业中台能力服务的支持,所以希望更多的领域和伙伴参与进来,共同构建基础能力,一起打造业务中台的开发生态!
3. 数字化建模基础规范及服务接口
UCF-DEM是数字化企业建模(如图2.19所示),它提供企业数字化转型过程中最基础的业务模型,并提供模型与模型之间关系的维护管理功能。UCF-DEM是用友多年产品开发过程沉淀下来的一系列的数字化模型规范、接口契约、使用规范等。基于这些契约和规范可以实现各模型间的协议互通,也可以实现基于此协议的相同建模能力的替换和兼容。

图2.19 UCF-DEM数字化企业建模
目前UCF-DEM是业务中台的核心内容,包含企业中心、用户中心、企业账号中心等企业管理核心模型,也包含组织中心、权限中心、大量社会化数据和租户级基础数据服务,它可以解决组织管理、授权与管控,以及基础档案建模等相关问题。另外,它也包含大量业务日志、编码规则、调度预警等支撑服务,对内能支撑领域和行业构建中台能力,对外能帮助企业快速构建企业应用或构建企业自己的中台服务。
随着用友公司大力推进中台能力的建设,UCF-DEM作为业务中台的核心构成,也在进行融合发展。随着用友云的大力发展及被众多客户使用,也会反向促使业务中台各能力中心和支撑服务得到长足发展,支撑多个领域及行业云的融合和运行,实现中/高端不同客户对能力的需求,并实现对其能力进行分层设计。
4. 开放扩展的机制与接口
UCF-OE是指能力的开放与扩展。在企业服务向中台架构转变的过程中,如何最大限度地利用已有能力,这对能力本身提出了很强的开放扩展要求。用友根据ToC互联网应用的开放性和ToB企业应用的扩展性,总结了一套开放扩展的规范与机制,帮助大家更好地建设能力。
UCF-OE是用友云服务生态建设必不可少的一个重要环节,其开放及扩展能力如图2.20所示。

图2.20 UCF-OE开放及扩展能力
UCF-OE目前已经提供了UCG(统一能力网关)、开放平台、云市场、APILink等支持微服务的快速开放能力。UCF-OE和UCF-CN、UCF-MDD紧密合作,制定扩展规范与机制,形成了用友云统一开发平台的核心组成部分。同时和行业、领域客户及伙伴一同构筑了用友混合云开放生态体系,如图2.21所示。

图2.21 用友混合云开放生态体系
5. 专属化的规范标准和工具
UCF-EC是指专属云,解决如何专属化的问题。专属云跟公有云一样,也是一种云产品形态,在用友给客户交付的产品中占主要的地位。不同于公有云服务,专属云有其自身的特点,特别是在大型企业服务市场,由于数据和业务安全等原因,企业不太认可公有云模式。所以,用友需要提供给企业专门部署的云产品。专属云其实涵盖了两个方面,一方面是部署到客户机房和IDC的模式,类似于传统的软件交付模式;另一方面是在公有云上为客户在隔离的IaaS资源之上进行产品的部署。
产品的专属化,绝不仅是把公有云的产品进行下沉那么简单。由于用友目前朝微服务架构的方向发展,服务之间的依赖,产品和组件的依赖关系日趋复杂(包括使用的中间件、配置)。在现有的研发模式下,产品架构设计缺乏专属化相关的规范考虑和相关的支撑服务工具,导致现有的云产品在专属化交付时的难度很大。一方面是研发的压力,另一方面是测试的压力。这相当于在云产品之外又进行了一套专属云产品的开发,特别是在产品的打包、测试、发版和交付方面需要耗费很多的资源。云产品使用的组件和技术栈等各不相同,测试人员每介入一个新的产品,就得熟悉相关的技术和工具。另外,产品的部署各不相同,既增加资源的消耗,又减少了真正提高产品质量的开发人员。
UCF-EC就是为了解决现有云产品专属化的问题而被提出来的。它通过工程规范、产品依赖规范、数据脚本规范等,结合产品打包工具、安装器等服务,为云产品提供一套标准化的专属化流程和工具。遵循UCF相关规范,就能够在整个产品的研发周期中,通过自动化的规范和工具来解决专属云版本部署包的生成、产品安装部署等一系列的问题,从而提升研发效率和产品质量。用友iuap专属云能力如图2.22所示。

图2.22 用友iuap专属云能力
随着边缘计算、5G网络的发展,未来的云架构会超越现有网络架构的瓶颈和极限。随着技术的进步及开源运动的进行,大多数的企业会转向技术公司。这意味着越来越多的企业开始认同技术红利带来的突破性业务创新。企业可以通过团队力量构建自己的技术服务,赋能自身的业务,进行业务的变革和创新。
未来,多云的模式会成为常态化,越来越多的企业会采用多种不同的云部署模式来构建自己的业务服务。多部署模式、架构的快速打包、在多环境下的快速复制/部署、满足对产品化的要求、产品快速云上/云下的升迁,以及不同云环境间的转移/复制,都是未来云服务设计及架构需求的重中之重。