查看原文
其他

实战丨数据中台的云原生应用实践

金融电子化 金融电子化 2021-08-11

欢迎金融科技工作者积极投稿!

各抒己见!

投稿邮箱: 

newmedia@fcmag.com.cn

                                 ——金融电子化

文 / 中国民生银行信息科技部  罗京 何鹏

民生银行数据中台基于“微服务+容器化”的云原生思路设计,Store存储体系、Service服务体系、Open路由体系、Plus管理体系4大功能体系核心模块自主研发,为民生银行零售、公司、供应链、监管等10余个业务领域的数据诉求提供支撑,日均调用超1000万次。



初探云原生云

原生(Cloud Native)的概念在2013年左右提出,“原生”即为土生土长的意思,指应用在设计阶段即明确将进行“云化”的部署运行(而非基于虚拟机技术的迁移改造),充份利用弹性、松耦合等云化的优势进行架构设计。CNCF公布的云原生代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这里笔者结合民生银行实践,将云原生的建设思路抽象为按照微服务、容器化的架构设计应用、兼顾DevOps标准,满足持续交付基本诉求(如图1所示),即:云原生=微服务+DevOps+持续交付+容器化。

图1 云原生建设思路


从“痛点”谈“诉求”

开篇提到数据中台的架构诉求与云原生有着“天然”的技术契合,契合点在于:数据中台在打造金融领域数据服务过程中所面临的“痛点”与云原生技术的特长不谋而合。


近年来银行经营压力持续增大,各业务条线在一线经营上,为寻求新的增长点,提出了诸多个性化数据分析和服务的述求。在没有数据中台时,要满足诸多业务条线的数据需求,数据分析师需要在后台数据仓库上完成T+1的数据加工,然后将数据文件推送给各个业务前台系统,每个前台系统都维持一个小规模的数据团队,专门负责将数据文件转化为自己领域内的数据服务,实现业务述求。这种模式下的痛点,以及对数据中台架构选型的要求,主要体现在以下几点。


1.痛点一:存储浪费大。数据以文件方式分发到各前台系统,均需要占用业务库宝贵的存储资源,尤其是通用场景数据(例如用户画像标签等),重复的资源浪费尤为突出,亟需集中化的存储和服务替代分散模式,体现在架构选型上,即需要“云化的异构存储能力”支撑。


2.痛点二:传递效率低。文件式数据传递链路以T+1批量为主,数据需要“一股脑”全部加载进本地数据库后方可使用,数据获取的效率远低于通过服务“按需”调用获取指定内容(例如指定客户信息、指定机构指标)。数据中台为了支持前端各具业务特色的数据应用场景,需要借助“微服务”解耦和组装。


3.痛点三:人力投入大。众多前台系统的数据转化工作收归沉淀在中台后,为了继续保持对业务场景迭代诉求的快速响应,就需要通过技术手段降本增效,提升中台持续交付能力。体现在技术诉求上,就是需要“云化的部署运营能力”支撑。


“微服务”“云化的异构存储能力”“云化的部署运营能力”就是数据中台解决目前金融业数据应用痛点的思路,与云原生技术的特长不谋而合。


民生银行的探索与创新

“求木之长者,必固其根本;欲流之远者,必浚其源泉。”云原生应用不仅要在技术层面“达标”,更要在配套管理层面“创新”,配套管理就是云原生应用的本和源。民生银行在践行云原生架构思想上,结合金融领域数据服务特点进行了三个层面的探索。


工具层面:按照原生支持“云化开发”“云化存储”“云化发布”“云化运维”的标准,打造一站式的数据服务云化DevOps工作台。


管理层面:推出场景金融服务管理方案,对云化微服务集实施“领域分区+技术分级+场景分层”的多维管理,解决微服务解耦粒度、场景化运营管理等云原生管理难题。


组件层面:综合金融数据应用特点、数据存储组件能力等因素,构建符合大型金融场景的异构存储组件分级应用方案,根据场景选择合适的存储组件,灵活组合、插拔式使用。


工具层面,打牢根基;组件层面,丰富能力;管理层面,厘清脉络。工具、组件、管理协同,共同打造场景化的数据服务和数据产品、完成数据赋能。


下文以点代面,从数据中台云原生相关工具中,挑选有代表性的功能点,串联中台服务开发、投产、运行的全过程,分享数据中台的云原生实践(见图2)。

图2 数据中台各环节云原生工具举例


