Classical Article

财务云FOL专栏 | 微服务助力财务共享更灵活、更稳定

中兴新云 FOL 财务云信息系统,采用微服务架构,实现了组件化、服务化,尊重企业的历史投资,可在企业已有系统的基础上独立、个性化部署新的功能模块,各功能模块可积木组合,适配不同行业、不同规模的企业财务发展特点;通过 FOL 的接口平台 ,各功能模块可实现全面连接。以需求的视角出发,通过微服务架构的设计,中兴新云·财务云团队确保 FOL 财务云信息系统能够适应企业的发展特点和发展阶段,为企业的财务数字化转型提供有力支撑。

 

“张帆荡舻,悠然顺适,倏忽千里,云驶星疾。”


这是位于南京市鼓楼区静海寺内天妃宫碑中的一句碑文,描绘了郑和船队下西洋时,在推山倒岳的惊涛巨浪中从容穿行的画面。碑文紧接着写道 “咸曰:此天妃神显灵,应默加佑相”,认为是妈祖显灵庇佑了船队。


其实,郑和船队完成七下西洋的壮举,离不开一个秘密武器——水密隔舱,即用水密隔板把船舱分成互不相通的水密舱室。郑和船队的所有海船均采用水密隔舱,在远航时即使有一二个舱室破损进水,海水不会流入其它舱室,提高了船体的抗沉性,保证了航海安全。


而这种舱室隔离的安全结构设计,用现在程序员的话说,就是微服务。

 

如今,信息系统对企业管理的重要意义不言而喻。企业信息系统面临功能不断增加、内外部系统对接复杂的情况,容易出现各种问题,就像面临着大海航行中难以避免的浪涛,如何保证企业的大船能够 “悠然顺适、倏忽千里” ?如何迅速、灵活、稳定地发挥信息系统功效,为企业的高速发展护航?你会需要微服务。

 

封面.jpg

 

微服务自 2014 年 3 月由 Martin Fowler 首次提出,如今已成为了最主流的分布式应用解决方案之一。


Dimensional Research 基于对 353 名高级开发利益相关者的在线调查,发布了 2018 年全球微服务趋势报告。报告显示,微服务已成为企业的主流,正在得到广泛采用(受调研对象中,91% 的企业正在或计划使用微服务)。

 

调研报告.jpg

 

图片源自 Dimensional Research《2018全球微服务趋势报告》

 

 

什么是微服务 ?


微服务是一种系统架构上的设计风格,主旨是将一个大而全的复杂信息系统,按照业务模块拆成若干个简单的小型服务,每个小型服务其实就是一个轻量级的系统,它有自身的数据库,可独立部署运行。


微服务的“微”,并非指它的体积足够小,而是它的责任足够单一,且相互隔离,服务间通过轻量级的 API 进行通信协作,保证每个服务良好的高可用性。


微服务的“微”还有“微不足道”的意思——当某个服务出现故障,它不会影响整个系统。

 

其基本原理如下图所示:

 

原理图.jpg

在客户端(PC/手机端)通过浏览器发送请求时,请求首先会到 NGINX 代理服务器,代理服务器把请求发到 Zuul 网关,网关负责对请求进行合法校验,并从注册中心获取对应的服务信息,检验成功后会根据请求信息调用所需的微服务。

 


怎样从财务的角度理解微服务?


当企业小的时候,一个财务部就可以处理所有的财务业务;但企业规模变大的时候,就需要专业化分工,将财务业务进行拆分。同样,当信息系统简单时,一个应用就可以满足使用需求了;但信息系统足够复杂时,就需要拆成多个微服务。


微服务可扩展,可以独立升级,实现了研发、测试专业化分工。以前一个开发人员要懂全部代码逻辑,现在做报账单的只做报账单,做共享运营平台的只做共享运营平台。就像财务共享服务一样,因为有了专业化的分工,业务处理效率和质量都能得到提升。

 

 

为什么要使用微服务?


传统模式下,软件应用程序是作为单个项目开发的,具有单个代码库和单个部署文件,这适用于小型软件应用程序。现代企业管理信息系统功能愈发复杂,内外部系统对接愈发多,不可避免地导致了代码库的庞大,复杂和不灵活。由于大多数代码紧密耦合,很难在没有意外后果的情况下进行微小更改,因此这些“单体应用程序”难以维护和操作。日常维护、功能更新、扩展上升、系统对接或新的安全要求都成为了开发和架构团队的噩梦。


