蚂蚁金融科技-研发效能平台2.0.0-技术白皮书
如果无法正常显示,请先停止浏览器的去广告插件。
1. 研发效能平台技术白皮书
2.0.0 版本
文档版本:V20191022
蚂蚁金服金融科技文档
2. 蚂蚁金服金融科技版权所有 © 2019,并保留一切权利。
未经蚂蚁金服金融科技事先书面许可,任何单位、公司或个人不得擅自摘抄、翻译、复制本文档内容
的部分或全部,不得以任何方式或途径进行传播和宣传。
商标声明
及其他蚂蚁金服金融科技服务相关的商标均为蚂蚁金服所有。
本文档涉及的第三方的注册商标,依法由权利人所有。
免责声明
由于产品版本升级、调整或其他原因,本文档内容有可能变更。蚂蚁金服金融科技保留在没有任何通
知或者提示下对本文档的内容进行修改的权利,并在蚂蚁金服金融科技授权通道中不时发布更新后的
用户文档。您应当实时关注用户文档的版本变更并通过蚂蚁金服金融科技授权渠道下载、获取最新版
的用户文档。如因文档使用不当造成的直接或间接损失,本公司不承担任何责任。
3. 目 录
1 什么是 LinkE? ................................................................. 1
1.1 产品背景 ............................................................................................................................... 1
1.2 发展现状 ............................................................................................................................... 1
1.3 面临的问题及关键挑战 ....................................................................................................... 1
2 产品优势 ............................................................................ 3
3 产品架构 ............................................................................ 5
3.1 系统架构 ............................................................................................................................... 5
3.2 安全架构 ............................................................................................................................... 6
3.3 网络架构 ............................................................................................................................... 8
4 性能指标 ............................................................................ 9
5 功能原理 .......................................................................... 10
5.1 项目协作 ............................................................................................................................. 10
5.2 代码服务 ............................................................................................................................. 12
5.3 持续交付 ............................................................................................................................. 15
5.4 代码分析 ............................................................................................................................. 20
5.5 智能 IDE 插件 ..................................................................................................................... 21
5.6 测试服务 ............................................................................................................................. 21
5.7 流程审批 ............................................................................................................................. 22
5.8 环境管理 ............................................................................................................................. 23
5.9 研发洞察 ............................................................................................................................. 24
I
4. 6 附录:基础术语 ............................................................... 25
II
5. 什么是 LinkE?
1 什么是 LinkE?
源于蚂蚁金服互联网金融领域研发背景和工程实践的深厚沉淀,为行业数字化转型客户提供金融
级一站式智能研发平台,提供敏捷交付和稳妥创新兼顾的研发交付、风险防控和质量保障等能
力,赋能金融产品高可用和研发效能的持续提升。
1.1 产品背景
使命:给工程师提供一套“丝般顺滑”的研发平台,提升开发者幸福感,提高企业创新效率。
LinkE = Link Engine 驱动研发容器正常运转的工作引擎。
LinkE = Link Everything & Everyone,通过对接不同类型平台和服务 ( Everything ),能够适
配不同角色的多样化研发场景和需求 ( Everyone )
1.2 发展现状
研发效能平台 LinkE 封装了持续交付、智能 IDE、代码托管、配置变更、流程中心、项目协作、
测试服务、洞察分析等众多性能优异的功能模块,兼具开放可扩展、灵活可配置等属性,快速适
配客户不同业务场景,覆盖软件研发的各个阶段。
1.3 面临的问题及关键挑战
数字化转型的大背景下,企业需要打造多方面的核心能力,这些能力客观上要求企业升级或者采
用新一代的技术架构。其中非常重要的一个环节就是基于云端的基础设施、分布式架构下的持续
交付和 DevOps 能力。在此背景下的持续交付需要克服诸多挑战:如何缩短新业务产品的研发与
第 1 页/共 26 页
6. 什么是 LinkE?
投产时间,快速响应细分客户需求;如何应对分布式微服务架构带来的业务场景复杂和高并发挑
战;如何通过技术手段推动自动化减少研发过程中的人工投入等等。
具体到金融行业数字化转型,需要结合行业特性,金融互联网产品有两个最核心的关键词。第一
个就是“金融”,金融属性最重要的是保障资金、安全、高可用,核心诉求之一就是“稳”;另外
一个关键词“互联网”,最显著的特征就是快速交付价值,支持业务的快速创新,归结成另外一
个核心诉求“快”。
如何兼顾快和稳?既能够敏捷快速地交付价值,又可以稳妥创新、守住技术风险底线、持续满足
监管合规的要求,这是数字化转型大背景下实现 DevOps 及持续交付转型的核心挑战。
LinkE 源于蚂蚁在金融领域的长期积累和实践,提供金融级、持续交付和稳妥创新兼顾的一站式
智能研发平台,帮助企业解决以下研发痛点:
研发工具集成度低
自动化程度低
传统研发模式无法支撑业务快速创新
依赖人肉的风险防控和质量体系
第 2 页/共 26 页
7. 产品优势
2 产品优势
相较于业界其他的研发效能及 DevOps 商业化或开源产品,研发效能平台 LinkE 可为客户输出
的价值远超出产品能力本身,具体体现在以下核心竞争优势。
源于蚂蚁金服研发领域最佳实践,研发效能平台 LinkE 还具有以下优势。
安全稳定:LinkE 基于蚂蚁金融云架构,使用高可用、可动态扩展的服务框架体系,构建稳
定的分布式代码托管服务,实现多中心、去存储、可靠的运维监控及全面的自动化质量保
证,保障研发流程的顺畅。
智能研发体系:LinkE 集成多种工具平台,既能让用户感受编写代码的极速与代码运行的稳
定,又能提供对代码的实时监控和问题智能分析,帮助研发团队全方位立体式的进行代码透
析,提前规避研发风险。
多样化管理:LinkE 具备灵活弹性的可配置能力,能够根据企业的多种业务特征,提供适用
于不同企业诉求的多样化研发流程和质量管控。核心应用需要稳定可靠,上层业务需要敏捷
上线抢占先机,快速适配多样化业务场景,稳妥创新和敏捷交付各取所需。
热拔插组件:可编排引擎,轻松支持插入定制化的持续集成(Continuous Integration,简
称 CI)和持续交付(Continuous Delivery,简称 CD)组件,基于可配置的规则,适应研
第 3 页/共 26 页
8. 产品优势
发节点上下文,自动化推进流程的检测流水线(Inspection Pipeline)。
一站式服务:LinkE 提供端到端的工具服务,覆盖研发全生命周期,平台功能更加全面,极
大地简化应用的部署、发布流程,轻松实现应用快速上云,让产品开发变得更加简单。
第 4 页/共 26 页
9. 产品架构
3 产品架构
研发效能平台基于蚂蚁金融级 SOFA 技术框架,具有以下特点
使用方便:基于 CloudEngine 分布式应用容器,天然集成蚂蚁中间件,简单配置即可使
用 Msgbroker、RPC、ZDAL 等组件功能。
模块化开发:支持模块化开发,应用中的每一个模块都含有独立的 Spring 上下文,模块
之间的调用通过本地服务的方式来完成。
健康检查:提供了一套可扩展的健康检查机制,可以帮助确定应用启动完毕后是否健康,是
否可以对外提供服务。
3.1 系统架构
应用架构设计采用模块化、松耦合设计原则,系统各个功能采用模块化集成,实现新的业务
模块能够增加新的业务功能,实现系统各功能模块相互之间的有效集成;
采用开放式系统架构和统一技术平台,开发和部署方案不依赖于操作系统、中间件和数据
库,具备开放性、通用性、标准性和安全性的特点,满足稳定、灵活、可扩展的要求,提升
开发效率和质量;
具备统一的系统日志管理,可以收集、分类、检索和分析日志文件和内容,便于问题定位和
第 5 页/共 26 页
10. 产品架构
运维管理;
系统具备完备的容错能力,能够保持高效、可靠的运行能力,正确监控、预警、捕获、分析
和处理各类异常或故障,具备适用的系统服务启停机制,具备合理的冲正或重发机制,保证
账务数据的一致性;
提供稳定高效的批量数据处理机制,支持联机交易处理与批量处理的有效分离,保证批量业
务处理过程中联机业务的正常执行;
3.2 安全架构
蚂蚁金融科技面向对业务安全性、可靠性、监管合规等有严格要求的金融行业,熟知金融行业安
全性要求,产品在设计之初就极为重视安全性。蚂蚁金融科技金融云采用独立的机房集群,满足
一行三会金融监管要求;提供特高等级安全防护,支持两地三中心灾备。其产品与服务在网络控
制、访问控制上管理非常为严格。
研发效能平台 LinkE 基于蚂蚁金融科技金融云 PAAS 和 SOFA 技术框架,在蚂蚁金服内部长
期支撑网商银行、支付宝等业务场景的软件开发交付过程。
蚂蚁金融科技金融云 PAAS 层所有产品依赖 IAM 组件提供用户身份、认证和访问等方面的
安全管理,现服务与公有云和专有云等多种场景,满足金融行业权限控制和安全风险防控要
求。研发效能平台 LinkE 沿用 PAAS 层 IAM 提供的用户体系,为客户提供了灵活的权限控
制管理服务,空间管理员可以在 管理控制台 中管理成员、成员组以及服务账号,并根据角
色自定义各成员的操作权限。
第 6 页/共 26 页
11. 产品架构
研发效能平台 LinkE 主要提供三种服务涉及用户资源,多租户场景下均有配套的安全策略
1. 代码存储:成熟逻辑隔离,不同租户的代码,存储在服务器的不同目录。
2. CI 集群:不同租户的 CI 执行会被分配到不同过的 ESC 上,并且使用容器执行,执行完
成后及时销毁。同一台 ECS 同时只会执行一个租户的 CI。
3. 构建集群:同步租户的构建任务会被分配到不同的 ECS 上执行,并且使用容器执行,执
行完成后及时销毁。同一台 ECS 同时只会执行一个租户的构建任务。
第 7 页/共 26 页
12. 产品架构
3.3 网络架构
依托蚂蚁金融科技金融云的基础设施和金融级 PAAS 产品,研发效能平台 LinkE 全面继承其安全
控制、数据备份和恢复、容灾等能力,实行高可用、高可靠性、高性能。各组件都采用集群架
构,提供了弹性伸缩功能,用户可以根据自己的实际情况后期去增加或减少实例,保证了系统的
可用性同时也具备了高性能,当单一节点出现故障系统正常使用;由于采用共享存储的机制,不
存在应用故障而丢失数据的可能性。
第 8 页/共 26 页
13. 性能指标
4 性能指标
研发效能平台 LinkE 执行 CI 任务的性能受用户提供的 CI 集群机器规格和数量影响;
研发效能平台 LinkE 执行构建任务的性能受用户提供的构建集群机器规格和数量的影响;
除此之外,无其他方面的性能限制和瓶颈。
第 9 页/共 26 页
14. 功能原理
5 功能原理
研发效能平台 LinkE 封装了持续交付、智能 IDE、代码托管、配置变更、流程中心、项目协作、
测试服务、洞察分析等众多性能优异的功能模块,兼具开放可扩展、灵活可配置等属性,快速适
配客户不同业务场景,覆盖软件研发的各个阶段。
5.1 项目协作
项目协作是一款专为软件研发项目团队打造的简洁、易用、整合的工作项管理模块,以项目为切
入点,多维度集成管理需求、任务、缺陷、迭代、看板,提供轻量级支持敏捷开发等多种项目管
理的实践方法。
研发协作贯穿软件研发全生命周期,如需求管理、项目管理、迭代管理、工作项管理、风险管
理、度量分析等环节,让沟通随时进行,提高项目管理透明度,激发团队和组织热情,建设更好
的跨团队高效协作文化。
功能特性
第 10 页/共 26 页
15. 功能原理
•
项目管理
支持项目集、迭代、工作项、风险、里程碑等主要项目管理功能,集中式管理项目架构,能
完整清晰地追踪整体进度、阻塞模块、风险矩阵。项目成员可轻松实现任务分解、分派和跟
踪,完成工作计划、执行、汇总透视等事项,团队在项目空间内得以高效协作,项目管理有
条不紊尽在掌握。
•
工作项管理
统一需求、任务、缺陷的管理模型,按需定制工作项模板和流程,化繁为简,高效有序工
作;支持多维视图展示(列表视图、树状视图和看板视图),简单友好的看板模式助力研发
团队更高效的实践敏捷站会。
第 11 页/共 26 页
16. 功能原理
•
迭代管理
高效进行迭代规划、锁定、执行、复盘等活动,融合敏捷最佳实践,可将一个项目规划为多
个迭代快速交付业务价值;更有燃尽图等管理工具一目了然地呈现研发进度,让迭代节奏更
稳当有序。
5.2 代码服务
提供基于 Git 的代码托管服务,对所有软件资产进行有效的版本控制,支持多样化的分支管理模
式,支持单人或多人协同的合并评审,以确保代码变更的高效和质量。代码服务具备以下特色:
安全性:安全的代码库,具备代码库分级管理、用户角色分级管理能力以满足代码库访问控制能
力,防止未经授权的访问和变更。
高可用:代码库应具备强大的容错能力和高可靠性,让代码库保持高度可用和可访问,以避免故
障对核心的软件资产带来灾难性的破坏和损失。
可扩展:随着代码库的不断增大,具备代码库的分布处理能力和可扩展能力。
备份恢复:有效的备份,快速恢复能力,确保软件代码的安全。
功能特性
•
代码托管
第 12 页/共 26 页
17. 功能原理
基于 Git 的分布式代码托管服务,提供安全、稳定、高效、智能、集成、开放的代码
生态系统,支撑多样化的研发模式,精细化的变更管控。
•
版本控制
对软件开发过程提供有效的追踪手段,避免文件的丢失、修改的丢失和相互覆盖;通
过版本控制和历史版本,可以进行版本比较。
•
合并请求管理
合并请求管理是代码服务的一个重要组成部分,核心是一个适合不同企业不同组织的
变更处理过程。合并请求可能是新需求、优化改造、缺陷修复等。典型的处理过程包
第 13 页/共 26 页
18. 功能原理
括:提交合并请求对合并请求进行评审以便确定是否接受、合并后的通知机制等。
•
多分支策略
1)分支开发主干发布模式,每个项目基于 Master 主干拉取项目分支,合到 Master
主干后再做集成、预发、生产发布,分支开发支持多迭代并行,合并后修改基于主干
完成稳定可控,且无需频繁切换分支,同时生产发布永远是最新的主干。
2)分支开发分支发布模式,每个项目基于 Master 主干拉取项目分支,分支上做开
发、集成、预发、发布之后再合并回 Master 主干,这种模式灵活、快速。
•
多人代码评审
第 14 页/共 26 页
19. 功能原理
代码评审指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。代
码评审可以识别代码中存在的错误,早期发现缺陷降低问题修复成本,提升代码质
量,代码评审过程也是重新梳理思路的过程,鼓励协作,并使代码变得更有维护性,
促进知识共享。平台提供一套轻量级代码评审技术,在 MR 合并请求过程中,支持单
人或多人模式的合并评审,来确保代码评审的高效和质量,并作为流水线组件执行。
•
代码搜索
提供代码搜索功能,来帮助开发人员搜索示例代码、优秀代码、查询依赖等,助力开
发人员知识分享和能力提升,更高效构建应用代码。
5.3 持续交付
基于蚂蚁金服最佳实践,通过组件灵活编排,集成代码扫描、代码评审、自动化测试、自动编译
部署等核心功能,可视化各组件的运行结果,提前暴露并解决风险,确保每次代码提交都拥有可
靠的质量,能持续不断的交付价值。
第 15 页/共 26 页
20. 功能原理
可扩展:灵活的插件式架构,可轻松扩展流水线,简化持续集成的配置,具备多平台支撑与多语
言支撑能力,减少对持续集成的人工干预。同时,提供对研发、测试、构建和部署的数据可视化
的支持,使持续交付流动状态一目了然。
可编排:在分布式底层架构支持下,组件灵活可编排,可以支持各种规模的动态部署与服务。通
过检测容器状态,分析整体数据和资源状况,合理分配和支持不同业务、不同规模的产品服务,
实现高效的持续交付。
多样化:多平台支撑,支持多种分支策略,支持多种技术栈,支持多种开发语言。
功能特性
•
应用元数据管理
1)支持从 PaaS 平台导入应用信息,按架构域进行分组管理,提供日常修改和维护应
用属性信息的能力;
2)按应用自定义质量规则和目标,研发迭代中对质量不达标的应用进行管控;
3)按应用控制“MR/PUSH”、“是否窗口发布”等属性开关,为流程定制提供依据;
4)维护应用负责人、测试负责人、架构师等人员信息,支持流程审批人员自动获取。
第 16 页/共 26 页
21. 功能原理
•
研发迭代
1)支持标准迭代、紧急发布、及其他自定义迭代研发模式;
2)提供环境、审批任务、质量、需求、缺陷、发布配置等迭代信息,迭代过程中可增删应
用和迭代成员;
3)推进阶段时可以对质量数据、审批任务、及扩展集成的平台工具等进行卡点管控;
4)支持按应用/按迭代/窗口发布等多种迭代发布模式。
•
流水线
内建质量与实时闭环反馈,帮助开发人员在第一时间把事情做对。新平台建设将鼓励基于
gitflow 的最佳实践,通 MergeRequest 方式而不是 Push 方式向项目分支或主干提交代
码, 给代码门禁、CI 检测一个机会。流水线中执行的组件可根据各应用不同的需求支持自定
义编排,也可以将行方已有的质量管控手段集成进来。
第 17 页/共 26 页
22. 功能原理
1)提供代码扫描、CodeReview、单元测试、集成测试、自动构建、部署等常用功能;
2)经典 ECS 部署和云原生镜像部署双模支持;
3)流水线可按用户需要进行个性化编排;支持组件的自定义和扩展,客户自有测试资产或
第三方开源工具可封装为组件,并通过流水线调度执行和反馈结果。
4) 流水线组件执行结果实时通知反馈;
•
质量看板
基于成熟的质量模型,提供质量数据、扫描问题、通过率、覆盖率、注释率、重复度等数
据;实时更新和提供多视角(应用、迭代、发布等)的质量汇总信息,协助管控质量风险;
阶段推进时,基于应用的质量标准进行卡点检查。
第 18 页/共 26 页
23. 功能原理
•
配置管理
研发效能平台 LinkE 通过研发容器,统一管理研发迭代中基础软件、中间件配置、CI 执行参
数等配置变更。
1)研发迭代中集中管理不同环境的 SOFA 中间件配置(消息、调度、动态参数配置等),并
支持在阶段推进时不同环境之间配置的自动转换和生效;
2)支持基础软件和技术栈升级变更;
3)支持在迭代中按应用配置 CI 执行参数和规则,可修改基础环境、代码扫描规则、分组执
行、覆盖率统计等。
•
统一构建
支持蚂蚁技术栈 SOFA 的自动构建,支持非蚂蚁技术栈的自定义构建,经典 ECS 代码包构建
和云原生镜像构建双模支持。
•
自动部署
集成蚂蚁应用 PAAS 平台的部署能力,实现开发、测试等线下环境的自动化部署,支持 LDC
单元化部署、 云原生 AKS 部署、云原生 LKS 部署、 SAS 部署等多种模式。一键生成线上
环境生产发布单,并回查发布执行结果。
第 19 页/共 26 页
24. 功能原理
5.4 代码分析
支持 PMD、findbugs 等工具扫描,具备集成第三方扫描工具的能力,提供迭代的代码行、接口
注释率、代码重复度、行/分支/方法/类覆盖率等分析指标的统计能力。支持蚂蚁金服代码规约
和阿里巴巴开发规约的代码扫描规则。
支持白盒测试的全量/变更行覆盖率、分支覆盖率、方法覆盖率、类覆盖率等统计能力
第 20 页/共 26 页
25. 功能原理
5.5 智能 IDE 插件
支持静态代码实时分析、提交预扫等功能,通过与平台 web 端的深度集成,支持迭代签出及关
联、一键提交代码合并请求、实时同步平台 Pipeline 及组件执行详情,并提供 IDE 端代码评审
的能力。
5.6 测试服务
单元/接口自动化:持续交付流水线自动执行单元测试和接口测试脚本,推荐使用蚂蚁
ACTS(AntCoreTest)白盒测试框架,兼容 testng、junit 等第三方开源测试框架。实时更
新质量看板,并对迭代进行卡点管控。
白盒测试框架 ACTS 源于蚂蚁金服多年金融级分布式架构工程的测试实践的积累与沉淀,具
有可视化编辑和标准流程引擎等新特性,可辅助工程师高效、高质量地完成单元测试、接口
测试用例编写,并实现流水线自动执行。基于 Acts 测试框架完成
第 21 页/共 26 页
26. 功能原理
1)一键配置集成
2)一键模型生成
3)一键脚本生成
4)用例可视化维护
端到端全链路测试 待补充 TaaS
源于蚂蚁金服多年金融级分布式架构工程的测试实践积累与沉淀,提供业务场景自适应加载、测
试流程动态编排、精细化校验的金融级分布式测试能力,具备轻量级、标准化开放集成的特性,
帮助企业用户提升测试效率和质量保障能力
全链路压测 待补充 TraaS
5.7 流程审批
可按业务需求灵活配置审批流程,支持多成员协作工作流,可适应质量加签、测试验证、预发确
认、发布评审等多种风险管控场景。
第 22 页/共 26 页
27. 功能原理
5.8 环境管理
应用服务管理
通过 openapi 与应用 PaaS 平台集成,实现线下环境(开发环境、测试环境等)资源管理,支
持服务器的申请、释放、部署等操作,支持容器化应用服务的导入、关联管理。降低环境管理复
杂度以及多套环境的维护成本,提高环境部署效率。
高效构建联调环境
通过 sofarouter 划分正确的项目分组并在指定的分组内发生调用来打通和复用公共环境,提升
项目联调环境搭建效率和最大化利用线下资源。
第 23 页/共 26 页
28. 功能原理
5.9 研发洞察
以提效为中心,融合研发全领域知识和模型,依托数据和算法,智能识别效能问题、推荐方案,
驱动组织和个人效能的持续提升。
第 24 页/共 26 页
29. 附录:基础术语
6 附录:基础术语
项目(project)
具有独特的过程,有开始和结束日期,由一系列相互协调和受控的活动组成。过程的实施是为
了达到规定的目标,包括满足时间、费用和资源等约束条件。
工作项(work item)
研发项目中需求、缺陷、任务的集合。
研发迭代(iteration)
为实现需求或修复缺陷而进行的一次研发活动,一个研发迭代可能包含一个或多个应用。
应用元数据(metadata)
应用的各种基础信息、研发配置集合。
发布窗口(release window)
控制和协调多个迭代进行统一发布的实体,一个发布窗口可以关联一个或多个迭代。
仓库(repository)
特指代码仓库。
应用容器服务(AKS)
单元化容器服务(LKS)
无服务器服务(SAS)
第 25 页/共 26 页
30. 第 1 页/共 26 页