微服务架构下企业元数据管理平台的设计和应用

2020-09-29 07:51梁晨王耀俊
电脑知识与技术 2020年17期
关键词:微服务金融科技

梁晨 王耀俊

摘要:越来越多的金融科技公司开始采用微服务架构设计核心业务系统,传统元数据管理软件虽然功能庞杂,但多适用于数据仓库或者大数据平台,架构相对较“重”,且价格不菲,不适用于微服务这种“小快灵”的敏捷开发模式。微服务架构下,各个微服务可能由多个团队独立开发,元数据如果管控不好,以后会造成各个微服务之间数据字段定义冲突以及接口交互困难。该文提出了微服务架构下元数据管理的流程,并自主研发了一个适用于微服务模式开发使用的元数据管理平台,将其与自动化测试以及持续集成结合使用,有效地提高了微服务开发的数据质量和开发效率。

关键词:元数据管理;微服务;金融科技

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2020)17-0049-02

1 元数据和元数据管理

元数据(meta-data)简单的定义是描述数据的数据,元数据管理是企业数据治理中最核心和最基础的工作,也是企业数据中台的基础。OMG(国际对象管理组织,BPMN和UML语言标准的制定者)将数据模型定义为数据、元数据、元模型和元元模型从下到上四个层次,每一层都是下层的抽象。元数据和元模型是其中管理的核心。

企业中一般进行管理的元数据主要为业务元数据、技术元数据。业务元数据主要包括业务术语、业务指标、业务规则和取值范围等,业务术语通常会被拆分和建模成更细的业务词典,即元模型。技术元数据主要包括数据字典、表结构,字段属性,服务接口等。例如“结算金额”,它的业务定义和统计规则是业务元数据,它在数据库存储的字段类型、长度和精度就属于技术元数据。

2 微服务架构下元数据设计和管理的难点

在微服务架构下应用服务被拆分成多个小粒度的微服务,不同的微服务可以由不同的团队开发,甚至可以使用不同的开发语言。如果元数据无法统一管理,无法形成统一的元模型,那么微服务之间无法形成统一的“语言”,就无法完成数据的通讯和交互。例如一个微服务中日期字段定义成了年-月-日,它的下游接口却只能接收年/月/日的日期格式,那这两个微服务就无法交互。

因此有必要对微服务的元数据进行统一管理。

3 微服务下元数据的管理范围

为了适应微服务的开发,业务元数据和技术元数据按如下分类纳入元数据管理:其中业务词典、标准技术类型、标准业务类型、默认值、数据字典及关联关系和标准字段属于企业级的元数据,是各个微服务团队需要统一遵守的元数据,这些被定义为公用元数据。数据库相关表、视图等数据库元数据和服务接口由每个微服务团队自己定义,不属于公用元数据。

4 元数据的设计过程

设计元数据首先要从业务或用户需求入手,收集整理业务需求和场景中所有业務术语和取值范围,并对这些业务术语分解成最新粒度的“单词”。例如将“参与者交易限额”拆分为“参与者”“交易”和“限额”。各微服务团队之间如果有“单词”重复,则以主数据源的团队定义为标准,合并各团队间不一致的“单词”,最终形成全系统统一的业务词典、默认值和数据字典,完成业务数据的建模。

根据技术上的数据库选型,定义标准技术类型,包括变长字符、定长字符、整数、小数、日期和时间等类型。基于标准技术类型,定义标准业务类型用于标识业务对象的数据类型,赋予业务含义。

结合业务词典和标准业务类型生成标准字段,标准字段的中文名称必须全系统唯一,原则上需满足“修饰符”+“实体名”的格式。

以“结算金额”字段的定义过程为例,首先根据数据库使用的数值类型作为标准技术类型ChTNumeric,再根据业务含义基于此标准技术类型定义一个“金额”的标准业务类型ChAmt,长度为18位,小数精度为2位。在标准字段定义时将“结算金额”定义为ChAmt类型的标准字段(ChAmt类型也可以被其他标准字段如将“交易面额”使用)。

有了标准字段就可以定义表字段和建数据表。同时接口对象需按照标准字段定义,不允许接口对象中出现非标准字段,通过给接口对象赋予输入和输出属性可以完成微服务接口的定义。这样有了元数据的控制,表的定义和微服务接口的定义就得到了严格的管理。

5 元数据管理流程

元数据管理涉及三种角色:微服务开发团队中的开发人员、微服务组长、元数据管理员。开发人员负责进行元数据的录入,微服务组长检查和复核团队成员录入的元数据,确保组内成员申请的元数据无歧义和无冲突。如果提交的是公共元数据,则在组长复核通过后提交元数据管理员审核。元数据管理员站在企业级视角,审核各个微服务团队提交的公共元数据,确保各组之间的定义没有冲突和违反元数据定义规范。同时元数据管理员应该不定期的检查各个微服务团队独立定义的专有元数据,确保各自提交的元数据符合组织的规范。

6 元数据的平台架构和实现

笔者从2017年开始元数据管理平台的调研,发现适合微服务架构开发的元数据管理平台较少,大部分是传统数据仓库使用的元数据管理平台,功能虽多但架构较重使用不方便。于是笔者所在公司就自行研发了针对微服务开发元数据管理平台(ONE-META)。下面对该平台整体架构和功能做个简介。

