写点什么

金融级互联网产品持续交付的挑战与应对

  • 2019-08-29
  • 本文字数:4011 字

    阅读完需:约 13 分钟

金融级互联网产品持续交付的挑战与应对

小蚂蚁说:

在金融级互联网产品持续交付方面,蚂蚁金服积累了丰富的经验和最佳工程实践。在 2018 年 ATEC 技术探索大会上,蚂蚁金服解决方案架构师吕中邦(凤启)从行业背景出发,分析了金融级互联网产品持续交付的核心挑战,从“更快更早地交付价值”和“守住技术风险底线保障交付质量”两个维度分享了蚂蚁应对这些挑战的最佳工程实践做法,最后还介绍了蚂蚁研发效能平台支撑持续交付的实践经验。跟着小蚂蚁一起来学习吧~

一、行业背景与主要挑战

数字化转型的大背景下,企业需要打造多方面的核心能力,这些能力客观上要求企业升级或者采用新一代的技术架构。其中非常重要的一个环节就是基于云端的基础设施、分布式架构下的持续交付。谈到持续交付,很容易想到一些具体的挑战:比如如何缩短新业务产品的研发与投产时间,快速响应细分客户需求;如何应对分布式微服务架构带来的业务场景复杂和高并发挑战;如何通过技术手段推动自动化减少研发过程中的人工投入等等。


此外,我们还需要认真审视所处的行业,到底有怎样的特点。金融互联网产品最核心的两个关键词,第一个就是“金融”。金融属性最重要的是保障资金、安全、高可用,归结成一个字——“稳”;另外一个关键词“互联网”,最显著的特征就是快速交付价值,支持业务的快速创新,我们把这归结成另外一个字——“快”。不仅要快而且要稳,这就是金融互联网行业的基本特质,看似矛盾的两个方面,缺一不可。


谈到“稳”和“快”,蚂蚁金服做得怎么样呢?分享上财年的几个实际数据:线上服务可用率——100%;每天应用发布超过 150 次;迭代平均研发周期 5.8 天;测试自动化率超过了 80%;运维自动化率超过 98%。



基于数字化转型背景和行业的基本特征,我们认为金融互联网产品在持续交付领域最核心的挑战是:如何兼顾快和稳?既能够敏捷快速地交付价值,又可以稳妥创新、守住技术风险底线、持续满足监管合规的要求。

二、敏捷交付——如何更快更早地交付价值

本章节分四个部分展开,首先是精益研发流程定制和多样化分支与发布策略,主要解决我们的体系或流程如何适配不同业务场景,正确的路径和姿势是研发交付提效的基本前提。


其次是职能服务化、高效联调和问题诊断,这两个部分主要是阐述如何通过技术或自动化手段解放人肉、提高效率。


1. 精益研发流程定制

说到流程定制,很多人会问:我们依据什么来定制研发流程?在蚂蚁我们有一个比较有效的做法,那就是依据应用分级。应用分级主要考虑三方面的因素:依赖服务的调用量,日交易资金量,以及每日的 PV 和 UV。根据这三个方面我们定义了从 A1-C4 十二个不同的应用级别,然后为每个级别的应用设置基线的研发规则,在基线规则之上我们还支持各业务去自定义附加的风险管控措施。



举两个例子,一是按需配置流程。蚂蚁金服的业务非常复杂和多样,有些比较核心的业务系统稳定性要求非常高,相应配套的技术风险防控措施、测试验证环节就会比较完善;反之,一些新业务或内部服务系统会倾向于更快、更早地上线,流程相对来说会更轻量、更敏捷。二是可编排、可扩展的流水线,效能平台的组件中心定义了很多质量检测组件,其中包括第三方或业务自建的组件,通过平台的编排能力为不同的业务编排个性化的流水线模板。有些应用强制做代码评审,有些应用需要通过 CI 的自动化测试或某专项测试之后才能向下推进,类似的场景都可以通过流水线编排来实现。

