含ppt下载|支付宝是怎么炼成的?蚂蚁金融级研发效能实践解析

蚂蚁金服开展的“共战‘疫情’,技术破局”数字课堂线上直播近期火热上线。咱们将系列演讲整理并发布在 “蚂蚁金服科技” 微信公众号上,欢迎关注。 

今天的整理来自SOFA-LinkE研发效能平台的吕中邦,为你们分享蚂蚁金融级研发效能实践解析,如下为演讲整理全文:安全

你们好,我是来自蚂蚁金服研发效能部的解决方案架构师吕中邦,很高兴今天和你们作交流分享。最近SOFAStack在阿里云商业化发布,借着这股东风今天给你们带来研发效能相关的内容,题目叫作《蚂蚁金融级研发效能实践解析》,介绍如何基于 SOFAStack研发效能平台来开展持续交付和稳妥创新兼顾的持续交付、风险防控及质量保障的最佳实践,来赋能金融产品高可用和研发效能的持续提高。微信

今天的分享分四个部分,首先咱们看看行业的当前背景和主要挑战,而后分享蚂蚁金服在研发效能领域的最佳实践,最后介绍支撑这些最佳实践落地的平台产品,以及咱们提供的在研发效能领域的解决方案。网络

背景与挑战

进入第一部分,简单介绍一下蚂蚁如今的业务现状,首先看到的是你们熟知的业务,好比说花呗,借呗、芝麻分这些东西。下面是支撑这些业务的实践能力,好比说包括风控、反套现、精算这些。看到这个场景,你们很容易就知道蚂蚁是作金融的,不只是作金融并且是互联网金融。提到互联网金融,具体到研发效能领域,咱们把它归结到两个关键词:一方面须要保障资金、安全、高可用,咱们把第一个关键词定义成“稳”,稳妥的稳;另一个方面互联网是一个VUCA的时代,最直接的要求就是速度,快速的交付产品价值,支持业务的快速创新,咱们把第二个关键词定义成“快”,快速的快。不只要稳,并且要快,看似矛盾的两个方面缺一不可。架构

基于这样的业务形态,蚂蚁在研发效能领域作的怎么样,几个数据报告给你们。首先,咱们有近万名研发工程师,应用系统的规模有数千个,天天提交的代码行有数百万级,天天有200屡次的应用发布,代码从提交到发布的平均周期6.2天,线上服务的可用率达到了99.99%,全部这一切都是基于SOFAStack研发效能平台LinkE来来支撑和实现的。并发

看完蚂蚁,咱们再看看整个金融行业,金融行业作研发效能和DevOps,有哪些共同的挑战?咱们总结下来四个方面:框架

第一,管理者认知方面的挑战。不少中小机构的管理者,对研发效能的认知是严重不足的,不会把这些东西归入到紧急重要的日程事项中去。因此说就须要在乎识上给他们作破冰。运维

第二,团队协做,典型的重业务、轻it,业务主导性特别强。需求就一句话,随意变动,这都是常态。而后研发运维各自为政,彼此之间的协做多基于文档,总体沟通和协做的效率是很是低下的。分布式

第三,技术人员的能力良莠不齐,致使交付质量千差万别。包括技术栈各类各样、外包难于管理,全部这些东西都影响交付的质量和效率。工具

第四,就是体系规范和工具方面,整个IT的基础管理规范和标准文件都比较老比较重,执行依赖于人肉,落地就比较困难,更不用提数据积累了,总体缺乏自动化方面的全局的建设,整个DevOps工具链是比较初级的。学习

那么要解决这些咱们刚才提到的内部和外部的挑战和问题,蚂蚁金服也给出了本身的一些解法和答案,赋能伙伴最终实现又快又稳的持续交付。微观上,咱们但愿咱们的方案可以尽可能自动化减小人肉,提高研发同窗的幸福感,让研发过程丝般顺滑。宏观上能够提高团队的研发,持续交付的效能,进而赋能企业去升级组织效能。其中,最重要的仍是把咱们蚂蚁金服这么多年在这个领域积累下来的经验和最佳实践,对外提供赋能使其价值。

