创新思源 | 面向企业业财一体化的微服务架构云构建方法研究
云计算、大数据、人工智能风起云涌,技术的进步让工作和生活的方式天翻地覆,一个基于信息技术的时代来临,让企业管理也深刻认识到信息工具及手段的重要性,以往较互联网应用落后的企业管理信息化需要百尺竿头更进一步。本文通过对基于微服务架构设计、面向搭建业财一体化应用的思源云3.0平台的研究,以及中企云商科技股份有限公司(以下简称“中企云商”)以思源云3.0为基础为中国铁物物资集团有限公司(以下简称“中国铁物”)设计的财务共享项目整体搭建方案的实践验证,提出使用低成本、高性能的微服务平台为特大型企业集团构建SaaS应用的方法路径。
传统的企业管理多采用单体架构,特点是耦合度高,研发团队集中研发,功能代码集中在一个发布包中发布,提供给用户量有限的企业使用。之后的SOA(Service-Oriented Architecture)架构在一定程度上解决了单体架构的代码过度耦合问题,将可以为多个应用提供服务的可重用功能划分为独立服务,加之负载均衡、云平台等硬件技术不断发展,SOA架构的大平台加独立服务组合模式,逐渐可提供给更大规模的企业集团使用。但SOA架构仅仅分离了有限的服务,仍然让业财融合型的管理平台显得过于笨重。在企业管理模式不断变化、敏捷开发盛行的今天,SOA平台的发展到一定规模就会遇到严重的瓶颈,高耦合使代码的修改牵一发而动全身,开发维护成本逐渐升高,团队协作效率不断下降,持续的迭代、发布对平台的稳定性产生了严重的影响,对软件测试及交付提出了巨大的挑战。
微服务是一种设计风格,微服务架构是SOA架构的延伸,旨在对软件平台进一步细颗粒度的解耦,Martin Fowler在他的文章中将微服务定义为“微服务架构提倡将应用程序分割为多个独立的小服务,每个服务专注于自己独立的功能,并运行在各自独立的进程中。服务与服务之间有比较明确的界限,互相之间通过一些轻量级的通信机制进行沟通”。国外对微服务架构的研究及实现已经成熟,国内亦有很多研究案例。郭栋、王伟、曾国荪(2015)基于轻量级容器技术和微服务架构,提出了一种无需修改直接将软件部署到云端运行“云件”PaaS平台 。李苏璇(2016)研究了微服务的开发方法,在SaaS应用构建过程中,对海量、实时、动态变化微服务的高可用管理方案并进行了验证。陈幸怡(2016)按照微服务的思想就某公司SaaS系统进行了重构方案设计与实现 。
本文通过对基于微服务架构设计、面向搭建业财一体化应用的思源云3.0平台的研究,以及中企云商以思源云3.0为基础为中国铁物设计的集中式财务共享项目整体搭建方案的实践验证,提出使用低成本、高性能的微服务平台为特大型企业集团构建SaaS应用的方法路径。
(一)平台构建思路
思源云一直致力于打造轻开发、配置化的成长型企业应用柔性平台。2013年起,第二代思源云SOA架构平台启用,平台目前仍在为特大型企业集团运行着各种业务系统、财务系统或业财融合型共享平台。2017年,鉴于第二代思源云搭建的系统越来越庞大而遇到的各种技术瓶颈,北京思源时代科技有限公司开启了第三代微服务架构思源云的研发,即是本文研究的对象。
思源云3.0的设计思路是采用微服务框架、云平台设计,打造一站式PaaS平台,目标是更完美支撑大型企业集团的综合类企业管理系统和SaaS管理平台类应用建设,帮助用户快速实现高可用性、快速接入、易于运维的微服务解决方案,为致力于数字化转型的企业提供中台服务治理,帮助企业实现建立统一业务标准,优化管理及自动化的能力。
(二)平台总体框架设计
思源云3.0建设之初,团队首先深入研究了微服务架构的理念和实践案例,以实现业务能力的服务化共享、解决平台能力瓶颈为目标,对企业管理相关应用进行了充分的解耦重构设计。设计方案遵从了云原生架构,支持细颗粒度的服务扩展,确保平台服务在真正意义上的热插拔性,即使个别服务或服务组在独立组件发生故障时也能正常运行。基于思源云的企业应用框架如图1所示。
基础层是思源云运行的环境,技术选型目标为平台可在一定程度上支持跨平台、跨数据库运行,既能支撑服务器部署,也能支撑公有云和私有云部署。
平台层服务群组进一步分为面向研发的基础服务、面向切面型服务的服务群组和面向业务的标准业务套件。
数据中台向前台业务提供规则抽取及数据转换服务,将为企业数据共享和自动化采集提供支撑。
研发团队或企业集团可以在平台上快速扩展业务管理应用,平台为提供完整的企业应用上云规划、实施及赋能服务打下基础。
(三)技术架构设计
思源云PaaS平台设计的技术架构如图2所示。
1.Views
思源云3.0采用前后端分离模式,提供包括PC、手机、平板等多样化界面展现。前端应用Webpack+React方案,React虚拟DOM,独立路由,SPA单页面应用,减少与服务器交互,加载速度快。UI采用Ant Design控件库为基础进行二次封装扩展,Ant Design是国内企业蚂蚁金服体验技术部经过大量的项目实践和总结打磨的企业级产品的设计体系,基于“确定”和“自然”的设计价值观,旨在让设计者专注于更好的用户体验。
2.服务端设计
服务端整体采用微服务架构,将复杂的应用拆分成多个微服务,分布式部署。公共组件微服务化,降低与业务的耦合,独立运行、部署、维护。使用轻量、无状态的Restful API提供交互,接口可以开放给网页、APP和第三方应用,使用React、.Net Core、Java编程语言,支持跨操作系统平台部署。
3.交付流水线DevOps和ContainerOps
PaaS平台的设计目标是为大型应用、SaaS类产品研发提供支持,保证多研发团队合作模式的效率,实现自动化、流水线式的软件持续交付,加速应用开发和交付的过程。
行业就敏捷开发已经形成了一套标准流程,可分为编码、构建、集成、测试、交付、部署几个阶段。流程中最重要的组成部分是持续集成,指的是频繁地将个人研发的部分向软件整体交付,持续集成能力对最终向用户方持续交付起到前提作用。DevOps是开发、技术运营和质量保障(QA)三个过程使用的工具和服务,DevOps的设计对产品从研发到交付的过程起到意义深远的影响。微服务架构由于服务众多,存在管理、部署的难点,Jenkins工具与Docker技术的使用为自动化部署工作提供了良好的落地方案。
4.容器技术的应用
微服务框架能够实现快速迭代,但随之带来的是运维部署成本的提升,而容器化技术的发展为此提供了很好的支撑。思源云通过Docker技术实现微服务的容器化管理,将服务及其依赖的软件和操作系统打包成镜像,形成统一的镜像仓库,自动化发布部署,极大地降低了运维部署成本。同时Docker还具有可配额、隔离性、移动性、安全性等特点,为平台的稳定运行保驾护航。
5.ServiceGovernance
服务治理的手段是从不同角度来确保服务调用的成功率,保证数据的一致性、服务的安全性,目前主要包含以下两方面。
(1)服务路由策略:通过网关与平台服务实现服务间路由转发、负载均衡、链路跟踪、性能预警、安全认证等。
(2)跨服务事务:提供基于.Net Core CAP的分布式事务解决方案,保证数据的最终一致性。
6.DataStorage
通过高性能ORM框架支持多种数据库,支持多种异构数据库并存,以支撑更广泛的业务场景。
7.对成熟第三方组件的应用
思源云集成使用了一些第三方组件,如用于实现依赖注入和控制反转的轻量级、高性能的IOC框架Autofac IoC 容器;简单灵活的开源作业调度框架Quartz;用于实现AOP(Aspect oriented Programing),即面向切面编程、将软件系统各模块中无法封装成类的代码进行模块化管理的Castle.Core;用于实现缓存服务的StackExchange.Redis等。
(四)智能数据中台设计
智能化是未来平台发展的硬指标,智能型数据中台的设计,是基于企业中不同的管理目标对业务数据形式、格式的不同要求,为企业数据共享、采集和转换提供模型化、自动化的服务。思源智能数据中台实现了从自动化向智能化的跨越,最新发展为基于机器学习的企业营运规则智能化抽取服务群组,最典型的服务是智能填单相关规则的自动抽取设计,目前在不断优化和进步。最为成熟的服务是业务数据向财务信息自动转换的自动制证服务引擎、业务信息向支付信息转换的统一服务接口等。以制证服务引擎为例,该引擎提供灵活的规则配置,通过表单服务接口同步表单数据,按照凭证模型的规则满足不同业务场景的自动制证要求。
(五)面向业务搭建的微服务组设计
1.Microservice
微服务组是为企业应用快速搭建设计的面向切面型服务群,为企业综合管理平台中的多个子应用提供相同的服务,包括服务类引擎和专业化管理套件两类,为企业应用的搭建提供了真正意义上的热插拔服务组,可以按照企业应用设计方案选用和组装,每种服务组都可提供跨系统的统一服务,很好地支持业务系统、财务系统在相对独立情况下的信息共享,减少冗余的部署和存储。同时,产品化的设计,为企业集团应用搭建降低成本,将庞大的系统搭建工程转化为轻量化的边搭建、边使用、边优化的“三边研发项目”。
2.面向基础业务服务的引擎
服务类引擎作用是面向多个业务系统提供统一的单一类服务。
流程引擎服务,为各个业务系统的业务提供流程模板设计和流程走向控制,支持分布式部署,可跨组织、跨系统提供服务。
表单引擎服务,支持表单的快速定制、搭建,高效运行,尤其善于实现业务表单与流程的完美结合,化繁为简,减少代码开发,缩短交付工期,降低交付成本。
公共打印服务,为业务单据、票据、条码标签、查询、报表等打印需求提供配置化服务,用户自定义打印模板,实现打印差异化、个性化。
影像档案服务是一套独立的影像数据管理套件,提供影像、文档的管理服务,对外提供统一接口规范,业务系统可通过接口快速集成使用。
票据识别(Invoice Optical Character Recognition,Invoice OCR)基于行业前沿的深度学习技术,提供增值税发票、火车票、出租车票、机票行程单、运单等各种票据识别服务,将图片上的文字内容智能识别为结构化的文本,应用于企业票据报销、金融票据识别、快递单据录入等多种场景,大幅提升信息采集的效率。
3.面向专业化服务的套件
专业化管理套件,是一种产品型微服务组,针对企业某种特定的管理模式提供可配置的模式化管理,并向各类引擎提供规则性服务接口。如提供预算管理模式的预算套件、提供企业内控标准管理的运营套件、提供共享模式管理的共享套件、提供财务核算管理的核算套件等。
(六)多租户权限体系设计
多租户体系主要由租户管理服务、公共服务集群、租户业务服务集群、数据存储服务集群、服务镜像仓库、异地备份等服务集群组成,通过容器化技术应用实现租户管理,租户独立应用独立数据库的高性能运行环境,保证应用的隔离性、安全性(见图3)。
(一)背景及需求
中国铁物是经国务院国资委批准,由中国铁路物资集团有限公司(其前身是铁道部物资管理局)整体重组改制设立的股份有限公司,总部位于北京,在全国及美国、澳大利亚等全球主要国家和地区拥有100多家分支机构。经营主要围绕国内外铁路运营、装备制造、建设施工,涉及铁路油品、轨道、装备、铁建、工业、物流、国际及相关多元等领域。
2019年末,中国铁物集团为改变内部控制体系、财务核算体系的手工管理模式,推进全集团成本费用标准化建设,为未来财务共享建设打下良好的基础,通过招标方式选定中企云商作为研发方,启动财务共享项目一期“成本费用控制系统”项目建设,具体需求包括预算管理、合同及支付控制、费用管理及智能化报账、自动制证、数据分析等,拟通过在中国铁物全级次分、子公司上线应用集中部署的成本费用控制系统,实现成本费用管理规范化、标准化、信息化,提升管控效率和效果,有效控制财务风险。
(二)设计方案
中企云商选定思源云3.0作为应用搭建基础平台,为中国铁物搭建大集中式管理平台,并设计如图4所示的搭建方案。
业务前端开发合同管理系统接口衔接数据中台。
系统搭建选用平台基础服务、主数据服务、预算管理套件、运营管理套件、表单引擎、流程引擎、影像服务、OCR服务、打印服务、制证引擎等。
数据中台提供自动填单服务,自动制证引擎接口衔接SAP核算系统,资金支付衔接用友资金支付系统。
移动套件配合移动应用,数据仓库、数据分析套件配合数据分析。
(三)系统搭建步骤
1.需求调研及设计
需求调研及设计阶段,团队详细调研了用户预算管理、费用报账及合同管控的需求;设计预算管理体系、业务场景需要的表单;对成本及费用业务进行流程再造,分析业务制证规则。
2.基础数据准备
基础数据准备阶段,团队为中国铁物整理了集团的组织机构、部门人员、往来客商、预算科目、会计科目等基础数据,对接中国铁物集团主数据平台、SAP核算系统,与相关系统保持一致,平台内部使用思源云主数据服务同步和分发。
3.业务搭建
业务搭建阶段,团队导入预算结果,根据设计进行预算控制策略、表单、流程、打印、制证规则等相关配置工作。
4.测试
测试阶段由研发团队进行专业化测试,判断平台运行是否稳定,业务流运行是否符合设计,制证准确性及SAP接口稳定性等。
5.试用及优化
试用及优化阶段,用户进行系统试用,开始细节优化环节,进入迅速迭代期,服务优化代码发版周期为2-3周一次,表单、流程、打印、凭证制证等配置项调整为随时发布。
(四)智能化设计案例
以“手机端扫描识别票据并确定业务,PC端发起报账根据发票自动填单”设计为例,展现微服务调用设计(见图5)。
(五)试运行效果
系统自2020年1月份开始搭建,排除过年及疫情因素影响,同年3月费用控制及制证自动化已经开始在两个试点二级单位上线试运行,目前运行稳定。
后续该项目将陆续启用预算管理、合同支付控制,并针对系统产生的数据设计数据分析模型。未来,中国铁物如进行共享中心搭建,在信息化建设方面仅需部署共享套件、进行流程调整,即可实现业财一体化的财务共享模式管理。
(一)大型企业应用技术瓶颈的突破
通过中国铁物项目的实践验证,微服务架构的业财一体化平台具备更好的性能、更高的可用性、更强的扩展性,越来越成熟的技术生态使企业应用具备了互联网级的响应效率,对服务管理的改进,加之负载均衡、健康检查、实时监控报警等措施,保障了应用持续稳定运行。
微服务平台能够很好地支持大型企业信息化项目的分步建设,避免了巨型项目整体复杂性、开发周期过长导致的失败几率大等问题,配置化和服务的细颗粒度更好地满足了柔性的需要,数据中台的设计对信息共享起到了重要的作用。服务的按需部署、弹性扩展及云管理模式,在技术架构上真正实现了企业综合管理的集中式、一体化平台,能更好地适应未来企业发展需要。
(二)未来的改进方向
对应用建设团队的研发过程而言,OPS工具的应用和交付流程优化是未来平台的改进方向之一。微服务PaaS平台通过自动化的工具协作和沟通来完成软件的生命周期管理,而敏捷开发工作流程标准化、测试过程自动化、部署交付的自动化方式方法仍需不断探索。
此外,对于微服务架构的平台,由于服务的细颗粒度分解,服务间调用的增加,调用链路及算法的优化可进一步提升系统性能,是未来不断努力的方向。
[1]李苏璇.基于微服务架构的SaaS应用构建方法研究[D].华南理工大学,2016.
[2]郭栋,王伟,曾国荪.一种基于微服务架构的新型云件PaaS平台[J].技术研究,2015,(11):15-20.
[3]陈幸怡.基于SaaS的微服务重构机制的设计与实现[D].北京邮电大学,2016.
(作者单位:北京思源时代科技有限公司)
来源:《中国总会计师》杂志
*******************************************
【感谢您关注《中国总会计师》!更多精彩回复】
回复【1】了解-杂志社简介;
回复【2】接收-最新一期杂志目录;
回复【3】获取-如何订阅杂志;
回复【4】呈上-最新财会资讯
更多精彩请点击http://www.cmcfo.cn了解!
【关于我们】
《中国总会计师》杂志是由中国总会计师协会主办,全国惟一以反映中国总会计师形象和以总会计师为主要阅读对象的中央级指导性大型财经类月刊。
《中国总会计师》杂志,紧贴时代,关注财会政策和行业新动态,聚焦热点,彰显英才,传达中央财政政策,深度报道国内外财经界重大事件,传播企业财务管理的先进经验,为中国总会计师未来的改革和发展提供理论支撑和实践经验。
《中国总会计师》杂志,欢迎广大作者踊跃投稿,我刊将择优录取。在本刊刊登稿件,可以作为职称评定的依据,多年来,我刊已经帮助大批英才晋升为高级或正高级职称。
《中国总会计师》:中国总会计师(CFO)的思享平台;千百万财会工作者的精神家园。