2. 多样化分支和发布策略

关于分支模式和发布策略,蚂蚁主要有四种玩法。


首先是日常发布,我们把它比作一辆定期发车的火车,适用于全站的核心业务系统、应用之间关联性比较强的场景。


第二种是独立发布,我们把它比作一辆小汽车,想什么时候发车就什么时候发车,适用于独立业务域、应用间有一定耦合和关联的场景。


第三种是单应用发布,我们把它比作是一辆摩托车,适用于业务独立性更强、与其他业务在架构层面完全解耦的场景。前三种模式通常采用分支开发主干发布的模式。


最后一种紧急发布,我们把它比作救护车,适用于紧急业务需求或线上故障的解决,通常采用分支开发分支发布的模式。


通过这四种模式,蚂蚁所有的业务场景基本得到覆盖,各业务可以根据自己的需要找到匹配的玩法。


3. 职能服务化

介绍完了敏捷交付的姿势和路径,接下来看看自动化提效方面。


通常在一个研发迭代中,会涉及到很多职能部门,传统的做法是各职能团队基于经验复核进行人肉的风险管控。比如,当开发人员完成了编码、自测,就会有安全、风控等职能团队层层把关,基于经验进行审核,“部门墙”会严重影响协作和交付的效率。在蚂蚁,各职能团队的协作方式完全不同,他们不再直接参与到项目迭代中,承担迭代验证和审核这种重复机械的活动,而是转型为能力输出和自动化工具建设,实现职能服务化,从而对业务的开发测试团队进行赋能,这种模式大大提高了研发协作的效率。


4. 高效联调和问题诊断

金融互联网产品的业务场景非常复杂,搭建项目环境是是一个非常耗时耗力的事情。比如一个交易链路涉及 20 个应用,一般的做法是在研发迭代过程中给每个应用部署一遍,最后形成联调环境。蚂蚁的做法又会不同,首先我们搭建了一个共享的 STABLE 环境,在研发迭代中只需要针对有变更和修改的应用进行部署,然后通过 sofarouter 分组能力把所有 20 个应用关联在一起就形成了联调环境。这样做不仅大大提升了效率,还最大化利用了测试资源。此外,当代码发布上线之后,平台会自动更新 STABLE 环境保证其为最新代码。


如果在联调过程中发现问题,如何在如此复杂的链路中定位和诊断问题也非常重要。开发同学可通过 TraceID 或交易号查询链路图、时序图,直观全面地了解应用间的调用交互信息,再结合业务日志就可以非常容易地找到错误应用并定位问题根源。


三、稳妥创新——守住风险底线保障交付质量

本章节同样分四个部分来探讨,其中技术风险评估、质量内建、测试验证是按照开发的事前、事中、事后的逻辑来展开,最后向大家分享我们是如何守住安全底线、保障信息安全的。


1. 数据赋能技术风险评估

毫无疑问,开发事前的技术风险评估是非常重要的。蚂蚁的技术风险评估主要基于两大输入来做:第一是需求输入,第二是治理分析相关数据输入和赋能,后者对我们来说更为重要。开发同学可以非常便捷地获取应用依赖、服务调用、消息巡检、组件管控、代码检索等数据,全面准确地评估变更带来的技术风险,基于这些数据和分析,就轻而易举地确定风险应对策略,做到有效的闭环的反馈。


2. 内建质量实时闭环