研发效能实践

接下来咱们就分享蚂蚁在研发效能领域里具体的实践,咱们将按照软件生命周期的逻辑来进行讲解。

需求项管

通过不断的实践,蚂蚁金服本身也沉淀出了一套敏捷研发实践的框架。第一个就是文化引领,面向一线的研发团队进行敏捷文化的培训,让团队成员可以理解敏捷的基本理念和指导思想。第二个是实践落地方面,是一个逐步演化的过程,团队范畴到项目范畴,以价值交付为最终目标,而后经过不断的迭代,实现持续集成、持续交付。在整个过程里边又不断的去收集数据,作统计分析,创建数据模型,从而造成适合团队及项目的可视化的度量指标,持续的反馈到这个项目的迭代中去, 从而造成统一的节奏、统一的心跳,缩短和消除项目组内不一样团队间的等待和浪费。在不断的实践过程当中,蚂蚁也沉淀了大量的最佳案例、最佳实践,能够逐步的对外输出,来帮助到伙伴和客户。

刚刚谈的是偏方法论的,具体到敏捷项目管理的实践。首先看看在蚂蚁项目是如何组织的,在咱们内部按照项目的规模咱们有不一样的叫法,好比说战役、战场这些概念,但不管是怎么样的规模,都涉及到三个核心的角色:PD产品经理、PM项目经理、技术架构师,咱们叫作项目的三驾马车,全部工做都围绕这三个关键角色来展开。在项目的执行过程当中,咱们引入了SCRUM一些管理实践,需求和迭代的进展经过电子看板可以清晰的展现出来,使得敏捷所倡导的原则和理念可以获得比较好的落地。

这里边咱们分享三点:

第一,敏捷是贯穿软件研发全生命周期的。敏捷不是说越重越好,适合的才是好的,咱们称之为轻量级的敏捷实践。

第二,平台覆盖项目协做的所有领域,项目集、工做项、冲刺、里程碑、风险这些领域都能实现很好的管理。

第三,利用高效灵活的可视化看板,来提升整个项目的透明度,从而激发整个团队及组织的热情和文化。

咱们经过平台也固化了一套比较有特点的迭代研发的模型。它经过发布、迭代、应用、流水线四层模型对研发过程进行有效的管控:

流水线维度,咱们具有PUSH、MR、手动等多种触发模式;流水线的全部的组件和节点,可编排、可扩展。而后应用层面,咱们的全部研发活动都是按应用去组织和推动的,包括质量的门禁和阶段的卡点,都是应用维度进行管控。在一个研发迭代中咱们能够管理多个应用,一个发布窗口又能够管理和发布多个迭代,从而实现从微观到宏观,多个维度的、立体的项目协做和管控。

持续集成

那么接下来是持续集成环节,首先给你们介绍的是统一的应用元数据管理。在蚂蚁咱们有5000多应用,规模很是之大,并且支撑的业务也各不相同。咱们给应用作了分级定义,主要是从服务依赖、交易/资金量以及天天的PV UV这些维度对应用进行分级,并在平台中进行统一管理。第一个好处,全部的应用以及架构一盘棋,组织层面可看到全貌,为整个架构的规划以及架构的治理,提供比较好的输入以及基础;第二个好处,每一个架构域每一个应用的技术负责人、质量负责人、运维负责人等角色一清二楚,有利于在项目中进行协做;第三个好处是应用的属性,经过应用分级和应用属性,为精益研发流程定制提供依据,作到研发流程的千人千面,每一个应用均可以定制本身的个性化的研发流程。

除了应用原数据的统一管理,咱们还提到配置统一管理,这里边配置就包括环境的配置、中间件的配置、CI配置、技术栈软件配置等。蚂蚁研发效能平台能够按照不一样的环境,对全部的配置项进行集中管理,在研发迭代推动的过程里边,还能够实现配置项在不一样环境间的自动转化和生效,这样就避免了研发同窗频繁访问配置项控制台进行人肉配置,提效的同时避免人肉错误。

