泉源:2023鑫智奖第四届中小金融机构数智化转型良好案例评比
获奖单位:中泰证券
荣获奖项:专家好评TOP10良好案例
一、项目配景及目标
DevOps因其先辈性和全面性,已被以为是软件工程的第三次革命;由PUPPET和DORA连合发布的《2017StateofDevOpsReport》陈诉中,故障规复时间收缩了96倍,业务需求从提出到投产的周期从3个月到6个月收缩到3周乃至更短,使得企业更好顺应市场变革。
DevOps已经被证明能在IT和贸易两方面提拔服从。
DevOps界说:DevOps(Development和Operations的组合词)是一组过程、方法与体系的统称,用于促进开辟(应用程序/软件工程)、技能运营和质量保障(QA)部分之间的沟通、协作与整合。它是一种器重“软件开辟职员(Dev)”和“IT运维技能职员(Ops)”之间沟通相助的文化、活动或惯例。透过主动化“软件交付”和“架构变动”的流程,来使得构建、测试、发布软件可以或许更加地快捷、频仍和可靠。它的出现是由于软件行业日益清楚地认识到:为了按时交付软件产物和服务,开辟和运维工作必须精密相助。
图:灵敏迭代流程
特别是灵敏迭代已经成为金融行业研发团队的主流研发模式,这对开辟、测试、运维提出了更高效的要求。
中泰证券互联网研发团队采取灵敏研发模式举行团队间的协作,灵敏的实行必要通过小迭代情势不绝的交付应用产物。灵敏开辟驱动开辟职员更快的交付代码,新的代码必要被更快的测试,并必要频仍的被摆设到开辟、测试和生产,由于运维和测试不能尽快的参加到软件开辟生命周期,导致交付流水线壅闭的环境,而通过DevOps的运用很好办理了这些题目。
在DevOps实行的过程中,涉及的脚色重要包罗开辟、测试(质量)、运维三个脚色,见下图:
图:开辟、测试(质量包管)、运维
此中研发重要关注产物研发的高效、稳固、快速的实现,以及对应的产物开辟完成后,交付成品对应上线时间点可以或许可预期;运维则更多的关注怎样通过主动化运维和连续监控等工具低落产物上线后的维护本钱;测试(质量保障)脚色则关注研发提交过来的产物可以或许尽快的得到测试,因此在进步质量保障服从的过程中,该脚色更多的关注产物的连续主动化测试,以及产物交付质量的提拔。而DevOps实现了将研发、运维和质量三个脚色同一起来,实现了研发、运维和质量的一体化,同时通过连续集成和连续交付的本领,使运维职员更早的参加到产物的交付过程中区,镌汰了差别脚色之间的交付壁垒。
综上所述,只管新工具头脑的推进在肯定程度上可以或许提拔产物的交付服从,但由于企业主动化程度低、软件开辟流程的不规范导致的交付服从慢、交付流程不规范、线上故障反映不及时、运营数据获取困难等题目的存在,使企业在实际的产物交付过程中依然不能实现快速交付有代价的产物给用户。这就必要一个平台办理以上题目,但是如今市面上已有的相干产物存在不能和流程连合以及不支持肴杂成品(容器和非容器)的连续集成与连续交付,且不能获取实际场景的业务数据。因此,一个可以或许办理当前窘境的同一自研DevOps平台变得尤为紧张。
图:DevOps本领舆图与实践落地
二、创新点
蜂鸟效能平台是国内初次认证发布管理工具,为行业首创,DevOps相干本领项到达了良好级的标准。
重要创新性表现在以下方面:
2.1流水线CI/CD
为了进步研发职员服从,将主动化工具与流水线相连合,实现主动化的实行流水线相应节点功能。当开辟职员举行代码提交大概举行代码归并时将触发静态代码扫描,安全扫描,接口主动化测试,混沌工程演练等并将结果反馈给对应研发职员,测试阶段可以主动触发测试环境摆设,接口主动化测试,性能测试等。关键节点如下:
(1)与需求管理体系买通
蜂鸟效能平台及时同步蜂巢平台的需求受理数据,研发职员在蜂鸟效能平台举行提测时可以根据提示选择对应的需求受理编号,从而完成提测、上线与具体蜂巢需求举行绑定。
(2)静态代码扫描
静态代码扫描集成到流水线中,一样平常开辟对于不绝的代码提交代纳主动增量扫描,便于快速发现新增代码中的缺陷,同时连合定时全量扫描和提测前全量扫描的方式,发当代码中全部的缺陷,只有当高危、中危、低危品级的缺陷全部修复完后才华由开辟职员在蜂鸟效能平台上提测版本给测试职员,提拔了开辟职员提测版本的质量和安全性。
(3)安全扫描
蜂鸟效能平台CI流水线中,也集成了安全扫描,重要包罗:网站安全检测,SCA开源组件扫描,IAST扫描。
(4)接口管理
蜂鸟效能平台集成了接口管理的功能,接口管理功能对于差别的研发脚色作用差别,开辟职员可以或许利用接口管理功能举行前后端接口调用、多项目接口同一管理、接口调试和多团队协同开辟;测试职员可以或许基于接口管理功能中登记的接口举行简单接口测试、场景化接口测试;运维职员可以基于接口管理功能中登记的接口实现业务监控;产物职员可以快速举行数据统计。
(5)接口主动化
在蜂鸟效能平台上,测试职员可以或许看到研发职员提测的具体内容,并辨认出具体的成品版本及唯一码,测试职员可以在蜂鸟效能平台上对开辟职员提测的版本举行一键摆设和一键主动化测试,末了测试的结果将以陈诉的方式反馈给研发职员。
(6)混沌工程演练
在连续摆设流水线中,我们在开辟环境、测试环境和仿真环境先后实行混沌演练,利用“主动故障注入”的方式来测试可靠性,以便赶早发现题目并镌汰生产故障。
2.2发布管理
为了实现多云环境下的成品流转及发布摆设,蜂鸟效能平台实现了一套基于肴杂云环境的发布管理功能,通过对肴杂云环境资源的整合,办理了肴杂云环境的CI/CD发布摆设和体系监控题目。
蜂鸟平台的发布管理功能有如下两大特点:
(1)支持多种发布方式
发布方式支持灰度发布方式中的多种战略,如金丝雀发布和蓝绿发布等,同时可以或许对发布过程中的应用康健状态举行主动化查抄,如发现题目可以或许实现主动化版本回退,极大克制了发布过程对业务的影响,保障了生产环境业务的连续性。
(2)主动摆设
研发职员在平台上提测后,测试职员在任务待办内里可以实现一键摆设到测试环境。
发起上线流程并颠末运维负责人审批后,可以在平台上举行一键发布,查察及时日记,当出现题目时可以回滚到前次发布。
三、项目技能方案
蜂鸟效能平台是一个以DevOps相干理念为引导头脑,连合证券行业安全、合规等需求特性实现的一个集多环境(开辟、测试、预发布、生产)连续集成(CI)/连续发布(CD)、代码质量检测、主动化测试、上线流程审批、研发效能数据跟踪及报表统计的综合效能管理平台。通过蜂鸟效能平台在互联网研发过程中的应用,提拔了互联网研发在市场快速变革的过程中实现产物应用的快速迭代,从而到达镌汰产物试错与迭代过程中的时间本钱和技能人力本钱,并为公司业务创收提供技能了保障的目标。
3.1体系架构
蜂鸟效能平台实现了具有连续集成、连续交付和连续运营本领的同一综合效能管理平台,各阶段具体技能如下图:
图:蜂鸟效能平台体系技能架构
蜂鸟效能平台团体技能架构分别为三层,最底层为底子办法层,该层重要为各肴杂云环境下的底子环境,如私有云、华为云、阿里云和行业云等环境下的开辟、测试和生产环境,创建在底子层之上搭建了支持平台的工具,形成了平台的工具层,如需求管理JIRA、代码管理Git、构建依靠工具、单位测试Junit、代码扫描工具、成品管理工具、主动化测试工具(接口、UI、安全)、设置管理工具、应用摆设工具、容器管理kubernetes和监控工具等,通过工具层提供的本领,创建并实现了代价流层,代价流层对应的功能直接为对应的职能化职员赋能,重要为连续集成、连续交付和连续运营等功能。
3.2关键技能
3.2.1流水线CI/CD
蜂鸟效能平台依托DevOps相干理念,连合当前互联网技能中最前沿的容器化技能、容器编排管理kubernetes、微服务架构、设置中心、静态代码扫描、接口管理和主动化测试(UI、接口、安全、性能)等技能,蜂鸟效能平台实现了具有连续集成、连续交付和连续运营本领的同一综合效能管理平台。
图:研发运营一体化全生命周期
为了进步研发职员服从,将主动化工具与流水线相连合,实现主动化的实行流水线相应节点功能。当开辟职员举行代码提交大概举行代码归并时将触发静态代码扫描,安全扫描,接口主动化测试,混沌工程演练等并将结果反馈给对应研发职员,测试阶段可以主动触发测试环境摆设,UI主动化测试,性能测试等。关键节点如下:
(1)与需求管理JIRA买通
为了将具体需求与迭代上线举行对应,从而到达体系上线需求可追踪,同时也为后续对需求举行代价分析提供基石,因此必要对项目管理平台JIRA与蜂鸟效能平台连续交付举行买通。蜂鸟效能平台及时同步JIRA项目标STORY数据,研发职员在蜂鸟效能平台举行提测时可以根据提示选择对应的STORY,从而完成提测、上线与具体JIRA项目标STORY举行绑定。
(2)静态代码扫描
为了进步研发过程中的代码质量并尽快发现已有体系代码中存在的弊端缺陷,蜂鸟效能平台提供了静态代码扫描功能,静态代码扫描功能可以对研发职员的代码举行分析并进一步提拔编码规范。静态代码扫描功能必要可以或许辨认代码中一些常见的弊端,如资源类题目(资源开释、无效指针等)、安全性要求(数据污染、注入等)、潜伏的缺陷(数组越界、初始化、除零错误、空指针引用等)、多线程和同步性(双重锁定、未开释的锁等)和非常处理惩罚(NullPointerException)等。静态代码扫描平台采取增量扫描和全面扫描相连合的方式,一样平常开辟对于不绝的代码提交代纳主动增量扫描,便于快速发现新增代码中的缺陷,同时连合定时全量扫描和提测前全量扫描的方式,发当代码中全部的缺陷,只有当高危、中危、低危品级的缺陷全部修复完后才华由开辟职员在蜂鸟效能平台上提测版本给测试职员,提拔了开辟职员提测版本的质量和安全性。代码扫描统计分析结果如下图:
图:静态代码扫描统计分析
(3)安全扫描
蜂鸟效能平台CI流水线中,也集成了安全扫描,重要包罗:网站安全检测,SCA开源组件扫描,IAST扫描。
网站安全检测
蜂鸟效能平台流水线实行安全扫描包罗网站安全检测.重要功能包罗:Web弊端扫描、数据库弊端扫描、基线设置核查、主机扫描四大扫描功能。
图:网站安全检测
别的尚有SCA开源组件扫描,IAST扫描(通过在服务端摆设agent程序,网络、监控Web应用程序运行时函数实行、数据传输,并与扫描器端举行及时交互,高效、正确的辨认安全缺陷及弊端)等。
SCA开源组件扫描
与DevOps流程无缝连合,在流水线的相应阶段主动发现应用程序中的开源组件。监控浩繁开源软件弊端谍报泉源,让用户及时获取影响其安全的最新开源软件弊端和答应证风险谍报,下图为SCA的扫描结果。
图:开源组件扫描
IAST扫描
IAST扫描通过在服务端摆设agent程序,网络、监控Web应用程序运行时函数实行、数据传输,并与扫描器端举行及时交互,高效、正确的辨认安全缺陷及弊端。
IAST扫描的过程如下:
图:IAST扫描
① 被测试服务器的Web中心件或微服务组件中摆设轻量级插桩探针。
② 插桩探针在应用运行时及时捕获哀求上下文和代码数据流、代码控制流及函数调用栈等敏感情境信息,动态污点追踪引擎进入工作状态;通过及时监控程序的污点数据在体系程序中的传播,来检测数据可否从污点源传播到污点汇聚点。
③ 当定位到具体弊端信息,插桩探针将获取的信息发送给管理控制台,控制台展示应用安全测试结果。正常测试流量就可以及时触发弊端检测,没有额外重放的测试流量也不会产生脏数据。
(4)主动化测试
接口管理
蜂鸟效能平台集成了接口管理的功能,接口管理功能对于差别的研发脚色作用差别,开辟职员可以或许利用接口管理功能举行前后端接口调用、多项目接口同一管理、接口调试和多团队协同开辟;测试职员可以或许基于接口管理功能中登记的接口举行简单接口测试、场景化接口测试;运维职员可以基于接口管理功能中登记的接口实现业务监控;产物职员可以快速举行数据统计。
图:接口项目维度管理
图:接口服务维度管理
通过蜂鸟效能平台的接口管理功能与主动化测试功能的集成。如今已经支持UI及接口主动化测试。
UI主动化
UI主动化基于Appium实现,Appium要能真正主动化手机上的应用必须依靠于各个移动平台所带的主动化框架;IOS平台如今依靠于XCUITest实现,安卓如今重要依靠于Uiautomator。框架提供的是运行库,运行库运行在移动装备上。
AppiumServer服务起来后会在移动装备上安装一个资助主动化的应用,可明白为“控制答应”大概“署理”应用,通过如许应用可以编译我们主动化给出的指令,然后按指令测试移动装备上的应用。
图:UI主动化流程
接口主动化
蜂鸟效能平台的接口主动化功能基于接口分层测试计划的头脑,采取python+unittest+ddt框架自研实现。把测试数据与测试代码完全分离,将数据操纵、用例设置、日记记录、接口哀求等公用方法封装成单独类,利用DDT数据驱动工具管理每个接口的多种测试场景,利用unittest构造、实行多个接口的测试用例聚集,通过添加多种断言情势,如接口的状态码、返回值、差别化(diff)对比等对接口测试结果举行判定,末了通过HtmlTestRunner天生测试陈诉,把返回的测试结果用图形和文本情势形象的显现出来。
图:接口主动化体系
接口主动化测试功能是DevOps实践中不可或缺的一部分,具备连续测试本领,大大提拔测试服从,使测试职员快速顺应灵敏开辟工作模式,从而镌汰了产物迭代过程中的时间本钱和技能人力本钱,为产物快速迭代和发布提供了质量保障。
图:接口主动化流程
蜂鸟效能平台的主动化测试功能实现了互联网研发团队测试职员的服从飞跃,通过将主动化测试平台与连续交付的流程举行连合大大提拔了测试服从。在蜂鸟效能平台上,测试职员可以或许看到研发职员提测的具体内容,并辨认出具体的成品版本及唯一码,测试职员可以在蜂鸟效能平台上对开辟职员提测的版本举行一键摆设和一键主动化测试,末了测试的结果将以陈诉的方式反馈给研发职员。
(5)混沌工程演练
在连续摆设流水线中,我们在开辟环境、测试环境和仿真环境先后实行混沌演练,利用“主动故障注入”的方式来测试可靠性,以便赶早发现题目并镌汰生产故障。混沌工程重要负责故障注入,具体的演练原子本领如下图所示:
图:混沌工程原子本领
3.2.2肴杂云管理及生产发布
中泰证券互联网应用体系的摆设环境为肴杂云,为了实现多云环境下的成品流转及发布摆设,蜂鸟效能平台实现了一套基于肴杂云环境的发布管理功能,通过对肴杂云环境资源的整合,办理了肴杂云环境的CI/CD发布摆设和体系监控题目,具体方案如下图:
图:肴杂云多云环境摆设
对于容器化应用各环境流转发布摆设细节如下:
(1)开辟环境镜像天生与发布
在Gitlab上创建工程后,研发职员可以自助在平台上对该Gitlab工程绑定主动构建和摆设模块,当该工程主分支发生branch归并时触发主动构建,镜像创建后,会将对应的镜像推送到镜像堆栈,然后再触发主动化摆设脚本将该镜像主动摆设到开辟环境。
(2)测试环境下的镜像流转与发布
在开辟职员将对应的需求开辟完后,在蜂鸟效能平台上举行应用产物提测,提测后测试组可以或许在蜂鸟效能平台上的测试模块看到提测的具体镜像内容,根据提测详情,可以实现一键主动摆设,然后再对测试环境的镜像举行主动化功能、接口、性能和UI测试。
(3)生产环境下的镜像流转与发布
在走完产物上线流程审批后,运维职员可以或许在蜂鸟效能平台上看到具体的上线流程信息,根据实际环境举行主动化发布摆设、回滚和复核。
图:成品流转
通过肴杂云多云环境摆设与CI/CD成品流转计划相连合,使研发职员交付的应用成品可以通过蜂鸟效能平台实现多环境流转,终极发布摆设到肴杂云的环境中去。
研发职员在平台上提测后,测试职员在任务待办内里可以实现一键摆设到测试环境。
图:测试摆设
发起上线流程并颠末运维负责人审批后,可以在平台上举行一键发布,查察及时日记,当出现题目时可以回滚到前次发布。
图:生产摆设
3.2.3效能指标跟踪及改善
效能指标可以或许表现研发过程的实行环境,客观的效能数据可以对我们研发改进起到引导结果,没有客观数据和乐成标准就无法做到连续反馈和连续改进。蜂鸟效能平台中关键效能指标见下图:
图:效能数据
研发效能数据多维度展示产物交付各阶段的数据,如开辟阶段的代码数据统计、测试阶段的主动化测试数据统计、运维上线后的故障数据统计等;此中流水线指标从交付服从和吞吐率两方面重要反映研发过程团体效能环境;项目/需求指标可以或许从需求的本钱和上线后的代价两个角度对需求举行代价数据衡量;研发指标反映了当前研发职员的工作负荷以及产出及质量环境;测试指标对产物质量包管具有关键引导的作用;运维指标可以或许反映运维工作服从的环境,如线上故障环境及功能上线发布服从。
四、项目过程管理
蜂鸟效能平台由科技研发部牵头,上研二部负责实行。重要履历了以下几个阶段:
4.1需求分析和概要计划阶段
此阶段时间为2022年3月,其间重要完成了业务需求分析、业务功能和技能构架的高层计划。提交了近况需求分析陈诉、各功能模块的高层计划、技能构架和接口的高层计划等文档。
4.2体系具体计划阶段
此阶段时间为2022年4月,其间重要完成了体系具体计划工作,提交了蜂鸟效能平台体系具体计划阐明书等文档。
4.3体系编码、测试和上线预备阶段
此阶段时间为2022年5月-2022年8月,其间完成了蜂鸟效能平台体系的开辟、测试以及试点行上线预备工作,提交了蜂鸟效能平台体系测试陈诉、上线方案、体系设置等文档。
4.4试点行上线阶段
此阶段时间为2022年9月,其间完成了试点运行的环境,为推广实行提出了优化需求。
4.5推广实行阶段
此阶段起始时间为2022年10月,推广上线。
4.6功能迭代优化阶段
此阶段起始时间为2022年11月至今。
五、运营环境
基于DevOps头脑构建的蜂鸟效能平台上线以来,已经覆盖到多个业务线利用,颠末累计54万+次的CI/CD(连续集成/连续交付),如今平台在公司内部覆盖互联网全部项目,带来金融科技程度本领的极大提拔。在行业内,平台也得到多个奖项,并在行业多个期刊发表,得到了行业好评。
六、项目成效
6.1经济效益
(1)低落技能工具采购本钱
如今市面上的DevOps平台代价广泛在百万以上而且功能不美满,通过自研,为企业镌汰了直接采购本钱。
(2)进步研发服从,间接低落研发本钱
蜂鸟效能平台主动化CI/CD次数自上线以来镌汰了大量研发职员的时间本钱,团体应用交付服从提拔60%,对应的发布摆设服从提拔10倍以上。
(3)节省人力本钱投入
在传统企业举行IT架构转型,大概说转向微服务架构后,带来的一个关键题目就是微服务模块会越来越多,原来传统模式下摆设一个业务体系大概感觉不到大的工作量,但是实行微服务架构后一个业务体系大概已经被拆分为了10多个微服务模块,那么要摆设这些微服务模块,要预备应用服务器,要举行打包摆设工作量都会指数级增长。这就导致我们在举行模块构建,模块摆设,单位测试等工作的时间淹灭大量的人力。而蜂鸟效能平台本身就集成了连续交付和集成各种关键工具集,通过平台可以高效主动化的完成代码查抄,编译,构建,打包,摆设,环境迁徙等各类工作。极大的节省人力投入并提拔过程服从,而且在实行过程中可以做到完全可视,可管控。
6.2社会效益
(1)企业研发管理过程的标准化和规范化:
DevOps的实行可以或许帮忙企业举行研发管理过程的规范化和流程化,岂论是传统的研发过程管理模式,还是灵敏开辟思绪,都必要对研发过程举行标准化和流程化,再进一步的主动化。这内里涉及到最根本的开辟框架,开辟规范,设置管理,变动和缺陷管理,测试管理,版本发布等诸多关键过程域,而这些在我们举行DevOps支持平台实行的时间会帮忙企业举行这方面的优化和改进。
(2)企业客户群体更快享受到新产物特性:
企业的新功能更快的上线,利用户可以或许尽快享受到新功能带来的便利;美满的流程质量包管,镌汰了线上体系故障的数量,利用户得到了更好的利用体验。
七、履历总结
通过对蜂鸟效能平台的建立,实现了以下目标。
(1)创建连续交付流水线平台
蜂鸟效能平台打造端到端的DevOps连续交付流水线平台,使之具备较好的构造级本领。进步交付服从,镌汰职员投入,加快版本迭代频率。
在蜂鸟效能平台体系的建立过程中,创建了同一的上线审批流程,以及成品管理和维护流程。
(2)进步团队研发服从,加强协作本领
通过建立蜂鸟效能平台,研发效能流程/规范/实践内建/固化到DevOps平台,促进开辟、测试、运维更精密高效的协作。
更多金融科技案例和金融数据智能良好办理方案,请登录数字金融创新知识服务平台-金科创新社案例库、选型库查察。
我要评论