开发的事中——内建质量与实时闭环反馈,帮助开发人员在第一时间把事情做对。在蚂蚁内部,我们鼓励基于 gitflow 的最佳实践,通过 MergeRequest 方式而不是 Push 方式向项目分支或主干提交代码, 给代码门禁、CI 检测一个机会。事实上 Pipeline 流水线的所有节点和组件都是可编排、可扩展的。在提交代码之后,每执行完一个组件,平台都会实时反馈结果,并自动更新迭代的质量数据,协助开发测试同学管控质量风险。



  1. 全环境和业务分层验证

  2. 开发的事后,也就是测试验证部分,我们分享两个点:第一是全环境验证,从开发》集成》预发》灰度一步步接近和模拟生产环境,确保生产发布没有问题。第二是业务分层验证,在每个环境,都有对应的测试手段。比如压测,很多公司都在做,但多基于线下环境进行,而蚂蚁会直接在生产环境里做压力测试,真正做到系统的高可用。



  1. 信息安全保证

  2. 稳妥交付的最后部分,在保障信息安全方面,蚂蚁有一套完整的体系:在需求设计评审阶段,架构师会评估业务风险;在开发阶段,首先 SOFA 框架自身的安全是有保障的,其次每次代码提交我们都有安全的自动扫描,此外还会有专项的安全测试;最后在系统上线之后,我们有专门针对安全的监控和应急机制。


四、研发效能平台 AntLinkE 支撑

前面我们不仅介绍了如何敏捷交付,还介绍了如何稳妥创新,接下来分享工具平台层面是如何支撑整个持续交付过程的。

1. 平台简介

蚂蚁研发效能平台所做的事情,主要归结为三个方面:


  • DevOps—一站式开发集成持续交付

  • DevMind—实时多维的数据分析赋能研发过程

  • DevServices—为研发者提供高效技术支持和咨询服务


2. 产品大图

下面是我们的产品大图,顶部是平台支撑的业务和交付的价值,底部 DevOps、DevMind、DevServices 三方面的主要能力,今天我们重点来介绍一下中间的产品层。


首先是持续交付,从创建迭代开始,到发布上线结束,为整个研发生命周期提供支撑。下面是配套的子产品:研发协作管理项目、迭代和需求;代码服务提供代码托管、代码搜索、CR 等能力;IDE 是蚂蚁比较有特色的产品,可以帮助开发人员第一时间做代码扫描,还与效能平台的 Web 端做了整合和集成打通,开发人员不用频繁切换工作台来开展开发工作;测试服务支持测试管理、自动化测试;问题诊断依赖分布式链路和业务日志快速定位和解决问题。最下面是研发洞察,在研发过程中,无论是 IDE 端还是研发效能平台的 Web 端,都会沉淀大量数据,这些数据是非常宝贵有价值的资产,我们通过对这些数据进行采集、统计、分析来驱动整个研发体系和组织的持续优化和升级。


3. 一站式持续交付解决方案

一站式持续交付解决方案如图所示。中间部分是研发效能平台,提供了从需求到发布的持续交付引擎,将所有相关的能力和工具串接在一起;底部是应用 PAAS 平台,效能平台通过 openAPI 与之交互,打通环境管理和环境部署等功能;右侧是分布式中间件,研发效能平台通过研发容器,统一管理多环境的中间件配置,既实现环境间的隔离,又实现了环境间的自动转换和同步;此外研发效能平台与技术风险防控平台打通,把技术风险防控的措施落实在研发过程中;此外,蚂蚁研发效能平台先天具备开放集成能力,可以通过组件的方式对接企业自有的工具平台,最大化发挥既有资产的价值。


五、结语

无论对内部还是外部,蚂蚁研发效能平台一直秉承并将继续追求这样一个初心——提升研发者幸福感,提高企业创新效率,让我们一起重新定义研发!


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/TaJlu8_rLzgqrOFq7BiyNQ


2019-08-29 18:571245
用户头像

发布了 150 篇内容, 共 31.9 次阅读, 收获喜欢 37 次。

关注

评论

发布
暂无评论
发现更多内容

FxFactory 8 Pro:打造专业视觉效果的利器

Rose

视频特效插件 FxFactory 8 pro

beyondcompare4永久激活密钥 及Beyond Compare 4破解方法

Rose

mac软件下载 文件同步对比工具 Beyond Compare 4 注册版 Beyond Compare密钥

32 | 字符串匹配基础(上):如何借助哈希算法实现高效字符串匹配

鲁米

Waves 14混音效果全套插件 附Waves mac破解补丁