接下来介绍代码质量内建,其实代码质量在整个研发过程里边是很是关键的一环,咱们鼓励第一时间就把代码写好写正确,或者在第一时间就发现和修复错误。

首先咱们看代码的质量标准。事实上在蚂蚁的研发效能平台上边作开发,质量标准是能够按照这种应用维度去作配置的。每一个应用均可以根据应用的分级、业务须要去配置不一样质量标准。在质量标准里边,咱们沉淀的一套成熟的质量分模型,将代码扫描、单元/接口自动化的经过率覆盖率,还有一些其余的质量指标,归入质量分统一管控,进而能够比较直观地评价一个应用当前的质量状况。

其次是代码扫描,阿里的 Java开发规约你们都耳熟能详,在这个基础之上,蚂蚁也沉淀了一些本身的开发规约,强强互补,经过IDE以及Pipeline两个端去执行,确保第一时间能快速的发现问题和解决问题。

而后是代码评审,代码评审是整个开发过程里边很是有价值的工做,他不只可以帮助咱们提升代码质量,并且对整个团队人员的学习培养,团队建设都很是有帮助。在蚂蚁的研发效能平台里边,咱们的功能也是很是有特点,实现了与Pipeline流水线有效集成的可多人协做的高效代码评审。

接下来是自动化白盒测试。这边指的就是单元自动化和接口自动化。外部客户交流中发现,不少中小企业因为研发或者测试团队的能力限制,不可以高效的去准备自动化测试脚本,因此咱们也提供了一个测试脚本的辅助生成工具。测试脚本能够经过效能平台的流水线自动触发执行和收集测试结果。每次执行完流水线以后,都会实时更新应用的质量数据。质量若是不达标的状况下推动迭代,咱们还有配套的质量加签的审批流程,上述全是围绕着代码质量所进行的实践。

接下来咱们给你们介绍咱们的Pipeline流水线,如下是平台运营的实际截图。截图上边开发阶段、集成阶段、预发阶段、发布阶段,咱们叫它迭代模板,这些迭代模板都是能够按需进行定制的。在蚂蚁咱们鼓励基于GitFlow的最佳实践,经过MR而不是PUSH的方式,向项目分支和主干提交代码,这样的话给代码门禁和流水线检测提供一个机会。事实上咱们流水线的Pipeline的全部节点和组件都是可编排的、可扩展的。可扩展的意思是说,业务能够根据本身的须要,把本身自建的一些测试工具、质量工具,封装成标准组件,接入到整个Pipeline流水线中来。这样的话每执行完一个组件平台都会实时的反馈结果,并更新迭代的应用的质量看板,帮助开发测试同窗来管理质量风险。

在流水线的执行过程当中和研发推动过程里边会产生大量的日志,为了帮助同窗们快速的经过日志来定位到问题,节约同窗们在定位解决问题上的时间成本,咱们针对性的开发了日志诊断服务系统,为用户提供一个统一的日志查看界面,减小没必要要的信息的干扰。同时咱们经过这些异常问题的知识库,对常见的一些问题提供精准的定位和解决方案的推荐,提升开发同窗的研发效率。

当每一个流水线组建执行以后,那么应用的质量看板会实时的更新,这里边咱们也作了一个截图,好比说质量分, PMD安全问题,还包括测试的经过率、覆盖率,除此以外,咱们还提供一些代码行接口、注释率、重复度等基本的统计信息。每次代码变动,咱们都可以看到整个质量分,包括质量数据的更新变化状况,作一个很好的追溯。

此外咱们还提供流程审批的能力,在实际的项目研发过程里边,咱们鼓励自动化,但不少时候必要的人肉介入又不可避免。好比说技术风险评估、发布、评审这些场景,就须要专家介入去评估一些风险。因此灵活可配置的这种流程审批就很是有用了。

持续部署

接下来咱们介绍持续部署,其实部署这边主要分两块,首先是线下环境的自动部署,咱们平台经过和 SOFAStack的运维管理相关模块的无缝集成,提供了自动部署的能力。它也是以流水线组件的方式执行,须要查看详情就直接跳转都可以看到整个部署的日志以及结果。