对比之下,微服务展现出如下优势:


1、独立的可扩展性
每个微服务都可以根据业务实际增长情况,独立进行横向或纵向的快速扩展;


2、独立的可升级性
每个微服务都可以独立进行服务升级、更新,不用依赖于其它服务,结合持续集成工具可以进行持续发布,开发人员就可以独立快速完成服务升级发布流程;


3、开发效率高
每个微服务的代码均只专注于完成该单个业务范畴的事情,这样可以提高代码的可读性,进而可以提高研发人员的生产效率;


4、语言无关性
每个微服务的开发语言都可以不同,研发人员可以可根据业务场景选择适用的特有技术路线。这样在面对新技术或新框架的选用时,微服务能够更好地进行快速响应;


5、故障和资源的隔离性
在系统中出现不好的资源操作行为时,例如内存泄露、数据库连接未关闭等情况,将仅仅只会影响单个微服务;微服务只专注一块业务,相对代码体积较小,启动速度快;


6、优化团队沟通

如果要完全实践微服务架构设计风格,研发团队势必会按照新的原则来进行划分,由之前的按照技能、职能划分的方式变为按照业务(单个微服务)来进行划分。明确的业务边界会减少沟通成本,每个小团队都对自己模块的整个生命周期负责,整个组织架构的沟通效率会大大提高;


7、原生基于“云”的系统架构设计
基于微服务架构设计风格,可以构建出原生对于“云”具备超高友好度的系统,与常用容器工具如 Docker 能够很方便地结合,构建持续发布系统与 IaaS、PaaS 平台对接,使其能够方便的部署于各类“云”上,如公用云、私有云以及混合云。

 

 

使用微服务的注意事项


软件工程没有银弹,微服务架构也会带来以下问题,我们需要有针对性地去解决。


1、运维复杂
更多的服务也就意味着更多的运维,传统的架构开发者只需要保证一个应用正常运行,而现在却需要保证几十甚至上百道工序高效运转,这是一个艰巨的任务。


中兴新云 FOL 财务云信息系统提供一个强大的微服务监控运维平台,可以实时检测微服务的状态,同时也可以实现服务的部署升级。


2、分布式系统的复杂性
微服务通过 REST API 或 MQ 消息来进行通信,在这之前的单体应用就是一个系统内部的相互调用,不存在网络、事务、负载等问题,而现在如此多的微服务都需要分布式部署,就意味着需要考虑网络延迟、容错、消息序列化、不可靠的网络、异步、版本控制、负载等问题。


为了解决此问题,中兴新云 FOL 集成了分布式事务框架 TX-LCN,以及开发了一个强大的分布式数据补偿框架,保证数据的最终一致性。

 

 

中兴新云FOL财务云信息系统的微服务架构设计理念

 

FOL微服务框架.jpg
FOL财务云信息系统架构示例


中兴新云 FOL 财务云信息系统,采用微服务架构,实现了组件化、服务化。中兴新云 FOL 拥有独立的可扩展性,票联、报账、电子档案、发票管理、资金管理、税务共享、共享运营等,每个功能模块都可以根据业务实际增长情况独立进行横向或纵向扩展;同时,系统保持独立的可升级性,每个微服务都可以独立进行服务升级、更新,不用依赖于其它服务,结合持续集成工具可以进行持续发布,开发人员可以独立快速完成服务升级发布流程。


FOL 还尊重企业的历史投资,可在企业已有系统的基础上独立、个性化部署新的功能模块;各功能模块可积木组合,适配不同行业、不同规模的企业财务发展特点;通过 FOL 的接口平台 ,各功能模块可实现全面连接。


以需求的视角出发,通过微服务架构的设计,中兴新云·财务云团队确保 FOL 财务云信息系统能够适应企业的发展特点和发展阶段,为企业的财务数字化转型提供有力支撑。

 


/END/

 

 

版权声明:本文作为中兴新云·财务云包括书面研究、社群互动和会议在内的持续性资讯服务的一部分发布。版权所有 2019 中兴新云。未经许可,不得复制。保留所有权利。