来源:年第二届中小金融机构数智化转型优秀案例评选
一、项目背景及目标
基础开发框架是企业IT系统建设自主化的重要体现,头部的金融保险公司均有自研的基础开发框架产品(如蚂蚁SOFABoot、平安PAFA)。
随着近些年来互联网业务的蓬勃发展,以及微服务技术体系的不断完善成熟,越来越多的系统建设开始朝着微服务、云计算的方向发展,其中前端基于Vue.js框架,服务端基于SpringBoot配合SpringCloud服务治理框架,部署基于DevOps+容器云的组合,得到了越来越多开发团队的认可,逐渐成为企业级系统建设的标准解决方案。
经过多年的IT系统建设,阳光产险内部形成了颇为复杂的技术栈,应用系统架构主要存在的痛点包括以下几方面:
1、架构老旧:存在众多基于Struts、JSP等陈旧技术的单体架构的系统,导致需求开发周期长、难度大,且难以集成新组件以实现高阶功能。
2、各自为战:IT各条线为解决架构老旧带来的种种问题,纷纷实践应用了基于SpringBoot和SpringCloud等流行技术的新开发框架,但因各开发组标准不统一、新框架问题攻关力量不集中的问题,导致研发效率缓慢,未能形成标准化的最佳实践。
3、易用性差:部分IT系统虽然集成了一些新组件或解决方案,但因研发力量和使用场景有限,且选型缺乏专业性评估,导致新系统上线效果低于预期,易用性差。
4、管理困难:由于缺乏统一底层框架控制,集团与部门制定的技术和安全规范难以快速在各IT条线的众多系统落地,管理成本极高。
因此,开发部门需要一套统一且持续迭代的基础开发平台,针对需求上线过程中开发、测试、运维工作存在的痛点,提供解决方案最佳实践。
二、创新点
技术创新方面,开发框架核心代码由内部完全自主研发,通过内部开源协作模式整合业内流行的前后端开源框架和平台组件,同时整合了大量监管与公司内部制定的开发、测试、运维、安全等方面的规范实现,开发平台整体已获软件著作权。
理念创新方面,开创了基于线上化工具与技术委员会制度的内部开源协作工作模式,最大化提升了平台各子项目版本迭代效率与质量。
流程创新方面,广泛借鉴同业及互联网公司需求目标管理与DevOps流程体系,自主设计搭建了一整套基于GitLab、Jenkins、Kubernetes等工具平台的全线上化需求版本上线流程,实现所有开发动作与需求相关联并可跟踪,已在多个重点项目实践,保障各阶段开发目标达成。
三、技术实现特点
开发平台包括以下设计目标和特点:
1、满足线上快速定位问题需求
针对目前运维工作的痛点,提供请求链路跟踪方案,协助运维人员在微服务场景下快速定位问题,减少依赖重现定位问题。
提供基于缓存服务的记录用户操作轨迹的方案,便于后续分析用户行为。
2、开发人员专注业务逻辑
将与业务逻辑无关的用户、权限、日志、缓存调用等功能剥离,业务开发只需要关心最核心的业务逻辑。提供多种符合安全和规范要求的工具类和开发工具包,协助开发人员完成需求开发。
3、使用流行的开源技术
使用当下流行的可靠的开源技术,包括各种开源组件、开源框架等。
4、满足前端展示要求
提供各种主流浏览器的支持,要求良好的交互界面,提供丰富的前端控件。
5、满足大并发计算需求
支撑互联网环境下的庞大计算需求,提供无状态高可用服务,并能对微服务进行有效治理,更好的支持容器化部署。
6、满足快速上线需求
通过一些自动代码生成工具,完成工程代码的自动生成。
通过微服务拆分,减少功能模块间耦合度,结合DevOps工具,提升上线效率。
7、满足不同规模开发需求
对于小的应用,只提供最基本功能即可;对于复杂应用,提供对新组件集成的支持。
8、可视化监控诊断
对全系统健康状态分析诊断,使用全链路监控工具快速查找定位问题。
9、接口文档自动化管理
基于开源工具实现接口文档的自动化生成和在线管理。
10、安全方案
提供统一安全策略,包括统一认证方案、前后端漏洞防护方案等。
四、项目过程管理
1、需求分析和概要设计阶段
此阶段时间段为年6月至年10月,其间主要完成了开发运维部门需求调研、上一代开发框架问题与痛点分析、SAAB3开发平台建设目标制定等工作。提交了现状需求分析报告、SAAB3开发平台建设目标等文档。
2、基础开发框架搭建阶段
此阶段起始时间为年11月至年8月,其间主要完成了前后端基础开发框架的搭建工作,并制定了内部开源协作的开发模式。内网发布了SAAB3开发平台基线版本,包括前后端基础开发框架、服务治理组件、样本程序、开发规范、开发指南等文档资料。
3、上线推广阶段
此阶段时间段为年8月至今,其间对开发平台进行不断迭代更新,完成了基于线上化平台的DevOps需求版本发布流程打通,在内部十余个开发项目推广使用。提交了基于容器云的版本交付、灰度发布方案及管理办法等文档。
五、运营情况
SAAB3开发平台自发布以来已推广至内部十余个系统应用。运营管理着重