7

八戒金融技术架构演进之路

 2 years ago
source link: http://dockone.io/article/2434652
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【编者的话】八戒金融在近6年的发展历程中,在互联网金融行业蓬勃发展和不断创新的金融形态驱动下,经历了三轮技术架构体系的演进。本文将详细阐述其演进历程,希望给互联网金融企业,尤其是初创企业一些借鉴和启发,少走一些弯路。

构架演进之路

第一阶段:业务探索阶段,架构V0.1版 ~ V1.0版(2016年1月 ~ 2018年2月)

八戒金融于2016年1月开始组建,初始的产品技术团队均来自于猪八戒集团,2016年5月31日,旗下互联网小贷公司宜创小贷宣告成立,正式开始进军全国互联网金融业务。在这期间陆陆续续做了一些业务尝试,这一阶段有一定规模的业务线有:传统线下大贷(未使用系统),八戒服务商订单贷、八戒员工贷、航旅贷。

技术架构演进方面,又分成了三个版本:

1、架构V0.1版(2016年1月—2016年7月)

根据猪八戒集团的技术基因,第一版架构是用PHP语言开发的单体系统,用于支撑八戒订单贷业务。

2、架构V0.2版(2016年8月—2017年6月)

恰逢集团正在全面推广前后端分离、Java后端技术栈、DevOps,八戒金融研发团队也积极响应集团的号召,全面转向Java体系进行重构。

3、架构V1.0版(2017年7月—2018年2月)

由于初始研发团队并无互联网金融方面的基因以及积累,面对多条业务线并进、需求繁多、业务变化快等问题,并不能快速有效的支撑业务发展,八戒金融技术团队决定采用核心系统采购,周边系统自研,联合开发的模式,同时,按照业务要求以及新的架构模式,研发团队从原来按职能拆分向按产品拆分调整,各条业务线有完整独立的研发资源,V0.1版~V1.0版系统架构如下图所示:

第二阶段:业务拓展阶段,架构V2.0版(2018年3月~2020年2月)

这一阶段,公司层面又拓展了戒易花、医美分期等业务线。V1.0架构开始实施后,逐渐暴露出一些系统层面的问题,主要是采购的核心信贷系统是单体系统,用的技术比较老旧,系统比较臃肿,耗费资源比较多,不易扩展和维护,部分核心功能不够稳定(例如跑批卡死),随着业务线的快速扩展以及业务上量,系统逐渐成为业务发展的瓶颈。八戒金融研发团队在对核心信贷系统设计逐步熟悉和了解的基础上,决定在新业务上采用架构V2.0版自研核心信贷系统。

V2.0版架构主要是以微服务的方式,将信贷核心系统拆分为若干子系统,另外基础服务也拆分为多个子系统服务,V2.0版系统架构如下图所示:

第三阶段:业务稳定阶段,架构V3.0版(2020年3月~2021年6月)

这一阶段,医美业务得到快速的发展,已具较大的规模,同时又拓展了医美现金分期、八戒订单分期、卡挂分期等业务线。此时,V2.0架构却暴露出很多严重的问题,较大影响了业务的发展,主要在以下几个方面:
  • 核心业务服务是烟囱型架构,服务拆分是按产品及业务流程拆分(例如贷前、贷中、贷后),而不是按核心服务拆分(例如用户服务、订单服务等),易重复开发、标准化不够、易出错、耗费研发资源较多、且利用不充分。
  • 拆分粒度过细,用户一次提交有的会跨越很多个业务服务(例如进件会同时走前置、贷前、贷中、实时计算等服务),只要其中一个服务有问题系统就会报错造成阻断。
  • 微服务系统数量太多(总计有100多个系统),耗费大量的人力和系统资源,管理比较困难。
  • 服务间耦合性过强,例如有的服务依赖10多个其他服务,服务独立性差,不易维护扩展。
  • 服务边界不清晰,很多重复校验,开发基本凭感觉进行校验(例如在很多业务环节都重复校验用户、订单是否存在等)
  • 服务质量把控不严,编码规范、日志标准、异常处理等方面规范不到位,问题跟踪解决效率较低。
  • 对金融业务理解不够到位,从产品到系统层面开发出来的功能存在一定的合规、风险以及质量方面问题。另外,部分重要的业务来源、触发方式、业务关联等信息有丢失,不便于日后追溯。
  • 采购的核心风控系统,采用了小众的key-value中间件做持久化存储,部分功能云服务上使用经常出问题,且无法解决,且经过几年的发展,供应商版本迭代很快,兼容性不高,老版本基本难以维护,我司也无实施新版本的预算。
  • 支付系统设计部分环节有较大缺陷,偶尔重复代扣及银行回盘时间不准等。
  • 部分基础服务例如实名、签章、影像存储等由于项目质量把控不足,不时有服务故障、超时等问题。
总体而言,V2.0架构实施阶段,八戒金融技术团队缺乏熟悉互联网金融全生命周期的架构师,有点闭门造车,管理上也不够到位,最终效果不理想,同时,采购的核心系统也不能很好的满足业务的需要。

基于以上的困境,八戒金融团队艰难开启了V3.0架构之行,主要采取了以下措施:
  • 从顶层设计上,引入了具有深厚互联网金融经验的技术负责人以及架构师。
  • 按照业界成熟的金融系统中台架构进行重构,摒弃了V2.0架构服务拆分方式,转向为以核心中台服务进行拆分(例如用户、订单、风控、账务、催收等),严格控制服务数量和边界,并对各核心中台系统具体设计展开充分的探讨和交流。
  • 产品技术全员加强金融业务和技术体系学习,逐步熟悉和理解V3.0架构。
  • 制定详尽的V3.0架构落地路线图,从系统拆分、服务方式、接口设计、代码规范等进行了全面的拆解说明,并组织全员一起讨论交流,达成一致形成共识。
  • 对核心基础设施逐一进行全面的重构升级,包含且不限于实名、电子签、影像存储、支付、短信、权限、定时任务、监管上报、ERP推送等。
  • 对核心中台所涉及到的关键技术,例如Spring Cloud微服务体系、工作流、规则引擎、消息中间件、缓存中间件等进行了充分的培训学习。
  • 以新产品订单分期用V3.0架构进行试点,优先重构核心中台业务,再逐一切换基础设施,随后再逐步推广到其他的金融产品,后续逐步替换了采购的核心业务、风控等系统。
  • 按照V3.0架构,对团队职能进行重新划分,产品线和中台线双线并进,项目制进行管理,人力和系统资源得到了较充分的利用。
截止到目前,八戒金融技术体系已全面转为V3.0架构,相较于V2.0架构,运行稳定、耗费资源少、资源利用率高、业务响应快,有力支撑了公司各项金融业务。V3.0版系统架构如下图所示:

随着国内互联网金融业务市场格局的快速演变,公司整体业务方向也有很大的变化,逐步由自营业务转变为自营+助贷双轮驱动,随即而来的就是系统架构层面的再一次升华。与以往不同的是,此次八戒金融技术团队已做好了准备,充满自信,微笑着迎接新的挑战。

原文链接:https://mp.weixin.qq.com/s/PJliVyds_xtXFuTArBdIvQ

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK