当主数据遇上微服务……

在这里插入图片描述作者:石秀峰,致力于企业数据资产管理、数据治理的布道和实践者。

导读:关于主数据和微服务的关系,我思考了很久,决定用这个标题来写。我认为微服务的技术将改变主数据的技术形态,而主数据服务应该是价值最高的微服务。

01
先说说什么是主数据、什么是微服务

  1. 主数据

主数据的概念大家都还记得吧。对,主数据有3个特点、4个超越。这里就不对主数据的3个特点、4个超越做过多解释了,如需了解请在公众号中的往期文章中查找。

主数据是企业内被多系统进行共享的核心数据,其实本质上,主数据是一种数据集成的方式。当前国内外主流的主数据厂商,例如:IBM、SAP、informatica……,这些厂商的主数据产品的架构依然是流行了多年的——SOA架构!

在这里插入图片描述

  1. 微服务

微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也一种种松耦合的、有一定的有界上下文的面向服务架构,每个业务逻辑都被分解为一个微服务,微服务之间通过REST API通信。

在这里插入图片描述

微服务具备以下特点:

服务粒度小。而每个微服务是针对一个单一职责的业务能力的封装,专注做好一件事情。

可独立部署运行和扩展。每个微服务能够独立被部署并运行在一个进程内。这种运行和部署方式能够赋予系统灵活的代码组织方式和发布节奏,使得快速交付和应对变化成为可能。

支持独立开发和演化。技术选型灵活,不受遗留系统技术约束,服务与服务之间采取与语言无关的API进行集成。服务数量的激增会引起架构质量属性的变化,例如企业集成总线ESB逐渐被P2P的虚拟总线替代;为了保证高性能、低时延,需要高性能的分布式服务框架保证微服务架构的实施。

支持独立团队和自治。服务由小研发团队负责微服务设计、开发、测试、部署、线上治理、灰度发布和下线,运维整个生命周期支撑,实现真正的DevOps。

02
微服务的技术将改变主数据的技术形态

微服务是一种面向业务敏捷的架构模式,在国内被以“BATJ”为代表的很多互联网公司所推崇。我认为,微服务的是在SOA架构之上的升级,虽然本质上都是解决业务的敏捷集成。但却有不可忽视的差别。

与传统SOA架构相比,微服务是一种去中心化形式,在架构上具备更高的灵活性、更加轻量化,使用简单REST协议而非复杂的WS协议。由于去中心化的架构,让每个微服务都能独立的部署和运行,所以其高可用性具备天然优势,在性能上更加可靠。

在这里插入图片描述

在网上有这样一个观点:企业信息化需要大破而后立,就是利用微服务的架构,将企业业务系统进行重构。这种重构,将破除企业单体应用体系而建立统一的微服务体系;这种重构,将不仅仅在于应用层面的重构,而是从业务系统和数据存储层的重构;这种重构,要抛弃集成的思想,目标是所有功能全部微服务化。所以,微服务后就没有必要在其之上加一层主数据了。

以上观点,本人并不反对。只是到目前为止,除了一些原生的互联网公司,国内的大多企业的信息化建设还是以单体架构为主,部分企业实施了SOA。而微服务的这种重构,先不说企业需要企业具备微服务的技术能力和人员储备,就花费的成本和周期来说,大多数企业还不具备基于微服务彻底重构业务系统的能力。

可以肯定的说在未来5到10年来内,企业信息化架构一定是传统架构和微服务架构并存的时期。这里,建议对于传统企业内部管理的系统在一定时间内可以继续采用传统架构模式,而互联网业务部分的系统采用微服务架构进行新建或重构。

传统架构也好、微服务架构也罢,主数据都不会因为架构体系的变更而消亡,只是技术形态发生变化了而已。在传统企业数字化转型的关键时期,我认为,基于微服务架构的主数据平台将更符合时代的潮流。微服务采用的简单协议REST将让主数据集成更加简单;微服务的独立部署和运行,解耦SOA服务之间的相互依赖,将让主数据的服务治理更加灵活可行;微服务提供的相对稳定的API层,将让主数据服务性能更加高效;微服务的自治能力,将让数据团队对主数据更加高效可控,提升数据质量。

03
主数据服务是价值最高的微服务

在与很多人交流中发现,大家对于微服务架构的优势都比较认可。但说到,传统企业到底该如何进行微服务的实施,这个就各说风云了。极端一点的就是我上面提到的摒弃传统信息化架构,对所有业务系统进行微服务重构。

也有像我一样的观点:已经建设了的用于内部运营管理的系统继续使用,对外(互联网业务)采用微服务架构进行重构和新建,在通过集成手段将内部数据与微服务进行打通。

在这里插入图片描述

对于企业信息系统微服务化拆分,业界也没有明确的标准定义。只是说拆分的越细越好,最好是原子化的服务。没有一套切实可行的微服务实施方法论支撑。

我们都知道主数据是企业核心的、高价值的、被高度共享的数据。那么基于主数据实体模型的微服务应该企业高价值的微服务。

基于主数据模型实体的微服务,如客户、供应商、用户账户、会员、产品等。在企业业务系统采用微服务的方式进行重构或新建的过程中,这些主数据服务将被高度利用。从而省去了二次构建的成本和周期。

所以,企业的微服务实施,主数据服务是应该首先被考虑的对象。而事实上,将主数据应用微服务化,我们已在多个项目中得到了成功的验证。

04
主数据的理念将是微服务实施的重要指导

微服务的本质是服务重用,从而实现业务敏捷。实施微服务让人最恼火的是微服务拆分的问题。微服务拆分必须从系统、应用、数据三个层面综合考量,只考虑系统或应用层面的微服务,只能叫“伪服务”。

本人认为微服务的实施可以参考主数据实施方法论。主数据实施的时候首先需要梳理和识别主数据,再对识别出来的主数据确定实施优先级,然后对需要首先实施的主数据进行标准化处理,最后完成主数据的整理、清洗、整合和集成。

在这里插入图片描述

微服务不拘泥于一种业务,事实上所有业务都可以用微服务的形式开发。但是,在实际执行过程中,还是要综合考虑企业的业务形态,以及作好周期、成本、价值的评估和预判。

首先,需要进行微服务的识别,确定应用哪些作为微服务,哪些可以暂时保留原有架构形态。

第二,要从周期、成本、价值等维度考虑微服务实施的优先级,首先要对那些高价值应用进行微服务化。

第三,要把控微服务颗粒度,例如:会员,会员的账号注册、账号注销、登录、退出以及会员的后台管理等业务都可以做成微服务,当然微服务颗粒度的越细越好,以上所举例的每个事务都可以做成一个微服务。

在企业信息化架构中,微服务不只需要提供高质量的服务,更需要考虑通过重构来实现高质量的数据,实现数据的单一视图和唯一来源,提高数据的质量,这也是微服务的价值所在。而主数据是企业数据中的骨架,其他数据是血肉。构建出主数据,企业的数据才有清晰的脉络,才能“有模有样、有形有态”,才能不至于一直一团乱麻,才能真正提升企业数据的质量,是企业数字化转型的重要基石。

当主数据遇上微服务,这是一种你中有我,我中有你的缘分!

在这里插入图片描述

欢迎转载,转载请注明,作者:石秀峰,公众号:learning-bigdata(谈数据)

更多数据治理、数据资产管理原创文章,请扫描二维码关注微信公众号(谈数据),微信公众号是笔者原创文章的首发平台,CSDN将滞后一定时间发布。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kuangfeng88588/article/details/89073735