而后是一键提交生产发布。对于金融机构来说的话,监管对线上和线下隔离这一块有明确的要求,因此线下咱们支持自动部署,线上的话咱们提供这种一键提交生产发布的能力,自动推送发布单并同步查询发布单的状态,这样有发布权限的同窗就能够登陆到生产环境去执行发布了。在这个过程里边,咱们经过网络白名单、open API接口级别的权限控制这些技术手段,来确保线上和线下是真正有效隔离的。

接下来分享一下发布策略,这里边提到一个概念变动三板斧,这个也是咱们蚂蚁内部技术风险条例的核心思想,全部的应用研发的底线要求。变动三板斧大概三个方面,一个叫可灰度,要求应用发布过程确保变动的影响程度,影响面是可控的,又能够快速地应急,具体策略包括灰度,分组,Beta,蓝绿这些。第二个叫作可监控。在应用上线以前要进行日志的埋点,监控的配置不只要有,并且须要确保监控的准确性,直观性,进而保证整个变动的过程都是可监控的。第三个叫可应急,随时暂停回滚,任何变动都有据可查。其实针对变动三板斧,容器应用服务上面有很好的实践,好比说包括分组的灰度发布、无损升级,可适配多种设计工做负载,这些可以很好的贯彻变动三板斧的思想。

测试验证

接下来进入测试验证部分,首先是分层测试的能力,咱们主要谈两个方面。首先就是测试环境、环境策略,从开发到集成、预发、灰度,咱们的环境一步步的去接近和模拟生产环境,确保生产发布最后是没有问题的。其次就是分层自动化测试验证能力,咱们将单元自动化、接口自动化,结合研发效能平台,灵活的经过Pipeline流水线的组件去执行,统一赋能给全蚂蚁的研发团队。

针对外部不少机构在自动化测试脚本的编码方面有很大的能力和效率上的痛点,咱们提供了测试脚本辅助生成的ACTS测试框架。基于数据模型驱动测试引擎执行,适配TestNG+Spring的测试上下文环境,以yaml为数据载体,实现了这种一站式的编辑、精细化的校验和高效的用例管理,可以有效的提高这种测试脚本的效率。

前面提的,不管是单元自动化仍是接口自动化,都是应用及系统级别的测试。那么端到端的话通常都更带有业务属性,全链路的测试。蚂蚁通过这么多年在分布式架构工程测试领域的积累,沉淀了这种根据业务场景自适应加载测试流程,动态编排,精细化校验的金融级的端到端的测试能力,它又轻量又标准,帮助研发测试团队提高业务测试效率和质量保障能力。

产品支撑

在蚂蚁金服开展这么多的研发效能的工程实践,那么咱们的平台是如何来支撑的?首先是 SOFAStack-LinkE的公共云的产品大图,上面是支撑的业务以及交付的价值,咱们重点介绍中间产品层,目前咱们提供了两个组件,一个是项目协做,主要就是包括需求、项目、冲刺和工做项的管理。而后第二个组件就是持续交付,从编码到测试、到部署、到发布,整个端到端的支撑,下边有配套的代码服务,持续集成、持续部署、测试服务的这些组件。

那么,咱们把SOFA-LinkE的产品能力作一个总结,大致七个方面:项目协做、代码服务、持续交付、代码分析、测试服务、流程审批、环境管理。

SOFA-LinkE研发效能平台,主要输出这四块的产品价值:

就平台产品特点而言,主要体如今三个方面:可扩展、可编排、多样化。可扩展主要指的是Pipline流水线的组件是支持自定义的;可编排体如今研发迭代流程及流水线,可根据业务须要对其进行配置;多样化支撑多种分支策略,多种技术栈,经典与云原生架构的双模支持。