1.插拔式的开发框架与代码生成器。在数据中台上,开发应用需要满足微服务设计、支持云化部署、支持异构存储组件等技术特点。这对开发人员综合能力提出很高的要求,例如,微服务低耦合+高内聚的特点,要求任何一个“微小”的服务都要集成诸如日志、缓存、注册与追踪等大量基础功能,且支持容器化运行;多样的异构存储组件,则在连接池管理、最优操作实践、基本规范等方面有所不同。


为解决上述难题,数据中台推出了便捷的代码生成器,开发人员通过界面勾选方式选择业务场景微服务所需要的基础功能(例如服务注册、日志模块、服务拦截、数据拦截、多线程模块、缓存模块等)和存储组件(例如MySQL、Redis、GaussDB、SequoiaDB、HBase),生成器会直接生成包含所选功能、最优操作实践、可直接云化部署运行的工程代码。开发人员在快速上手的同时可以将更多的精力投入到核心业务逻辑的开发中。


2.一键式的云化编译、部署、封版工具。微服务的云化部署运行是一项繁复的工作,包含诸多操作细节(例如源码编译、镜像构建、容器部署等)和配置细节(涵盖应用配置、数据库配置、集群配置、容器配置等),但同时也是一项直接影响云化运行是否稳定的重要工作,包含多项重要的管理抓手(诸如源码版本、镜像管理、资源调配等),对服务开发人员技术门槛要求极高。


数据中台整合集成,将繁琐的操作和配置透明化,提供了一套面向Docker云化运行环境的一键式编译、部署工具,微服务应用在云化环境中从构建到部署一键触发、各中间环节执行进展一目了然。同时结合民生银行生产变更标准,提供一键式的封版、校验工具,将校验工作固化到标准流程中。两项工具配合使用,在落实云化运行各项管理抓手稳定可控的同时,降低了开发人员云化应用开发的技术门槛。


3.自动化的源码校验、配置校验工具。针对云原生敏捷交付中版本快速迭代可能出现的风险点,数据中台推出了自动化的校验工具,串联一系列校验点,涵盖源码级和配置级校验;同时人性化地设置了红黄警示,诸如源码异常、配置缺失时红色严重警示,配置值异常时黄色一般性提示,出现任一项红色警示则校验失败,中断发布流程。


4.云化的全链路服务跟踪。随着云化运行的微服务达到一定量级,微服务的运行状态追踪、依赖调用分析、热点分析成为云原生领域的技术难题。民生银行数据中台在起步阶段就进行了系统性设计,通过服务注册、APIKey识别、流水号串接、服务拦截、数据拦截、日志留痕、准实时分析等一系列规范和技术手段,联合打造了一套完整的云化服务全链路跟踪体系。同时针对数据微服务的业务特性,在链路跟踪体系中增加对数据存储层访问与数据返回量级的追踪,方便运营人员全面了解每项微服务的健康状态。


5.异构组件联动的生命周期管理工具。数据中台在数据存储组件层面推荐异构组件的分级联合使用,这就要求中台数据生命周期管理工具在支持基本的单组件数据退役功能的同时,还要支持多组件的数据升降级管理,例如在MySQL退役的历史数据需要联动加载到SequoiaDB,实现数据降级服务。


6.可视化的缓存热管理工具。另一项与云化运行结合紧密的小工具是可视化的缓存热管理,针对配置有缓存组件的微服务,支持在应用运行阶段,动态调整缓存时效和缓存开关,同时配备缓存KV检索看板和缓存使用分析等辅助功能。






往期精选:

(点击查看精彩内容)


● 实战丨公司治理视角下的金融机构数据治理思路探讨

● 实战丨物联网背景下的智慧消防建设与实践

● 实战丨农信科技新突破 : 从“面向对象”回归“结构化”

● 实战丨发挥金融科技作用,助力辖区复工复产

● 实战丨基于Hadoop平台建立货币信贷大数据数仓的实践






关于仿冒我刊收费的声明





我刊自创刊以来,从未向投稿人收取过任何费用。任何以刊发文章为名向投稿人收取费用的行为,均属于对投稿人的欺诈行为。


我刊官网地址为 www.fcmag.com.cn。

我刊投稿邮箱为 fcmag@fcmag.com.cn。


对于仿冒我刊网站、网页的违法行为,我社将追究其侵权责任,以维护我社和投稿人的合法权益。仿冒网站、网页举报电话:010-88232443




《金融电子化》新媒体部:主任 / 邝源  编辑 / 潘婧 傅甜甜

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存