Rose

Waves 14破解教程 Waves 14 最新版 Waves 14 Complete破解 后期混音

宣布全面推出适用于 macOS 的 Amazon EC2 M2 Pro Mac 实例

亚马逊云科技 (Amazon Web Services)

Amazon EC2 ELB ebs Amazon VPC Nitro 第五代系统

Navicat Premium 15永久激活教程 Mac/win 数据库管理软件

Rose

数据库管理工具 Navicat Premium破解版 Navicat Premium 15中文版 Navicat 数据库下载

Windows、Linux 和 Mac:操作系统之间的比较

小魏写代码

高效图像压缩器 4K Image Compressor Pro激活中文版

胖墩儿不胖y

压缩图片 图片压缩器 图片管理工具

软件测试/人工智能丨利用人工智能 ChatGPT 自动进行测试需求分析

测试人

人工智能 软件测试

人工智能 | 测试工程师如何突破职业瓶颈?

测吧(北京)科技有限公司

测试

人工智能 | 什么是字符串?

测吧(北京)科技有限公司

测试

AlDente Pro激活码 v1.24 Macbook充电限制软件

Rose

AlDente Pro破解版 AlDente 激活码 Macbook充电限制软件

4K Image Compressor Pro fo mac(高效图像压缩器) 1.2.0永久激活版

mac

苹果mac Windows软件 图片压缩软件 4K Image Compressor Pro

33 | 字符串匹配基础(中 ,下):如何实现文本编辑器中的查找功能

鲁米

概念回顾:QUIC 和 HTTP/3

NGINX开源社区

TLS udp 数据流 QUIC HTTP/3

软件测试/测试开发丨人工智能在软件测试领域的成就

测试人

人工智能 软件测试

把大模型当CPU,前阿里云首席安全科学家创业项目曝光

Openlab_cosmoplat

Axure RP 10中文授权版下载

Rose

原型设计 Axure RP 10 汉化版 Axure RP 10 下载 Axure RP 10授权

如何在 Parallels Desktop for Mac 中备份、恢复或转移 Windows 虚拟机

Rose

Mac虚拟机下载 Parallels Desktop 19 Pd虚拟机破解版下载 Parallels 永久密钥

【亲测有效】Sketch for mac v99.1中文一键安装破解版

Rose

mac软件下载 矢量绘图设计 Sketch 99 Sketch中文破解

解码大语言模型奥秘:《大规模语言模型:从理论到实践》震撼上市!

博文视点Broadview

长安汽车金融:借助一体化智能可观测平台 Bonree ONE,提升智能告警收敛能力

博睿数据

NFTScan 获得比特丛林 (BitJungle) 公司战略投资

NFT Research

NFT NFTScan

GTD任务管理器:Chaos Control 免激活最新版

mac大玩家j

Mac软件 任务管理器

开发案例:使用canvas实现图表系列之折线图

HarmonyOS开发者

HarmonyOS

人工智能 | 如何利用ChatGPT自动生成测试用例思维导图

测吧(北京)科技有限公司

测试

达芬奇DaVinci Resolve Studio 18:视频后期处理的全能神器

Rose

达芬奇18破解版 DaVinci Resolve Studio 达芬奇调色软件 DaVinci18密钥

聊点写作配图那点破事儿

6点无痛早起学习的和尚

写作 21 天技术人写作行动营

sublime text 中文破解版 附sublimetext注册码 Mac/win 文本代码编辑器

Rose

代码编辑器 mac软件下载 Sublime Text 4 破解版 Sublime Text注册码

拆解全景,解锁未来——深度分析大模型六大领域及五大应用解决方案

SEAL安全

人工智能 AI LLM LLM模型

人工智能/自动化办公/自动化测试 | Python全栈开发班开始报名啦!

测吧(北京)科技有限公司

测试

金融级互联网产品持续交付的挑战与应对_文化 & 方法_Geek_cb7643_InfoQ精选文章