在多样化的分支发布策略方面,咱们内部大概有是这四种玩法,一种叫平常发布,其实就是全站的窗口发布,主要适用于全站的这种核心链路上的业务应用,之间有必定的关联和耦合,每周发布一次。事实上如今咱们平常发布已经消除了。第二个叫独立发布,主要场景在独立业务域里应用之间有必定的耦合度,可是更多的是为了管控的须要,把一些应用集中放在一个窗口去发。第三个叫单应用发布,相关应用业务独立性强、架构层面彻底解耦,单应用想怎么走就怎么走,想何时发就何时发。前三种都是咱们标准的分支策略叫分支开发主干。第四种是紧急发布,主要是为了响应紧急业务需求或者是修复线上的故障,一般是分支开发分支发布的模式。那么经过这四种模式,蚂蚁全部的业务场景基本上都能知足,你想怎么玩都可以覆盖到。

接下来咱们谈到云原生,随着蚂蚁金服对云原生理念的理解愈来愈深,咱们相信将来的金融级应用场景都会往这种极致的弹性和混合云方向去发展。因此咱们的架构也一直在不断的演进,去拥抱云原生。向云原生新型技术转变的过程里边,不一样场景的应用很难一步到位,因此为了知足这种业务的须要,咱们同步的去支持经典的研发模式以及云原生的研发模式。在云原生的改造中,老业务、新老业务并存过渡,经过统一的研发平台,同时支持基于虚拟机和容器的双模持续交付,助力于整个架构的稳妥的演进和迁移。

金融行业自己受到严格的监管,蚂蚁在知足监管以及行业规范的领域里也积累了一套作法,并在咱们的研发效能平台上将这些经验进行了沉淀。经过有效的技术手段去知足监管合规的要求,造成了金融级的技术风险的防控手段,把它内化到研发项目平台里面去了,可以帮助我们企业在数字化转型的背景下边实现这种稳妥的创新。

解决方案

接下来是最后的解决方案部分,作研发效能其实仍是要想实现整个DevOps跨职能的全流程协同,不一样的职能团队可以高效地协同在一块儿,特别是开发、测试和运维。

介绍一下蚂蚁一站式研发效能解决方案。下图中间部分属于蚂蚁研发效能平台的范围,提供从需求到发布的整个持续交付的引擎,将整个DevOps的工程能力集成串接在一块儿,具体能力前面都有提到。大图底部是应用PaaS平台,就是我们SOFAStack运维管理相关的组件,效能平台经过open API和它交互,打通整个环境管理和环境部署这些功能,也实现了经典发布部署和容器应用服务的双模支持。大图右侧是对蚂蚁智能科技其余产品的集成和支持,经过研发容器统一管理多环境的中间件配置,实现环境的隔离,迭代推动过程当中不一样环境之间的自动同步和生效。另外咱们支持技术风险防控平台以及端到端测试等产品的集成和联动。蚂蚁研发的平台自己具有开放集成能力,因此能够经过自定义组件的方式来对接其余平台的能力以及业务自建的一些资产,好比说质量测试等工具,最终实现一站式的智能研发平台的方案。

那么咱们能够提供哪些软性的服务,下图展现了咨询及其具体领域,而后咱们能够和客户一块儿来针对痛点创建研发规范,咱们还提供沙盘帮助用户快速的在实际项目里边去演练整套的规范以及平台工具。

最后给你们介绍的是整个DevOps转型的一个路径,大概分这几个阶段: 第一个阶段就是咨询诊断阶段,出具DevOps的实施方案以及落地规划,包括平台的搭建。第二个阶段就是培训赋能,这里边就包括理念的培训,产品的培训,要创建统一的体系和流程规范。第三个咱们提供沙盘演练,让项目组的同窗真正的了解敏捷、流水线和自动化,经过在项目里试运行,为企业内部研发效能团队赋能,培养带头人。第四制定落地的目标和规划,配合企业按照业务或者按照产品线去落地实施,经过平常监控以及数据的分析,可以持续的去解决痛点,去推进效能的持续提高。

以上就是我今天分享的所有内容了,但愿对你们有所帮助,也但愿你们去关注咱们已经商业化的SOFAStack产品,特别是LinkE研发效能相关的组件。

谢谢你们。若是有问题咱们能够线下持续去探讨。

PPT下载:https://files.alicdn.com/tpsservice/40789250794061809d0be97ab36f9132.pdf

相关文章
相关标签/搜索