6.1 整体系统架构

本平台采用当前较为流行的Spring Boot架构做后台开发,Vue.JS做前台界面开发。主要包括:1)前端展示层,使用Vue.JS+浏览器方式提供用户界面。2)接入控制层,负责用户岗位管理、服务监控、异常日志和登录认证等控制功能。3)业务逻辑层,提供的业务功能主要包括公用元数据管理、数据库元数据管理和服务接口元数据管理功能模块,负责各自领域元数据的录入管理;同时本层提供统一公共技术组件包括代码自动生成、元数据核对、影响分析和血缘分析供上层功能模块统一使用。4)数据存储层,为MySQL数据和Redis缓存。

6.2 核心框架技术

1)Spring Boot框架

Spring Boot提供了 Spring组件一站式解决方案,主要是为了简化使用 Spring 框架的难度和配置。Spring Boot提供了各种组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目。

2)Vue.JS框架

Vue.JS是一套用于构建B/S前端界面的新一代Javascript框架。Vue.JS采用自底而上的增量开发模式,重点关注View视图层的开发并通过API实现前端响应的数据绑定和网页视图组件的自动更新。

6.3 核心业务功能

1)元数据的录入审批功能

主要是公用元数据、数据库元数据和服务接口元数据等各类元数据的提交录入、复核和审批等功能,实现了元数据的登记和管控。

2)元数据的版本管理

通过拉链算法跟踪元数据变化情况,进行版本管理。 拉链算法主要是用来记录整条数据的生命周期,然后通过版本号记录每个元数据每次的变更情况,为版本追溯和增加代码自动生成提供基础。

3)SQL脚本和JAVA代码自动生成

根据数据库元数据和版本,自动生成可以交付直接生产的SQL脚本(全量或增量)。例如表结构、字段数据字典变更后的SQL語句,减少手工SQL手工编写SQL脚本操作,提高软件版本交付质量。

数据库表定义完成后,本平台还可以自动生成数据访问层的DAO和SQLMAP等JAVA代码。服务接口定义完成后,可自动生成前后端接口层的JAVA代码。这两种代码自动生成功能减少了开发人员手工JAVA代码编写,提高开发效率。

4)服务接口注册及依赖关系管理

包括接口对象的定义,服务接口请求和相应报文定义以及服务接口注册。本平台管理的服务接口包括MQ接口和系统间接口。

同时每个接口注册时需登记调用方,有助于明确微服务之间调用关系和以后调用链的分析比对。元数据发生变化后,自动根据调用关系通知调用方。

5)缓存命名管理

随着微服务架构中REDIS缓存技术越来越多地被使用,REDIS缓存KEY的命名数据的定义也纳入技术元数据统一管理统一注册在本平台,以防止不同微服务之间缓存KEY定义相同,导致缓存冲突。

6)对外REST接口

本元数据管理平台通过REST接口对外提供元数据查询功能,包括服务接口查询、标准字段查询和数据库脚本查询等。因此元数据管理可以纳入自动化测试或者持续集成等软件开发流程并被调用,进而纳入统一的开发流程管理。

7 元数据与持续集成结合

持续集成已经从软件工程的最佳实践变为事实上微服务开发的行业标准,它鼓励开发人员频繁地向主干分支提交代码,频率为至少每天一次。每次提交完都触发完整的编译构建和自动化测试流程,缩短反馈周期。一旦软件出现问题都可以第一时间发现并进行修复,从而保证代码质量让软件随时处于可发布状态。

在微服务架构开发测试中,自动化测试中主要的一部分为服务接口的自动化测试,这通常需要测试人员手动根据开发人员的接口定义编写案例。如果开发人员编写的接口无法和测试人员的案例有效同步,那么测试是无效的。

本平台在与自动化测试工具结合时,对外提供了微服务接口定义的查询功能,自动化测试工具自动读取元数据管理平台定义的接口,自动生成接口案例,提高了接口案例编写的效率。接口发生变更时,自动化测试工具可手工触发案例自动更新。

在数据库脚本打包中,持续集成平台自动读取本元数据平台的数据库全量/增量脚本,减少了开发人员手工编写数据脚本的工作,提升了交付的质量。

8 总结

本文研究了微服务下元数据的管理,并自研了适合微服务开发模式的元数据管理平台。提高了微服务下的元数据管理水平和应用系统的设计开发效率,改善了微服务设计不规范的现象,促进了金融科技公司数据治理向“一致性、规范性、开放性和共享性”迈进。

参考文献:

[1] 杨鸿宾,宋明.元数据管理平台总体架构设计研究[J].计算机系统应用,2007,16(11):17-20.

[2] 于千城.企业数据仓库中元数据的应用研究[J].电脑与信息技术,2008,16(6):43-45.

[3] 刘丽娟.基于CWM的ETL元数据管理系统研究与实现[D].西安:西北大学,2008.

【通联编辑:代影】

猜你喜欢
微服务金融科技
数字智能时代的供应链金融
金融科技发展对保险行业的影响研究
百度金融成立国内首家“金融科技”学院
微信公众平台在医院图书馆的应用现状调查
从单一模式系统架构往微服务架构迁移转化技术研究
宁夏平罗县城乡居民信用信息服务平台建设的实践与思考
浅谈金融科技与金融创新的关系