SlideShare a Scribd company logo
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab一站式DevOps解决方案
武让 极狐GitLab解决方案架构师
©2023 JiHu (GitLab) | All rights reserved.
9. 极狐GitLab代码质量解决方案
10. 极狐GitLab软件测试解决方案
11. 极狐GitLab效能度量解决方案
12. 极狐GitLab软件供应链安全解决方案
13. 极狐GitLab代码防泄露解决方案
14. 极狐GitLab SaaS
15. 极狐GitLab资质与评价
1. 极狐GitLab简介
2. 极狐GitLab一体化DevOps平台
3. 极狐GitLab专业服务
4. 极狐GitLab带来的价值
5. 极狐GitLab高可用部署解决方案
6. 极狐GitLab项目管理解决方案
7. 极狐GitLab版本控制解决方案
8. 极狐GitLab CI/CD解决方案
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab简介
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
GitLab 是全球最受欢迎的企业级解决方案之一
广泛应用
● 100,000+ 企业机构
● 千万级用户
● 70% 自部署市场份额
强大社区
● 开放核心模式
● 3,000+ 代码贡献者
● 10,000+ 社区贡献者
快速迭代
● Major: 年度发版
● Minor: 月度发版
● Patch: 随修随发
GitLab Inc. 公司成立于2014年,2000+员工分布在全球60个国家,践行全员远程办公
。
GitLab Inc. 围绕 GitLab 开源项目构建商业模式和先进产品,提供的企业级解决方案在
全球拥有约3000万用户。成功于2021年10月在纳斯达克上市,首日收盘市值149亿美金
。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐(GitLab) 公司介绍
全球领先
技术实力
合资3.0模式中国企业
立足中国、开源文化、自主可控、联结世界
知名投资
机构加持
红杉宽带
高成资本
淡马锡
GGV纪源资本
泰康人寿
联想创投
上海人工智能产业基金
诺基亚成长基金
Alpha Prime
干杯基金
天堂硅谷
独家且不可撤销的GitLab品牌和IP授权
独立自主研发权
中国公司自主管理,独立运营
遵循中国《个人信息保护法》和《数据安全法》,
基础设施和数据独立存放于中国境内,不与国外共享
源码开放,任何人都可以访问,并参与贡献
https://jihulab.com/gitlab-cn
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
上游优先(Upstream First) 研发协作模式
• 基于GitLab主干分支镜像至极狐代码仓
• 源代码实时同步到极狐在国内的服务器
• 新增极狐目录,针对国内用户功能开发
• 极狐GitLab发行版涵盖 CE/EE全部功能
GitLab开源项目代码贡献量全球第二位
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐(GitLab) 价值定位
产品:一体化DevSecOps平台
• 面向软件全生命周期的所有角色人员
• 提供软件开发和运维端到端所有功能
• 支持云端SaaS和私有化两种版本形态
服务:专业赋能
• 7x24小时专业线上支持服务
• 客户现场技术咨询和交付服务
• 线上/线下原厂培训认证服务
生态:开源开放
• 标准版代码开源/企业版代码开放
• 多供应商产品集成与联合解决方案
• 开源社区与非营利性联盟构建和运营 构建现代化软件创新工厂,助力企业数字化转型升级
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab一体化
DevOps平台
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
传统DevOps平台
项目经理 产品经理 开发工程师 测试工程师 运维工程师 安全工程师
安全扫描
项目管理 需求管理 代码管理 持续集成 制品管理 持续部署 配置管理 运行监控 安全防护
成本 效率 体验
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
一体化DevOps平台的价值
通常,用于数字产品开发的传统工具
链是通过许多领域工具集成在一起形
成。在某些情况下,这些系统依赖第
三方插件进行集成以匹配特定的汽车
软件研发运维场景。
这些集成的定义和设计通常都比较脆
弱,进而导致整个软件研发端到端过
程的不稳定性。
由于数据分散在各个系统中,通常需
要保存多份,因此往往也导致审计非
常困难。
用于软件产品开发的众多工具链所带
来的运维工作既有风险,成本也昂贵。
一体化平台的价值
企业花更少的时间维护工具,投入更多的时间研发软件
产品。
通过单一的用户数据库和审核,保证工作的可跟踪性、
可追溯性和可审核性。
自动化重复的工作任务,提供更高的工作吞
吐量和效率。
确保整个软件的开发和运维过程是安全、一
致且防篡改。
多工具带来的挑战
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab一体化DevOps平台
项目经理 产品经理 开发工程师 测试工程师 运维工程师 安全工程师
安全扫描
项目管理 需求管理 代码管理 持续集成 制品管理 持续部署 配置管理 运行监控 安全防护
统一的交互界面
统一的权限体系
统一的数据模型
统一的商业授权
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab各版本功能对比
标准版
基本的代码管理、CICD能力
适合开源社区和个人用户
专业版
增强流程管控、提高协同效率
支持企业级部署方案、提供技术兜底
旗舰版
开箱即用的DevSecOps解决方案
增强企业级安全合规能力
开源 MIT许可。
基础的任务管理:
✔ 群组
✔ 议题
✔ 看板
基础的源代码管理:
✔ 版本控制
✔ 分支管理
✔ Web IDE
✔ Pages 静态网页托管
✔ 大文件上传
基础的 CI/CD 流水线:
✔ 自动化编译、构建、部署
✔ 多种部署方式
制品库管理:
✔ 软件包库
✔ 镜像库
✔ 基础设施库
包含标准版所有功能。
更规范的流程管控:
✔ 推送规则:规范提交信息、分支命名,限制大文件上传
✔ 分支管理员:分支推送、合并权限精确到用户
✔ 代码负责人:指定文件、文件夹的负责人,限制目录写入
✔ 强制审批:多人多角色审批、自定义审批规则
✔ 自动化测试:代码质量扫描、覆盖率扫描、测试报告集成
✔ 审计事件:人员行为记录与分析
更高效的研运协同:
✔ 敏捷项目管理:史诗、议题、标记、路线图、看板、迭代、燃尽图
✔ CI/CD 流水线:流水线面板、部署审批、合并结果流水线
✔ 效能度量:代码贡献量统计、价值流分析、DORA 4 Keys指标
更可靠的部署方案:
✔ 企业级高可用,支持多副本部署,支持两地三中心跨地域部署
✔ 企业级高性能,支持横向扩展
✔ 企业级容灾:支持数据热备份
更专业的服务保障:
✔ 关于安装部署、升级迁移、用户使用、系统维护的原厂支持和保障
✔ 完善的SLA机制,最高7 * 24小时在线支持
包含专业版所有功能。
一站式DevSecOps平台:
安全扫描完整性:
✔ 覆盖7种类型安全扫描:SAST、依赖项
扫描、许可证合规、密钥检测、DAST、
镜像扫描、模糊测试
安全扫描统一性:
✔ 漏洞统一、闭环管理
✔ 自定义安全门禁,安全左移
✔ 漏洞详细描述、漏洞解决方案
安全扫描先进性:
✔ Gartner、Forrester等权威机构评测领先
安全扫描高性能:
✔ 支持并发扫描
安全扫描可扩展:
✔ 支持与其他安全扫描工具如SonarQube
、Fortify、BlackDuck集成
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab功能架构图(15.7)
平台管理 项目管理 源代码管理 CI管理 制品库管理 安全管理 发布管理 配置管理 运维监控 防护管理
2016 2011 2011 2012 2016 2017 2016 2018 2016 2019
子群组 议题管理 源代码管理 持续集成 软件包库 静态应用测试 持续交付 Auto DevOps 告警管理 容器扫描
AD/LDAP集成 标记管理 代码评审 单元测试 容器镜像库 依赖项扫描 特性标签 K8S管理 指标看板 漏洞自动修复
群组白名单 设计管理 Wiki APP预览 Helm Chart库 许可证合规 发布管理 IaC 产品分析 安全策略
审计事件 服务台 WebIDE 代码质量报告 基础设施库 密钥检测 环境管理 密钥管理 错误追踪
AD/LDAP同步 范围标记 Pages 性能测试 依赖代理 动态应用测试 环境看板 GitOps工作流 Runner监控
SAML同步 议题看板 代码片段 合并结果流水线 API模糊测试 环境保护 ChatOps钉钉 OnCall排班管理
群组Webhooks 议题权重 LFS大文件存储 合并列车 覆盖率引导模糊测试 部署审批 升级策略
合规框架 多指派人 多人/角色评审 流水线看板 漏洞报告 DORA关键指标
价值流管理 史诗管理 强制评审 外部仓库流水线 合规报告
效能管理 路线图 推送规则 多项目流水线可视化 安全仪表盘
高可用部署 燃尽/燃起图 群组Wiki 合规流水线 从漏洞创建议题
GEO多地部署 多级史诗 代码负责人
高级搜索 自定义实例模板
维护模式 自定义项目模板
审计事件流 标准版 专业版 旗舰版
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab集成与扩展
1.9k ⭐️
Used by 5.1k users
Python-gitlab is a python
wrapper for GitLab API
APIs on every GitLab component
API & hooks
Better than Atlassian
JIRA integration
Well-maintained
GitLab plugin for
Jenkins
Display scanning result
in GitLab
SonarQube
Seamless GitLab CI/CD
with GitHub SCM
Integrates with
hundreds of existing
applications
Applications
1.8k ⭐️
Used by 2.6k users
Go-gitlab is a golang wrapper
for GitLab API
800+ ⭐️
Used by 400+ users
GitLab4J API (gitlab4j-api)
provides a full featured Java
client library for working with
GitLab repositories via the
GitLab REST API
1.2k ⭐️
Used by 600+ users
GitLab API NodeJS library
with full support of all the
Gitlab API services.
python-
gitlab
go-gitlab gitbeaker gitlab4j-
api
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab专业服务
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab客户支持SLA
影响级别 SLA响应时间 工作时间 提交方式
紧急情况 30 分钟 24x7
在极狐(GitLab)支持门户新建一张工单。
紧急事件可直接发送邮件至紧急支持邮箱。
高级影响 4 小时 12x5 在极狐(GitLab)支持门户新建一张工单。
中级影响 8 小时 12x5 在极狐(GitLab)支持门户新建一张工单。
低级影响 24 小时 12x5 在极狐(GitLab)支持门户新建一张工单。
自部署版本:
• 参考架构的支持服务:按GitLab推荐的可扩展架构来安装部署的架构,被定义为参考架构。支持工程师将与您
的技术团队合作,共同解决在参考架构实施后遇到的问题。
• 实时升级协助:您可以预约日程安排支持工程师协助您升级GitLab JH。我们将协助您发起实时屏幕共享,帮
助您完成整个过程并确保顺利完成升级任务。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab专业服务
实施服务
迁移服务
教育服务
集成服务
咨询服务
内源建设
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab原厂培训认证服务
课程:极狐GitLab CI/CD
认证:极狐GitLab CI/CD 专员
课程:极狐GitLab项目管理
认证:极狐GitLab 项目管理专员
课程:极狐GitLab 安全基础
认证:极狐GitLab 安全专员
课程:极狐GitLab与Git基础
认证:极狐GitLab 专员
课程:极狐GitLab系统管理
认证:极狐GitLab 系统管理专员 https://about.gitlab.cn/services/education
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab RaaS远程办公专家培训
远程办公实践经验:
1. 千人规模 Fully-Remote
2. 8年远程办公实践,积累5000页Handbook
3. 发布远程办公Playbook,入选哈佛商学院和欧洲工商管理学院核心案例
RaaS专家培训:
学习目标
• 介绍远程办公定义
• 极狐GitLab远程宣言
• 企业远程办公阶段定义
• 极狐远程办公方法论
课程体系
• 高管课程
• HR课程
• 技术课程
• 试听课程
课程构成(高管课程
)
• All Remote介绍
• 极狐全远程实践示范
• 案例分析和讨论
• 远程工具介绍
• 4小时授课+1小时练习题+1小时考试
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab带来的价值
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
项目管理可视化 降低沟通成本
极狐GitLab 采用数字化产品精益需求和敏捷迭代
等方法论构建的功能特性,将需求和计划以群组、
项目、里程碑、路线图、迭代等多个维度进行关
联。采用精益看板将任务的状态和进度进行可视
化,辅助管理者和团队实时把握项目进度,尽早
识别出项目风险并采用合理的应急措施。
极狐 GitLab 提供了通过多元化的抽象,将需求、
计划、任务、资源等进行关联,实现项目管理的
可跟踪、可估算、可追溯和可管控。
● 多级群组管理,多层级项目或团队划分
● 产品路线图管理,功能需求分解与排期
● 里程碑管理,项目时间与任务计划
● 议题管理,功能需求阐明与任务指派
● 精益看板,可视化任务状态与进度
● 时间跟踪,预估和实际使用时间记录
项目进度跟踪 任务管理与指派 资源使用评估
项目时间计划
适用场景
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
软件研发合规化 提高产品质量
极狐GitLab中的版本控制功能帮助您的开发团队
组织协作,最大化地提高生产力,实现快速交付并
提高团队写作透明度。借助基于Git的存储库,极
狐GitLab支持清晰的代码审查、资产版本控制、
反馈循环和强大的分支模式等,帮助您的开发团队
解决问题,产出价值。
源代码管理是DevOps生命周期中至关重要的一环
,帮助团队使用单一身份信息源(SSOT) 管理源代
码。
● 角色授权,支持多种角色对应不同权限
● 分支管理,多人基于分支协同开发
● 推送规则,自定义代码提交和推送规则
● 代码评审,多人多重规则强制审批
● 仓库镜像,同步代码库之间的数据
● 高级搜索,支持代码全局搜索
● 审计报告,人员操作行为记录与分析
规范代码提交 代码强制审核 版本追溯控制
多人协同开发
适用场景
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
软件交付自动化 降低试错成本
极狐GitLab 深耕现代化软件开发中涉及的持续集
成、持续交付和持续部署等经典行业实践,打造
了强大的极狐GitLab CI/CD 功能,实现软件生产
过程的高度自动化作业,提升软件交付效率,降
低人工投入成本。
极狐 GitLab 提供了兼容多基础设施多操作系统的
Runner组件,通过流水线即代码的方式将代码、
构建、制品、测试、部署和发布等步骤通过可定
制、可编排的流水线任务进行串联和打通,实现
全过程的无人值守。
● 多类型流水线,支持灵活自定义
● 配置文件模板,降低使用成本
● 流水线报告,可视化任务执行结果
● 工具集成,串联多种工具生态
● 自动伸缩,提升基础架构利用率
工程化任务编排 一键式部署发布 信息端到端追溯
软件交付自动化
适用场景
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
安全合规常态化 降低风险成本
极狐 GitLab 围绕 DevSecOps 最佳实践,将应用程序
安全和合规前置到软件开发生命周期,基于自动化流水
线对软件全生命周期进行全面的安全扫描和防护,最后
提供全面且结构化的安全报告供团队和安全部门进行分
析,并结合议题功能进行安全问题修复的计划和跟踪。
极狐GitLab 提供 DevSecOps 实践所涵盖的全方位安
全与合规能力,并提供开箱即用的方式降低用户使用成
本。
● SAST静态安全检测,识别代码安全漏洞和风险
● DAST动态安全检测,识别应用安全漏洞和风险
● 软件依赖检测,识别第三方依赖安全漏洞和风
险
● 软件许可合规检测,识别开源许可合规性风险
● 代码库内密钥探测,识别密码泄漏风险
● 容器镜像安全扫描,识别容器基础镜像风险
开源软件许可合规 应用动态安全探测 项目非功能性验收
代码安全漏洞识别
适用场景
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
质效度量数据化 降低决策成本
极狐 GitLab 作为一体化的 DevOps 研发运维平
台,通过对多角色在平台过程中产生的关键性指标
数据的采集、存储、提取和呈现,从全局到局部、
从组织到个人、从管理到一线等多个方面构建全面
的效能度量体系。
极狐GitLab 提供面向企业、部门和团队的多级度
量指标,从效率、质量和成本等维度提供多维视角
的数据化和可视化衡量。
● 人员贡献量分析,衡量项目组和成员的贡
献
● 议题任务分析,衡量项目组的任务和工作
量
● 代码仓库分析,衡量软件的代码质量
● 流水线分析,衡量项目组的自动化程度
● 价值流分析,衡量项目组的工作流动效率
人员贡献量度量 自动化效率度量 代码质量度量
项目工作量度量
适用场景
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab经济性分析
⮚ 开发和交付效率提升 87%
⮚ 应用发布数量增加 12倍
⮚ 代码缺陷数降低 80%
⮚ ROI 提升 407%
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab高可用部署
解决方案
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab 高可用可扩展架构
用户请求流量 七层负载均衡
服务发现
服务监控
Web/API/SSH 服
务
后台作业处理
代码仓库存储
关系型数据库
缓存与队列
持久数据副本集
缓存数据副本集
数据库副本集
对象存储
文件存储
搜索引擎
应用服务层
数据库层 代码存储层 文件存储层 全局搜索层
基础架构层
极狐GitLab的高可用和扩展性源自全球最
大代码托管平台之一的 GitLab.com 十多
年的技术实践沉淀。
在整体架构设计上不存在单点故障,并结
合负载均衡、水平伸缩、分布式架构、主
从多副本机制和云原生等多种机制,实现
理论上无限扩展的能力。
极狐GitLab还提供了支撑从1000人到
50000人规模的架构最佳实践参考和专业
服务支持。为企业构建高度可靠DevOps研
运平台保驾护航。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab GEO多地域部署架构
▪ 各节点分别有各自的服务器和存储
▪ 一主多从架构,主从配置不必完全一致
▪ 用途
• 通过访问就近节点加速
• 负载分担
• 准实时备份
• 灾难恢复
▪ 参考链接
https://docs.gitlab.com/ee/administration/geo
©2023 JiHu (GitLab) | All rights reserved.
高可用+多地域部署架构实例化参考
主实例(HA)– 北京Pod1(官方推荐+原厂支持)
▪ GitLab系统各产品组件采用分布式部署
▪ 外部和内部负载均衡帮助应对和分发所有前端请求
▪ Prometheus+Grafana用于统一监控GitLab平台
▪ Elasticsearch集群负责全局代码搜索
▪ 各服务端点保持主从或多活集群配置,避免单点隐患
▪ Gitaly集群技术支持可提供更高的容错,目标RPO<1m,
RTO<10s
▪ 对象存储持久共享数据,可带来更好的性能和可用性
▪ 数据库亦可用内部PaaS方案,减少运维负担
同城实例 – 北京Pod2(可选)
▪ GitLab单实例部署并借助专业的全系统Geo数据复制实现同城实例
级别高可用
▪ 同城辅助节点可用于缓解主节点Git流量减少带宽压力,降低主节
点故障切换时间,也可视为同城主从
异地实例 – 上海(必要)
▪ 借助Multi-Geo既可实现异地灾备
▪ 亦可为其他区域“研发中心”提供就近加速访问(仅拉取或克隆)
北京
pod1
北京
pod2
上海
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
Gitaly Cluster 高可用Git仓库服务
组件构成:
• Load Balancer - 分发外部请求
• Praefect集群 - 管理集群,分发读写
请求
• Tracking DB - 保存集群元数据
• Gitaly节点 - 提供Git仓库存储和访问
主要功能:
• 分布式读取
• 强一致写入保证
• 仓库级副本参数设置
• 自动故障切换
• 数据复制缺失自动检测与修复
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab项目管理
解决方案
©2023 JiHu (GitLab) | All rights reserved.
组织管理 灵活匹配企业组织架构
项目里程碑
群组里程碑
迭代
路线图
路线图
群组Group
子群组Sub Group
项目Project
组织层级
Epic (Capability:史诗)
Sub Epic (Feature:特性)
Group Issues, roll-up from Sub
Groups and Projects;
e.g., Release, Iteration
用户需求 进度跟踪
协作
追踪
Project Issues, (Story:用户故事
)
single Project(s);
e.g., Sprint
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
需求规划 清晰条目拆分与产品规划
史诗故事
Epic
特性故事
Feature
用户故事
Story
INVEST
原则
路线图
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
议题管理 线上化需求澄清和验收协作
议题描述
验收协作
人员指派
史诗关联
属性标签
计划关联
截止日期
工时统计
代码关联
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
标记管理 自定义议题类型
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
看板管理 多维度议题视图
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
迭代管理 项目周期性管理
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
文档管理 文本与大文件管理
支持Markdown
支持富文本
支持在线协同
支持版本控制
文本类 文件类
Git LFS
©2023 JiHu (GitLab) | All rights reserved.
主流项目管理系统集成
项目(敏捷)
项目(瀑布)
迭代1
迭代N
分解/指派任务 (内测)版本 测试单 验收通过
用例
功能需求
计划会议
关联 关联
BUG
计划/估算 需求 设计 开发任务 测试
实时同步
发布
需求任务与代码提交、代码合并关联
©2023 JiHu (GitLab) | All rights reserved.
项目管理系统集成效果示例:Jira
集成效果:
• Jira Issue问题跟踪、活动日志中显示关联的GitLab提交、合
并请求信息
• GitLab提交、合并请求信息中直接打开关联的Jira Issue
• GitLab提交、合并请求信息中评论Jira Issue、设置Issue状
态、跟踪Issue时间
• Jira Issue的开发面板中展示GitLab提交、合并请求的数据
• GitLab支持从JIRA直接导入议题
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab版本控制
解决方案
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab Workflow
核心功能
● 基于Issue快速创建功能分支
● 通过Git Push创建合并请求MR
● 推送规则
核心功能
● 合并请求批准
● 代码合并后自动关闭Issue
● 合并结果流水线
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab Workflow示例
发布
需求
• 产品经理创建issue
• 团队成员进行讨论
设计
• 项目经理将issue指
派给开发人员
• 开发团队针对issue
进行技术讨论
编码
• 开发人员基于issue创
建一个feature分支(
创建自master分支)
并创建feature到
master分支的MR
• 开发人员提交代码
• 通过CI进行自动构建,
执行代码质量扫描和单
元测试,发布到测试/
预览环境
审批
• 开发人员、测试人员将
需求issue和bug issue
关联到MR
• 项目经理、产品经理、
技术主管、架构师对
MR进行审批
测试
• 测试人员在测试/预览
环境下进行测试(手
动或基于流水线的自
动化测试)
• 测试人员将bug、缺
陷通过issue的方式进
行反馈,并对开发人
员已经修复的bug进
行验证
• 开发人员重复编码过
程,直到通过测试
• 发布团队合并
MR,发布并部
署新版本
• 自动删除featur
分支, 自动关闭
issue
• 监控应用性能
• GitLab使用分析
、效能评估
©2023 JiHu (GitLab) | All rights reserved.
GitLab版本控制最佳实践
了解GitLab Flow
Determine a branching strategy
选择分支策略
软件项目常依靠跨团队、多名员工
的共同协作,工作流程中可能会出
现代码冲突。为防止代码混乱,团
队应确定并广泛推广唯一的分支策
略。
常见的分支策略:
• Git Flow
• GitHub Flow
• Trunk-based Development
• GitLab Flow
了解推送规则
对于每个commit,应当反映
commit的意图,而不仅仅是
commit的内容。有助于团队成员更
直观的看到commit可能引起的变化
。
此外,对于commit message也需
要进行规范化管理。如
• Angular 规范
• Conventional Commits 规范
可使用GitLab 推送规则验证和控制
commit message规范性。
Write descriptive commit
messages
描述提交信息
了解合并请求审查
定期进行代码评审,可防止不稳定
的代码被提交并确保代码质量持续
改进。团队成员可以审核任何人的
代码并提供建议。
使用GitLab代码合并请求审查规则
功能,可以设置哪些类型的用户能
够参与合并请求批准,以及合并代
码之前最少需要多少用户批准。更
有利于建立流程化的代码评审机制
。
Conduct regular code reviews
定期代码评审
了解从Issue创建分支
基于分支策略,使用代码分支进行
开发,团队成员可以在不影响主代
码库的情况下进行代码修改。并在
代码分支中跟踪修改历史。当代码
准备就绪时,可以合并到主分支中
。
如使用GitLab Flow,开发人员可基
于issue或某个需求创建功能分支,
在该分支下进行开发和修改,直至
该需求开发完成后,再合并到主干
分支Master(Main)中。
Develop using branches
基于分支开发
了解贡献分析
传统开发过程中,开发人员只有在
项目上线前夕才会集中提交代码,
不仅存在代码丢失的风险,还存在
较多代码冲突的风险。此外通过一
次集中式的commit难以识别开发了
哪些功能,对于上线或者回退造成
极大影响。
按需求或者较细粒度的进行commit
,有助于降低软件项目整体风险。
此外,按照需求功能进行commit,
也有助于形成透明协作的工作文化
。
Make frequent small changes
小步快跑提交
©2023 JiHu (GitLab) | All rights reserved.
常见分支策略
Git Flow
Trunk-based
Development (TBD)
GitHub Flow
GitLab Flow
©2023 JiHu (GitLab) | All rights reserved.
分支策略 统一研发流程
master
15-0-stable-jh
v15.0.0 v15.0.1
feature
bug fix
Cherry-pick
master
v15.0.0 v15.0.1
dev
小型项目推荐分支策略
大、中型项目推荐分支策略
©2023 JiHu (GitLab) | All rights reserved.
受保护分支 防止代码越权提交
受保护分支对实现了更加精细化的代
码权限管理。 通过对指定分支设置保
护,禁止未授权用户对该分 支进行代
码推送和代码合并等操作,以此保证
分支 代码的可审核和可追溯性。
同时也为开发团队践行代码评审Code
Review和合并请求Merge Requests等
研发流程的最佳实践提供 了工具侧的
落地支撑。
为重要分支设置保护,只允许特定的组
或用户有推送和合并权限。
©2023 JiHu (GitLab) | All rights reserved.
分支开发工作流
基于Issue快速创建功能分支和MR
主干分支
功能分支发开工作流
1. 克隆代码仓
2. 创建功能分支
3. 编写代码,提交代码
4. 推送到远端功能分支
5. 创建合并请求到主干分支
6. 代码评审并执行合并
开发者
功能分支
代码
评审
git clone git@example.com:project-name.git
git checkout –b wechat-pay-integ
git commit -m ’feat: wechat-pay-sdk-integ’
git commit -m ’feat: payment web’
git push origin wechat-pay-integ
©2023 JiHu (GitLab) | All rights reserved.
推送规则 规范代码提交
杜绝提交垃圾文件
提交
规范
推送
规则
源头约束 尽头把关
限制文件大小
规范提交信息
规范分支命名
验证提交人身份
©2023 JiHu (GitLab) | All rights reserved.
合并审批 规范代码评审
● 自定义合并审批规则
● 静态规则:多重审批规则支持
1.设置分支权限与
合并批准人
2.提交合并请求
3.指定代码评审人
4.评审代码
5.解决评审问题 6.合并代码
● 动态规则:按文件类型划分审批人
©2023 JiHu (GitLab) | All rights reserved.
合并请求 数据关联与汇总
GitLab Issue、PingCode Issue状态联动
CICD流水线状态和历史记录
代码质量报告
安全扫描报告
代码覆盖率报告
强制流程化代码合并审查
Web IDE在线查看、对比、编辑代码
代码评审记录追踪
©2023 JiHu (GitLab) | All rights reserved.
代码全局搜索的特性与价值
• 跨群组跨项目搜索
• 主流搜索引擎集成
• 高级搜索语法支持
• 代码评审辅助支持
• 寻找编码参考实践
• 内源实现必要条件
群组内搜索
项目内搜索
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI / CD
解决方案
©2023 JiHu (GitLab) | All rights reserved.
持续交付
持续交付 是将业务应用所
有类型的变更,包括新功能
、配置更改、缺陷修复和模
拟验证等,通过安全、快速
和持续的方式部署到生产或
交付至用户的能力。
-- Jez Humble
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD组成 - Runner
Runner
Instance
On
Demand
Executors
Users
• 操作系统
• Linux, Windows, macOS, FreeBSD
• 底层架构
• x86, AMD64, ARM64, ARM, s390x, ppc64le
• 安装方式
• 容器化、二进制、软件包
• 执行类型
• SSH, Shell, VirtualBox, Docker, Kubernetes
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD组成 - Script
• Pipeline
Stage 的集合,一条 Pipeline 可包
含一个或多个Stage。
• Stage
Job 的集合,不同的 Stage 在
Pipeline 中按预定义的顺序执行。
• Job
具体任务的执行,Job 在同一
Stage 里并行执行。
• Script
任务中执行的命令。
灵活编排
声明式语法
可视化预览
语法校验
运行日志
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD Pipeline类型
基础流水线(Basic Pipelines),流水线步骤顺序执行,步骤内任
务并行执行。
有向无环图流水线(Directed Acyclic Graph Pipeline),流水线
步骤顺序执行,步骤内任务可跨步骤串行。
多项目流水线(Multi-project Pipelines), 跨项目流水线触发与
关联。
父子流水线(Parent-Child Pipelines) ,将复杂流水线分解为利
于维护的一主多从流水线。
合并请求流水线(Pipelines for Merge Requests),针对合并请
求触发和运行的流水线。
合并结果流水线(Pipelines for Merged Results),针对合并请
求完成后触发和运行的流水线。
合并列车(Merge Trains),使用合并结果流水线触发合并请求。
©2023 JiHu (GitLab) | All rights reserved.
有向无环流水线 DAG Pipeline
适用场景
• 操作系统类软件
• 多平台支持类软件
• 单仓库多模块微服务应用
价值体现
• 减少任务等待时间
• 提升流水线执行效率
• 加快交付结果反馈
• 直观呈现任务关系
有向无环流水线(DAG Pipeline)能够突破普通流水线中前序步骤所有任务执
行完后,才能执行后续步骤中任务的限制。支持按照任务为粒度进行跨步骤
的关联建立,降低任务等待时间的浪费。并提供可视化能力快速识别任务的
运行情况。
©2023 JiHu (GitLab) | All rights reserved.
父子流水线 Parent-Child Pipeline
父子流水线(Parent-Child Pipeline)用于在同一个代码库中上下游流水线的关
联和触发。它支持将一条复杂的流水线解耦为一主多从的多条流水线,并基于
特定的规则构建起运行关系。在降低流水线维护复杂度的同时,支持可选择性
地触发子流水线以提升流水线运行效率。
适用场景
• 大型代码库(Monorepo)
• 单条流水线配置复杂度高
• 针对文件变更触发流水线
价值体现
• 降低非关联任务依赖
• 动态按需触发子流水线
• 降低流水线维护复杂度
• 提高流水线可视化程度
©2023 JiHu (GitLab) | All rights reserved.
多项目流水线 Multi-Project Pipeline
多项目流水线(Multi-Project Pipeline)用于多个项目流水线之间的关联触发,它
通过构建项目间流水线的上下游关系,支撑跨多个项目或团队的大型软件产品交
付过程的高度自动化。同时还提供上游和下游两个视角,建立起可视化的流水线
全景,提升跨团之间的协作效率。
适用场景
• 大型跨项目/团队软件产品
• 多模块架构应用
价值体现
• 流水线上下游灵活定义
• 自动化触发依赖流水线
• 流水线全景可视化展示
©2023 JiHu (GitLab) | All rights reserved.
合并列车 Merge Train
合并列车(Merge Train)是围绕GitLab合并请求(MR)工作流衍生出来的高级功能
,它基于合并结果流水线自动化执行多个MR的预合并,将预合并成功的多个
MR最终正式合入主干分支,以此时刻保持主干分支是可用状态,支撑持续交付
最佳实践。
适用场景
• 大型研发团队
• 多功能并行研发
价值体现
• 固化标准的分支策略和工作流
• 促进代码评审以提升软件质量
• 预合并保持主干分支随时可用
• 并行自动化执行加快合并流程
©2023 JiHu (GitLab) | All rights reserved.
合并结果流水线与合并列车流水线
合并请求流水线
在源分支下运行流水线,无法保障合并后目标分支流水线可
正确运行。
合并列车流水线
基于合并结果流水线,将“合并”动作加入合并列车,当合
并结果流水线正确运行后,合并列车自动执行“合并”动作
。类似消息队列,并行生产、串行消费。
合并结果流水线
模拟源分支已合并到目标分支,基于这个模拟合并运行流水
线。但因“合并”动作是人工操作,在该动作执行前,目标
分支依然会发生变化,所以只能一定程度上保障合并后目标
分支流水线可正确运行。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 配置复用
include:
- local: '/templates/.gitlab-ci-template.yml'
include:
- project: 'my-group/my-project'
file: '/templates/.gitlab-ci-template.yml'
include:
- remote: 'https://gitlab.com/example/-/raw/main/.gitlab-
ci.yml'
# File sourced from the GitLab template collection
include:
- template: Auto-DevOps.gitlab-ci.yml
Local
引用同一项目中的流水线配置
Include
File
引用同一实例中的流水线配置
Remote
引用远程仓库中的流水线配置
Template
引用GitLab的模板流水线配置
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 触发与编排
Stage
定义流水线中 Stage执行的先后顺序,
Stage中的Job全部并行执行。
Workflow
根据条件判断流水线出创建和运行规则,if定义条件,when定
义行为。
When
定义流水线中Job的执行条件,when也可以
与 if 联合使用,通过判断条件来灵活定义
job的执行。
• On_success:前序任务成功则执行
• On_failure:前序任务失败则执行
• Always:总是执行
• Manual:手工执行
• Delayed:延时执行
• never:永不执行
Trigger
定义下游流水线的触发规则,支持多项目流水线和父子流水线
。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 数据传递
变量(variables)
流水线中的变量包含自定义变量和预定义变量。预定义变量由Runner
自带,自定义变量由用户通过文件、UI或者API进行配置。
● variables在流水线全局定义,则所有任务可使用;
● variables在任务中定义,则对应Job可使用。
制品(artifacts)
流水线中任务执行过后产出的制品路径,后序任务会自动获取
前序任务的制品。可以通过 dependencies 关键字来进行控制
。制品存放在Server上
缓存(cache)
缓存可以在流水线和任务之间进行共享,默认存在 Runner 上
。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 制品库
常见的私有仓库类型 基本仓库功能
语言包仓库 容器仓库
依赖管理
本地依赖
发布包管理
大文件存储
代理过期策略配置
结合流水线发布
module仓库
.tfstate状态保存
分级别的制品
实例级别
群组级别
项目级别
IaaS仓库
依赖代理 LFS
交付件存储
版本管理
交付件元数据
管理
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 应用部署
代码仓
外部
代码仓
代码仓
GitLab
CI
Deploy
Key
制品库
Deploy
Token
GitLab
CD
服务器
scp
kubectl
Deploy
Key Environment
Deploy Token
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 部署回滚
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab CI/CD流水线 - 部署审批
受保护环境
• Approvers为允许部署到环境的成员
• Pipeline owner不能批准自己的部署
• Reject会直接将部署job变为失败
• 达到最小批准数后部署job会自动允许
流水线无需特殊设置, deploy job自动变为manual
©2023 JiHu (GitLab) | All rights reserved.
云原生环境集成
• 支持对接商业Kuberntes产品,自动创建集群
• 自动化部署应用程序
• 检测、监控及创建K8S集群
• 支持GitOps
• 与Auto-DevOps结合使用
• 实现金丝雀发布
• 基于群组或实例级别进行集成
©2023 JiHu (GitLab) | All rights reserved.
高度自动化流水线落地示例
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab代码质量
解决方案
©2023 JiHu (GitLab) | All rights reserved.
什么是代码质量
《CleanCode》(代码整洁之道)
Robert C. Martin
《Sonar code quality testing essential》
开发人员七宗罪
• 编码规范:是否遵守了编码规范,遵循了最佳实践。
• 潜在的BUG:可能在最坏情况下出现问题的代码,以及存在安全漏
洞的代码。
• 文档和注释:过少(缺少必要信息)、过多(没有信息量)、过时
的文档或注释。
• 重复代码:违反了Don’tRepeat Yourself原则。
• 复杂度:代码结构太复杂(如圈复杂度高),难以理解、测试和维
护。
• 测试覆盖率:编写单元测试,特别是针对复杂代码的测试覆盖是否
足够。
• 设计与架构:是否高内聚、低耦合,依赖最少。
代码质量 = 每分钟爆粗数
©2023 JiHu (GitLab) | All rights reserved.
代码质量评估标准
• ISO/IEC 25010 定义了8个特征,用于评估软件软件产品质量
• ISO/IEC 25023 描述如何应用25010 中定义的8个特征来衡量软件产品的质量,但主要是在行为级别而不是源代码级别
• ISO/IEC 5055 为了补充25023中的度量级别,参照了CISQ (2020)的质量评估标准,符合25010中的4个特征
• ISO/IEC 5055 是首个直接从软件内部结构方面衡量软件质量的 ISO 标准
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab代码质量扫描方案
使用极狐GitLab集成SonarQube进行代码质量扫描
• 通过GitLab CI触发SonarQube扫描
• 在SonarQube上实现问题向下钻取
• 在SonarQube上查看问题解决方案
• 多维度、可视化分析统计
• 质量报告可在GitLab MR中查看(SonarQube付费版)
GitLab Integration | SonarQube Docs
使用极狐GitLab进行代码质量扫描
• 内置Code Climate
• 支持多种语言,多种质量类型
• 支持自定义配置模板
• 使用简单,仅需一行CICD配置代码
• 质量报告可在GitLab MR和CICD中查看
Code Quality | GitLab
©2023 JiHu (GitLab) | All rights reserved.
GitLab代码质量扫描引擎
知名规范 缩进 类行数 函数行数 行长度 圈复杂度
Java Google 2空格 100
Java 阿里 4空格 80 120
Java PMD 1000 60 10
PHP PSR-12 4空格 80
PHPMD 1000 100 10
极狐GitLab代码质量扫描引擎
业界知名代码规范
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab软件测试
解决方案
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
水星计划与软件测试
软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求
进行评估的过程。
Because of the complexity and worldwide nature of the
system. I decided that we need to have a group of people
dedicated to quality, including testing of the system. We
created such a group, which is as far as I know, had never
been done before. They lived through the whole project,
unlike a lot of testing groups today.
Because this was, not only first human life system, but it was
the first worldwide online system, ever build, and presented
many unique problems in testing. That’s how we got into
this. It was after that that other people began to realize they
needed separate testing groups. But it became different.
Our testing group was composed of experienced and
talented software developers.
—— Jerry Weinberg
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
软件测试发展历程
1950-1957
• 没有明确测试和调试之
间的区别。没有测试或
测试人员的概念。
• 以调试为主,验证程序
是否符合预期。
1. 调试为导向 2. 证明为导向
1957-1978
• Charles L Baker提出了
测试的概念,并对调试
和测试进行了区分。
• 调试:确保程序符合开
发人员的预期。
• 测试:确保程序符合功
能需求的预期。
• 确保软件满足功能需求
,也就是做了正确的事
情。
3. 破坏为导向
1979-1983
• Glenford J. Myers阐
述了一个成功的测试用
例是检测到尚未发现的
错误。
• 软件测试和软件开发独
立开来,测试需要更为
专业的人员进行。
• 不仅要证明软件做了正
确的事情,也要保证它
没做不该做的事情。
4. 评估为导向
1983-1987
• V&V(验证和确认)理
论出现,提出软件测试
需要被应用在整个软件
生命周期(SDLC)中
。
• 重点是检验软件是否满
足规定的需求或弄清预
期结果与实际结果之间
的差别,以及通过测试
来评估和衡量软件质量
。
5. 预防为导向
1988-2000
• 代码被分为可测试的和
不可测试的。
• 探索性测试,TDD和
BDD等新概念兴起。
• 敏捷开发模式推广,自
动化工具、持续集成等
技术应用。
• 测试的重点应该是在代
码级别防止缺陷。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
软件测试分类
Mike Cohn 《Succeeding with Agile》“测试金字塔”
传统软件测试分类
《Google软件测试之道》软件测试分类
类型 描述 测试人员 占比
小型测试 用于验证单独函数或独立功能模块,一般需要使用mock和fake,类似单元
测试。都是自动化实现的。
一般由SWE完成,TE可能会参与运行。 70%
中型测试 涉及两个或两个以上模块之间的交互,类似集成测试。通常也是自动化实现
的。
SET会驱动这些测试的实现及运行,
SWE会深度参与,一起编码维护测试。
20%
大型测试 验证软件是否满足最终用户的需求,类似系统测试或端到端测试。自动化测
试或者是搜索式测试
三种工程师角色都会参与。 10%
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
自动化测试工具
《Test Automation Past Present and Future》 Keizo Tatsumi
《2022 Top15自动化测试工具 》 Katalon
自动化测试工具的形式
自动化测试框架的类型
基于用户界面(UI)
基于接口(API)
线性测试:录制生成脚本、宏
结构化测试:支持控制分支结构
数据驱动测试:表格输入输出
关键字驱动测试:表格+关键字翻译
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
自动化测试开展条件
优势
• 自动执行一些重复但必要测试工作,提高效率
• 减少由于手工测试中繁复的重复工作所导致的人为差错
劣势
• 短期开销大(人才培养、流程建立、脚本编写
)
• 自动化测试不容易发现新的BUG
短周期项目难以体现自动化测试的价值
。
维护周期长
需要频繁的回归测试,手工测试效率低下。
频繁的迭代
不稳定的产品收益不可控,整体投资回报率太低。
产品相对稳定
01
02
03
开展自动化测试的条件 与手动测试互补而非完全替代
手动测试 自动化测试
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
敏捷与软件测试
敏捷测试宣言
• 与开发协作测试 胜于 测试分工与测试
• 可运行的测试脚本 胜于 写在纸上的测试用例
• 从客户角度来理解测试需求 胜于 从已定义的需求来判定测试结果
• 基于上下文及时调整测试策略 胜于 遵守测试计划
传统测试 敏捷测试
强调测试的独立性,将“开发”和“测试”职责区分。 强调整个团队对测试负责,是“全民”测试。
有明显的阶段性,逐个阶段往前推进。 强调更早测试、持续测试、持续质量反馈,没有明确的阶段界限。
强调测试的计划性。 强调测试的速度和适应性,侧重不断地调整计划以适应需求的变化。
调测试测试是由“验证”和“确认”两种活动构成。 以用户需求为中心,每时每刻不离用户需求,将验证和确认统一起来。
关注测试文档,包括测试计划、测试用例、缺陷报告、和测试报告等。 关注产品本身,强调面对面的沟通、协作、反馈。
鼓励自动化测试 基于自动化测试
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
敏捷测试最佳实践
《敏捷测试之迭代生命周期(最佳实践模型)》
Thoughtworks的敏捷测试
故事启动
故事计划
故事开发
故事验收
系统测试
客户演示
故事测试
探索性测试
《故事卡生命周期(经典模型)》
Thoughtworks的敏捷测试
按需实践、逐步提升
探索阶段 or <5人 扩张阶段 or 5-10人 稳定阶段 or 10人以上
1. 轻量的缺陷管理和反馈机制
2. 手动测试为主,具备初步的自动化测试能力
1. 持续沟通、持续测试、持续反馈
2. 全量回归测试成本增高,自动化测试为主
1. 组建测试团队、完善测试管理
2. 引入工具链,防止变更风险,确保软件质量
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
DevOps与软件测试
在软件交付生命周期过程中,以防控业务风险为目的
,将每一个阶段都通过测试活动进行质量保障,并尽
最大可能自动化测试活动,并将测试结果不断的反馈
给制品过程的测试实践活动就是持续测试。
—— 《持续测试》CrissChan
持续测试
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab持续测试最佳实践
CT
持
续
测
试
CI
持
续
集
成
CD
持
续
部
署
扫描
1. 代码质量检测
2. 安全扫描
测试 3. 单元测试(覆盖率)
测试
环境
生产
环境
4. 接口测试
5. UI测试
6. 性能测试
7. 探索性测试
8. 监控(可用、可访问)
测试右移
质量:代码评审
测试左移
监控、报警
A/B测、灰度发布
参与需求讨论和评估
业务场景和验收测试(AC)的确认
人人参与评审
人人为质量负责
内置测试工具 效率:CI / CD 外部测试工具
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab —— 软件测试基座
API
RESTFul、GraphQL
Hooks
Webhooks、GitHooks
极狐GitLab CI / CD
测试报告
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab —— 质量门禁载体
集成外部工具报告
内置测试工具报告
强制代码审核
HTML报告
覆盖率检查
多重审批规则
流水线状态
All in
极狐
GitLab
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
准备工作
接口测试
性能测试
打基础:版本控制
单元测试
脚手架:CI / CD
UI测试
过滤网:代码扫描(质量扫描、安全扫描)
建议前置条件 建议开展顺序
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
接口测试
越底层发现的
Bug,修复成本
越低。
01
04
可通过可视化工
具或通过编码的
方式进行测试。
门槛低。
不依赖前端页面,
可以发现在页面上
发现不了的Bug。
02
容易实现自动化
,且相对比较稳
定,能提高测试
效率,降低人力
成本。
05
检查系统的安全
性、稳定性。如
后端的传参校验
。
03
可持续验证和更
新接口文档,避
免文档和接口本
身失效或异常。
06
人 工具 流程
后台开发
接口文档建立与管理接口调试
前端开发
接口文档管理接口数据Mock接口调试
测试人员
接口调试接口自动化测试
接口文档:Swagger、Yapi
接口测试:Postman、Postwoman、基于
Python开发
Mock:EasyMock、Mockito、mock.js
性能测试:Jmeter、Locust
All-In-One:Apifox
准备阶段
接口文档编写与评审,定义主要的测试用例
开发阶段
基于文档和Mock开发,编写测试脚本调试
测试阶段
CI/CD集成,测试环境下自动全量回归测试
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab接口测试
①
本地编写测试用
例
②
本地运行接口测
试
③
GitLab
CI/CD自动运
行
④
GitLab
Pages查看报
告
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
性能测试
01
性能测试环境应与其他环境(如UAT或生产环境)隔离
。
02
创建尽可能接近生产环境的性能测试环境。
03
多次运行性能测试以获得更准确的测试结果。
04
不要在两次测试之间更改性能测试环境。
05
性能缺陷越早发现越好补救。
性
能
测
试
负载测试
压力测试
浸泡测试
冲击测试
其他
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab性能测试(浏览器
)
①
内置
sitespeed.io
②
GitLab
CI/CD
简单配
置
③
GitLab
Pages查看报
告
④
合并请求评审依
据
Measuring performance shouldn’t be hard: you should be
able to have full control of your metrics, own your own
data and you should be able to do it without paying top
dollars.
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab性能测试
①
内置Grafana
K6
②
集成
JMeter
③
GitLab
Pages查看报
告
④
合并请求评审依
据
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
单元测试
类别 支持 反对
时间与效率 单元测试有助于提高Bug处理效率。 开发人员已经很忙了,单元测试可能会占据开发人员20~40%的
工作时间。
作用 单元测试与系统测试是互补而非代替关系,单元测试注重“
独立性”,系统测试注重“相关性”。
单元测试仅仅证明了这些函数做了什么,并不能保证系统功能正
确,还是得交给后面的系统或集成测试。
意义 单元测试对产品质量非常重要,它是软件测试中,最底层的
一类测试。
简单的程序没必要写单元测试,复杂的程序写了单元测试也覆盖
不全,单纯是忽悠领导。
文化思想 很多西方企业都写单元测试,对于开发人员来说这是理所应
当的事。
对于国内企业来说,测试工作基本上都是交给测试团队,而且整
体更关注功能。
建议开发人员:
优势:具备开发能力,
熟悉(自己的)代码。
劣势:缺少测试思维。
谁做?
最小可测试部件:
单个程序、函数、过程
、方法,包括基类、抽
象类、或者派生类中的
方法。验证变量、条件
、路径、返回是否正确
。
直接指标:
• 单元测试通过率
• 单元测试用例数量
• 单元测试覆盖率
间接指标:
• Bug总数、Bug趋势
• 千行Bug率
咋测? 效果?
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab单元测试
Best Unit Testing Tools in 2022
①
本地编写测试用
例
②
本地运行单元测
试
③
GitLab
CI/CD自动运
行
④
覆盖率门禁与评审依
据
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
UI测试
APP
UI测试
Web Desktop
逻辑 视觉
测试任务明确,不会频繁变动
每日构建后的测试验证
比较频繁的回归测试
软件系统界面稳定,变动少
需要在多平台上运行的相同测试案例
软件维护周期长
项目进度压力不太大
被测软件系统开发较为规范
具备大量的自动化测试平台
测试人员具备较强的编程能力
自动化>手动 手动>自动化
代替大量
重复性操作
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab UI测试
① 本地编写/录制测试用例
② 本地运行/调试UI测试
• GUI模式:专用测试机部署GitLab Runner运行测试
• Headless模式:使用容器并发运行无GUI的测试
③ GitLab CI/CD集成测试工具自动运行测试
④ GitLab Pages查看报告
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab效能度量
解决方案
©2023 JiHu (GitLab) | All rights reserved.
前置时间 变更失败率 可用性
部署频率 服务恢复时长
软件
开发
软件
部署
软件
运维
《加速: 全球 DevOps 状态报告》由 DORA (DevOps Research
and Assessment)组织发起,在过去6年 (2014~2019) 汇集了全
球超过 31,000名专业技术人员的调研和分析,是同类研究中规模
最大、持续时间最长的权威报告。它提炼出了业界著名的
DevOps 4 Key Metrics,并从实践和能力的角度提出了高效交
付软件的独到见解,使我们能够更好地认识哪些实践能带来更高
的软件交付效能,从而产生强有力的业务影响。
©2023 JiHu (GitLab) | All rights reserved.
2021全球 DevOps 状态报告
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
谷歌白皮书:DevOps 转型的投资回报率
潜在收益
每年避免的
非必要返工
成本
再投资产生
的收益
每年的停机
成本
每年避免的
非必要返工
成本
平均收入 福利系数
非必要耗时
百分比
每条业务线
试验的频率
组织中业务
线数量
创意的成功
率
创意的影响
力
产品业务规
模
节省并再投
入到新功能
的时间
部署频率 变更失败率
平均修复时
长
停机成本
拥有8500名技术人员,20亿美元业务规模,处于 DevOps 精英效能组织的 ROI 估算
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab DORA Key Metrics 支持
极狐GitLab的分析和度量支持群组级(Group)和项目级
(Project),即能够从部门和团队两个视角来衡量组织
的研发效能。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab 度量可视化能力 - 价值流图
价值流分析用于度量项目
或团队从商业想法到投入
生产所花费的时间。价值
流分析显示在软件全生命
周期中定义的每个阶段所
花费时间的中位数,以此
来以识别瓶颈,用客观数
据的方式促进团队根因分
析和持续改进。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab 度量可视化能力 - 洞察分析
洞察用于浏览特定时间段
创建/关闭的议题、合并请
求的平均时间等数据。可
在持续的一段时间内对数
据进行跟踪分析,根据数
据变化趋势,识别团队在
需求、缺陷、合并请求方
面的处理效率,可帮助团
队持续提高改进。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab 度量可视化能力 - 效能管理
效能管理可从多维度对群组、项目的开发人员进行绩效分析,包括完成议题数、代码提交次数、人均提交次数、人均代码
行数。可通过排行榜和效能报表对开发人员进行绩效统计,便于团队进行绩效管理,以及分析不同人员、项目之间的效率
差异。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab获信通院效能度量平台 创新突破级 认证
《研发运营一体化(DevOps)通用效能度量模型系统平台和工具
》
总体框架
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab软件供应链安全
解决方案
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
2021年2月,起亚汽
车遭勒索,黑客要求支付
1.35亿赎金,若当天不支付,将追加至2亿元
。
软件安全问题日趋严重
2021年3月,黑客组织攻陷了特斯拉摄
像头 供应商Verkada,特斯拉以及美国监狱、
警察局、医院和学校等15万个监控摄像数据遭泄露。
2021年4月,黑客通过勒索攻
击,窃取了苹果的设计蓝图,
索要5000万美元(约3.25亿元)赎金。
勒索软件
软件漏洞 开源及第三方组件风险
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
What —— 什么是软件供应链安全
安全是软件开发的生命线
一段代码就能瘫痪一座智能工厂,平均每个智能工厂就有52.5个安全漏洞……随着数字化转型的加速,工业互联网应用场景在快
速落地的同时,安全风险成了最大挑战。 —— 奇安信集团董事长齐向东
传统软件安全
软件供应链安全
在软件领域的供应链是指的是软件从开发到交付的全过程,软件的供应链安全是软件安全威胁的源头。在CNCF的《软件供应链
安全白皮书》中,强调了分层防御实践的重要性,并提供了从以下五个维度来提升软件供应链安全的整体方法。
开发阶段:源代码安全 开发阶段:三方库安全 编译阶段:流水线安全 打包阶段:制品安全 交付阶段:部署安全
软件供应链安全 SSCS
主要关注软件运行过程中的安全,一般是在软件发布、交付前后对软件应用的安全进行测试和评估。
软件
交付
软件
开发
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
Where —— 实现软件供应链安全的途径
安全红线:重量、高成本、低效率
DevSecOps:轻量、低成本、高效率
DevSecOps 是在软件开发过程的每个阶段集成安全测试的实践,它包括鼓励开发人员、安全专家
和运营团队之间协作的工具和流程,以构建既高效又安全的软件。DevSecOps 带来了文化转型,
使安全成为开发软件的每个人的共同责任。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
When —— 什么时间执行安全测试
DevOps + Sec:传统模式
• 在流水线中集成多种自动化安全扫描工具
• 代码发布、上线前集中扫描
• QA/安全人员把关,难以建立安全意识
• 出现安全问题修复成本高
DevSecOps:安全左移
• 在流水线中集成多种自动化安全扫描工具
• 每次代码提交时扫描、每次代码合并前扫描
• 安全门禁自动把关,人人对安全负责
• 出现问题及时修复,成本低,约为传统模式
的1/30
安
全
关
注
度
计划设计 开发构建 测试验证 部署发布 运行监控
安全左
移模式
传统安
全模式
持续安全扫描 胜于 单次安全检查
前期安全威胁分析 胜于 末期安全渗透测试
主动发现安全漏洞 胜于 被动等待漏洞报告
安全职责共享 胜于 独立安全团队
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
Who —— 软件供应链安全面向人员
开发人员 安全/运维人员 管理人员
DevSecOps
安全门禁
规则制定
执行视角
TODO
分析视角
Trend
管理视角
Total
代码提交
运行扫描
根据报告
修复漏洞
漏洞分析
改进策略
通过门禁
代码合并
特殊情况
特殊处理
企业安全仪表盘
安全左移 统一管理
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
Why —— 为什么选择极狐GitLab一体化DevSecOps平台
代码仓库
代码提交 代码主干合并 应用部署
忽略或创建议题
GitLab CI GitLab CD
开发团队
安全仪表盘
流水线安全报告
应用验证
网络安全通知
忽略或创建议题
安全团队
安全仪表盘
安全门禁
完整性:内置7种类型安全扫描,覆盖软件全生
命周期,配置简单,开箱即用。
统一性:统一管理界面,安全规则、漏洞报告
、漏洞追溯、任务分配,开展端到端的安全实践
。
领先性:Gartner、Forrest等全球知名测评机
构给与高度评价,在DevOps产品中处于领先水平
。
高性能:契合敏捷项目管理机制,能够与
DevOps结合,支持大规模用户的高并发检测。
可扩展:可以接入不同的商业化安全产品及解
决方案,如Black Duck、Fortify等。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:静态应用安全测试 SAST(开发阶段)
语言/框架 扫描工具
.NET Core, .NET Framework Security Code Scan
Any Gitleaks
Apex (Salesforce) PMD
C/C++ Flawfinder
Elixir (Phoenix) Sobelow
Go Gosec
Groovy, Java, Scala (Ant,
Gradle, Maven, & SBT)
SpotBugs with the find-
sec-bugs plugin
Helm Charts Kubesec
JavaScript & TypeScript ESLint security plugin
Kubernetes Manifests Kubesec
Node.js NodeJsScan
PHP phpcs-security-audit
Python (pip) bandit
React ESLint react plugin
Ruby on Rails brakeman
简介:
在编码阶段分析应用程序的源代码或二进制文件
的语法、结构、过程、接口等来发现程序代码存
在的安全漏洞。
功能:
• 支持多种编程语言
• 支持自定义扫描规则
• 分析源代码找出已知安全漏洞
• 自动对比源分支和目标分支漏洞报告
• 对比报告嵌入合并请求页面中展示
• 扫描结果统一呈现于漏洞报告页面
链接:
• GitLab SAST
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:依赖项扫描 Dependency Scanning (开发阶段)
简介:
分析代码引入的开源软件成分并检测开源软件组
件是否带有已知的漏洞,例如具有可用安全补丁
程序的过期库。
功能:
• 分析代码依赖项中的已知安全漏洞
• 基于GitLab Gemnasium技术
• 自动对比源分支和目标分支漏洞报告
• 对比报告嵌入合并请求页面中展示
• 扫描结果统一呈现于漏洞报告页面
• 依赖项清单统一呈现于依赖列表页面
链接:
• GitLab Dependency Scanning
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:许可证合规 License Compliance (开发阶段)
简介:
检测代码引入的开源软件组件是否是需要相应授
权许可的商业软件或第三方产品。避免存在法律
风险。
功能:
• 搜索代码依赖项中包含的相关许可证
• 基于License Finder
• 可自定义策略,允许或拒绝指定的许可证
• 自动对比源分支和目标分支许可证合规报告
• 对比报告嵌入合并请求页面中展示
• 扫描结果统一呈现于许可证合规页面
链接:
• GitLab License Compliance
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:密钥检测 Secret Detection(开发阶段)
简介:
密钥检测可扫描源代码中是否存在不应该提交
的敏感信息,如密钥、密码等。
功能:
• 基于Gitleaks
• 可通过正则表达式自定义扫描规则
• 自动对比源分支和目标分支漏洞报告
• 对比报告嵌入合并请求页面中展示
• 扫描结果统一呈现于漏洞报告页面
链接:
• GitLab Secrets Detection
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:容器扫描 Container Scanning(制品阶段)
简介:
对托管的容器镜像进行安全扫描,生成扫描报
告,暴露容器镜像内潜在的安全漏洞,并提供
修复建议。
功能:
• 对应用环境中的容器镜像进行静态扫描
• 使用开源工具Clair、klar, Trivy可扫描任
意类型的Docker (或Appc)镜像
• GitLab’s Klar扫描工具对Clair、Trivy进
行了包装,可以扫描容器。
• 结果呈现于合并请求和单一报告中
链接:
• GitLab Container Scanning
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:动态应用安全扫 DAST(预发布阶段)
简介:
模拟黑客行为对应用程序进行动态攻击,分析
应用程序的反应,从而确定该Web应用是否易
受攻击。
功能:
• 分析网站应用中的已知安全漏洞
• 进行被动(ZAP Baseline Scan)和主动扫描
(主动攻击审阅应用Review Apps)
• 支持HTTP凭据来测试密码保护部分
• 基于OWASP ZAProxy,增加支持认证
• 结果呈现于合并请求和单一报告中
链接:
• GitLab DAST
OWASP ZAP
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:Web API模糊测试(预发布阶段)
简介:
扫描工具通过API操作发送随机输入来触发例外
或崩溃,从而检测该Web应用是否存在安全问
题。
功能:
• 可用于检测其他工具可能遗漏的漏洞,建
议与其他扫描工具和测试一起使用
• 漏洞嵌入合并请求中展示
• 结果呈现于单一报告中
链接:
• Web API Fuzz Testing
支持的API类型
REST API
SOAP
GraphQL
Form bodies, JSON, or
XML
支持的输入类型
OpenAPI v2 or v3
specification
HTTP Archive (HAR)
Postman Collection v2.0 or
v2.1
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
完整性:覆盖率引导测试(预发布阶段 )
简介:
扫描工具向插桩的(instrumented)应用发送随
机输入来触发例外或崩溃,从而检测该应用是
否存在安全问题。
功能:
• 可用于检测其他工具可能遗漏的漏洞,建
议与其他扫描工具和测试一起使用
• 基于GitLab自有技术(收购自Peach Tech
及Fuzzit)
• 结果呈现于合并请求和单一报告中
链接:
• Coverage Guided Fuzz Testing
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
统一性:安全策略与安全门禁
安
全
策
略
安
全
门
禁
漏
洞
详
情
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
统一性:安全漏洞统一管理
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
统一性:安全漏洞闭环管理
设计编码
基于议题Issue在功能分支下进行
开发并提交代码,在功能分支下发
起代码合并请求Merge Requests
进行代码评审。
需求管理
根据漏洞快速创建议题Issue,可
将漏洞信息如描述、代码位置、标
识符、解决方案等自动关联到议题
。
持续集成
通过CI/CD流水线进行代码安全扫
描,扫描结果可集成在流水线、代
码合并请求中显示。并可将扫描结
果作为代码合并请求的安全门禁。
漏洞报告
漏洞报告可对默认分支下的所有漏
洞进行汇总和全生命周期管理,如
对漏洞进行追溯、评论、变更状态
。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
领先性:极狐GitLab安全扫描能力行业领先
Forrester 2021 Q1 静态应用安全测试报告
GitLab 与 SonarSource 处于 同等地位
Gartner 2022年应用安全测试魔力矩阵
GitLab是唯一处于挑战者象限的 DevOps 工具厂商
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
高性能:极狐GitLab支持并发安全扫描
极狐GitLab Server
极狐GitLab Runner 容器
传统安全扫描工具
串行扫描 VS 高性能并行扫描
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
可扩展:极狐GitLab支持与第三方安全扫描工具集成
可将第三方安全扫描工具集成到极狐GitLab CI/CD中,将扫描结果以极狐GitLab指定的格式输出。可在流水线、代码合
并请求、漏洞报告页面中查看第三方扫描工具检出的漏洞并进行管理。参考文档: Security scanner integration
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab代码防泄漏
解决方案
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
近年来源代码泄露事件
大疆前员工将含有公
司商业机密的代码上
传到GitHub公有仓库
苹果公司专有的
iBoot源代码被
泄露
Bibibili整个网站
后台工程源代码
泄露
黑客窃取AMD即将
发布的图形产品及子
集测试文件
微软、Adobe、联
想、任天堂等50家
知名公司源代码泄露
三井住友前员工因找
工作在GitHub上传
写过的部分源代码
2017 2018.2 2019.4 2020.3 2020.7 2021.1
某公司程序员把代码不经任何处理上传到了 Github 的公共代码
库,泄露了 IP 和用户名密码,导致黑客对整个数据库进行了拖库
,导致数据泄露。
• 酒店集团官网用户注册资料,大约 1.23 亿条记录,共 53 G。
包括姓名、手机号、邮箱、身份证号、登录密码等;
• 酒店入住登记身份信息,约 1.3 亿人身份证信息,共 22.3 G。
包括姓名、身份证号、家庭住址、生日、内部 ID 号;
• 酒店开房记录约 2.4 亿条记录,共 66.2 G。
包括内部 id 号,同房间关联号、姓名、卡号、手机号、邮箱、入住
时间、离开时间、酒店 id 号、房间号、消费金额等。
有史以来最大范围的一次源代码泄露。微软、Adobe、联想、
AMD、高通、联发科、通用电气、任天堂、迪士尼、华为海思等
50 家科技公司中招。
在互联网上失去对源代码的
控制,就像把银行的设计图
交给抢劫犯一样。
©2023 JiHu (GitLab) | All rights reserved.
代码防泄漏总体思路
登录安全
网络安全
授权安全
提交安全
Data loss prevention工具
审计事件
审计事件流
代
码
防
泄
露
事
前
事
中
事
后
• 添加注册黑白名单,限制注册。
• 禁止注册,完全通过AD/LDAP/SSO验证。
• 2FA双因素认证:防止密码泄露后被恶意登录。
• 可以针对群组设置IP白名单,控制访问网络。
• 以RBAC方式授权,可控制到群组、项目级别。
• 遵循最小权限授权。
• GPG签名:证明提交人身份。
• 数据加密:GitLab可与IPGuard等工具集成。
• 有多个级别审计事件记录。
• 管理员可以审计敏感动作。
• 审计事件实时发送到第三方平台进行分析审计。
注册安全
©2023 JiHu (GitLab) | All rights reserved.
事前-注册安全:注册限制
打开注册:通过email黑白名单限制
管理中心--设置--通用--通用限制
关闭注册:全部通过LDAP关联
所有能够登录的用户都通过LDAP/AD控制
©2023 JiHu (GitLab) | All rights reserved.
事前-登录安全:2FA双因素认证
实例级:极狐GitLab实例可全员开启 用户级:个人用户可选择开启
何谓2FA(双因素认证)?
单因素:密码
双因素:手机/key
等
黑客
系统
可直接登录
不可直接登录
©2023 JiHu (GitLab) | All rights reserved.
事前-网络安全:IP访问白名单
可在群组中添加公司内网IP地址为IP访问白名单
,防止员工在其他地点访问GitLab。不同群组
可设置不同的IP访问白名单。
群组-设置-通用-权限和群组功能-允许以下IP地
址访问
非IP白名单用户访问
©2023 JiHu (GitLab) | All rights reserved.
事前-授权安全:用户角色授权
GitLab 围绕群组和用户管理权的方
式具有高灵活性,可以根据组织或
项目团队的实际情况选择以群组授
权或用户授权。
通过引入最小特权原则(Least
Privilege)概念,循业界安全实践
进行权限管理,GitLab的 权限管理
设计模式确保其高追溯性。在现有
权限管理的基础上,GitLab 原生保
证了数据迁移功能,可适应多种标
准化分支迁移。
权限角色 权限说明 场景示例
Guest 无法对私有化项目做贡献,只能查
看议题和留言。
项目审计人员
Reporters 只读贡献者,可访问代码库但无法
写入,可以编辑议题。
产品经理
Developers 直接贡献者,代码库可读写,受更
高级权限管理(如保护分支)。
开发人员
Maintainers 项目维护者,拥有代码库的所有权
限。
项目经理、开发经理
Owners 群组级管理员,能够对群组和项目
进行全面管理。
部门总监
Admin 在群组级管理员权限之上,还有实
例管理权限。
系统管理员
Auditor 可以审计所有群组的事件,但是对
项目是只读状态。
安全管理员
©2023 JiHu (GitLab) | All rights reserved.
事前-提交安全:GPG证明提交人身份
GPG主要用来确定提交人的身份,防止被恶意篡改的代码进入源代码仓库。
使用方式: git commit -S -m "My commit message"
©2023 JiHu (GitLab) | All rights reserved.
事中-DLP工具集成
OA ERP GitLab
DLP
网关
解密
明文存储
加密
开发人员
工作电脑
Clone/Push/Pull
密文存储
仅指定软件可在
内存中解密打开
支持与多种DLP、零信任网关集成
支持禁用网页下载源代码
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
事后-审计事件与报告
审计事件
实例级
22类事件
群组级
16类事件
项目级
24类事件
审计事件与报告是针对管理员通过查看和审
查的方式,了解在GitLab中所发生的动态以
及这些操作的执行人的过程。审计事件是关
于GitLab内发生了什么、 何时发生以及谁
在GitLab内执行了该操作的单个记录。极狐
GitLab事件审计提供了以下特性:
• 高追溯性
• 高颗粒度
• 高灵活性
• 高简化度
• 时间敏感
• 组名和路径变更
• 储存库容量变更
• 群组的移除与建立
• 群组可见性变更
• 新增群组用户及其权限
• 群SAML登录记录
• 用户移除
• 项目储存库迁入
• 共享(及撤销共享)至群
组的项目及权限
• LFS 的禁用及启用
• 同时登录人数上限的变更
• 使用权限的启用与禁用
• 申请通道的启用与禁用
• 2FA的强制执行与宽限期
• 项目设立用户的变更
• CI/CD变量的变更
• 部署密钥的新增与移除
• 项目的设立、移除、更名、
迁移
• 可见性变更
• 新增(移除)用户极其权限
变更
• 项目的导出及下载
• 项目库的下载
• 项目的存档及删档
• 保护分支的建立与移除
• Release 的更新与并入
• 通过合并请求
• CI/CD 变量的变更
• 访问令牌的(试图)生成和
收回
• 默认设置的修改
• DAST档案的修改
• 合规框架的变更
• 登录及失败登录记载
• SSH秘钥的添加
• 邮件的删除与添加
• 密码变更
• 重置密码请求
• OAuth通道请求
• “模拟”起止
• 用户名更改
• 用户的新增与移除
• 权限申请
• Admin Area的权限记录
• API的阻止访问记录
• SFA的阻止访问记录
• 用户访问令牌生成和收回
• 管理员的添加与移除
• SSH秘钥的移除
• GPG秘钥的添加与移除
©2023 JiHu (GitLab) | All rights reserved.
事后-审计事件
作者:谁进行了对应操作
对象:作用在什么项目上
操作:具体的操作,比如改用户权
限,改时间等等
目标:针对于哪个对象进行
IP地址:操作人的IP地址
日期:操作的时间戳
©2023 JiHu (GitLab) | All rights reserved.
事后-审计事件流:发送到第三方平台实现实时告警
极狐GitLab中可定义
多个审计事件流接收者
第三方平台分析
(ELK)
异常行为实时告警
可审计代码Push/Pull事件
审计事件
审计告警
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab SaaS
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab SaaS 介绍
极狐(GitLab)推出的极狐GitLab SaaS (JihuLab.com),旨
在为中国用户提供从源代码托管到开发运维的全栈式一体化
DevOps SaaS平台与企业级专家咨询服务。
为企业的研发团队、运维团队、DevOps团队、安全团队等
提供开箱即用的DevOps能力,降低企业DevOps平台运维
成本,提高部署和升级效率。
高投资回报
极狐GitLab SaaS提供开箱即用的DevOps能力, 使得软件通过
自动化、协作、快速反馈和迭代改进来加速交付,帮助降低开发
流程成本,缩短上市时间,提高技术人员生产力和团队效能。
安全可靠
获取国家等保三级资质,企业级订阅许可证、源代码管理、支付
系统等均在中国境内管理,受中国法律保护,为企业用户以及个
人用户最大限度地保障数字资产安全。
灵活便捷
落地中国的云服务模式,用户以按需使用的便捷地方式消费世界
顶级的DevOps SaaS服务,并可体验到更加全面、完善和及时的
的本土化售后服务与支持。
开源协作
提供基于Git技术源代码托管能力,在研发协作方面增加大量的社
交化功能,让研发协作之间更加顺畅,为个人与团队参与开源贡
献并发展开源项目提供优质的平台。
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab SaaS 与 自部署 对比
对比内容
极狐GitLab
SaaS
极狐GitLab
自部署
基础设施 极狐提供 客户提供
实例全局配置 所有用户相同 客户自定义
访问控制 群组级 实例级
日志审计 无法直接访问 访问不受限
使用报告 群组级别 实例级别
升级维护 极狐负责 客户负责
计算
存储
网络
虚拟化
操作系统
极狐GitLab
数据
应用
用
户
负
责
极狐GitLab 自部署
计算
存储
网络
虚拟化
操作系统
极狐GitLab
数据
应用
用户
负责
极
狐
负
责
极狐GitLab SaaS
● 极狐GitLab SaaS 无需用户安装,注册即可开启云端使用。极狐作为服务的提供方,负责SaaS服务的高可用架构、
灾备恢复等维护;用户为服务等消费者,最高权限为群组所有者(Group Owner)。
● 极狐GitLab On-Premise 版由用户自部署在任意环境。用户拥有管理员最高权限,负责极狐GitLab服务及其依赖的
基础架构的运行维护及使用。
©2023 JiHu (GitLab) | All rights reserved.
极狐GitLab资质与评价
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
资质认证
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
知识产权
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
Forrester 关于DevOps工具评价
公约的力量:利用全球超过100,000多个公司和组织的DevOps最佳实践。
每个人都可以做出贡献:由2200多个热情和能建言献策人和组织组成, 并共
同为全球社区贡献代码。
共创:GitLab具有成千上万的公共功能提案,为客户驱动的创新。
持续创新:自2011年以来,GitLab一直在每月22日发布新功能/创新。
开源开放生态:建立在强大的开源技术的基础上。
2021 Q1 Forrester 静态应用安全测试报告
与 SonarSource 公司处于 同等地位
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
2021年企业级敏捷管理工具
领导者象限
2022年应用安全测试
唯一处于挑战者象限的 DevOps 工具厂商
©2023 JiHu (GitLab) | All rights reserved.
©2023 JiHu (GitLab) | All rights reserved.
信通院《2021中国 DevOps 现状调查报告》
• 安全可控的源码管理功能是企业私有化部
署的首选,采用率53.45%,位列第一;
• 高度自动化可编排的CI/CD流水线采用率
仅次于Jenkins,位列第二。
©2023 JiHu (GitLab) | All rights reserved.
国际知名分析机构认证
Forrester:
● “Leader” Forrester Q3 2017 CI Wave
● Now Tech for CDRA
● Now Tech for VSM
● New Wave for VSM*
● Wave for CDRA
● Now Tech for Software Composition
Analysis (SCA)
Gartner:
● “Visionary” 2019 Enterprise Agile Tool
MQ
● MQ for ARO*
● Hype Cycle for I&O Automation
● Hype Cycle for DevOps
10 Major analyst reports
2018 Gartner Peer Insights Customers'
Choice for Application Release Orchestration
Customers’ Choice recognition
Hack your culture to drive
Quality and DevOps
success
Vendor case study
Innovator award
Agile Code Development
Technologies 2018
# additional reports
GitLab mentioned in
20
new major reports
coming in 2019
2
©2023 JiHu (GitLab) | All rights reserved.
空白演示
单击输入您的封面副标题

More Related Content

PDF
How to integrate GitLab CICD into B2B service
PPTX
2021 ee大会-旷视ai产品背后的研发效能工具建设
PDF
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
PPT
intra-mart Accel series 2025 Spring updates-zh-Ver.2.ppt
PPT
intra-mart Accel series 2025 Spring updates-zh.ppt
PDF
CollabNet TeamForge 8.0 简介 (Chinese)
PPTX
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
PDF
.NET Conf 2024 :利用 Azure 實現平台工程,從概念到實踐,如何完成導入企業內部
How to integrate GitLab CICD into B2B service
2021 ee大会-旷视ai产品背后的研发效能工具建设
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
intra-mart Accel series 2025 Spring updates-zh-Ver.2.ppt
intra-mart Accel series 2025 Spring updates-zh.ppt
CollabNet TeamForge 8.0 简介 (Chinese)
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
.NET Conf 2024 :利用 Azure 實現平台工程,從概念到實踐,如何完成導入企業內部

Similar to 极狐 GitLab 一站式 DevOps 解决方案 v1.10 docuemnt (20)

PDF
01 DevOps and Azure DevOps overview
PPTX
我們與Azure DevOps的距離
PPTX
极速 Angular 开发:效能调校技巧 (ngChina 2019)
PPT
Software Engineer Talk
PPTX
Jira live demo_2020_v20
PDF
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
PDF
QCon - Engineering Productivity in Large Scale Development
PDF
MiCloud服務提供者訓練
PDF
Event6-Build_With_AI_2025_Slide_Vertex_AI
PPTX
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
PDF
2020 gops-旷视城市大脑私有云平台实践-刘天伟
PDF
01.ofm11g概览
PDF
Top100summit前端的云时代支付宝前端平台架构 王保平
PPTX
2019 Cloud Native Forum, Taipei
PPTX
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
PDF
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
PDF
4. Go 工程化实践-0124-v2.pdf
PDF
美团点评技术沙龙05 - Node.js业务应用实践和服务监控
PPTX
2024/11/29 DevOps Taiwan #64 : 從初建到進階:打造符合公司需求的混合雲端 GitLab DevOps 流水線
PDF
Istio简介
01 DevOps and Azure DevOps overview
我們與Azure DevOps的距離
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Software Engineer Talk
Jira live demo_2020_v20
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - Engineering Productivity in Large Scale Development
MiCloud服務提供者訓練
Event6-Build_With_AI_2025_Slide_Vertex_AI
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2020 gops-旷视城市大脑私有云平台实践-刘天伟
01.ofm11g概览
Top100summit前端的云时代支付宝前端平台架构 王保平
2019 Cloud Native Forum, Taipei
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
4. Go 工程化实践-0124-v2.pdf
美团点评技术沙龙05 - Node.js业务应用实践和服务监控
2024/11/29 DevOps Taiwan #64 : 從初建到進階:打造符合公司需求的混合雲端 GitLab DevOps 流水線
Istio简介
Ad

极狐 GitLab 一站式 DevOps 解决方案 v1.10 docuemnt

  • 1. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab一站式DevOps解决方案 武让 极狐GitLab解决方案架构师
  • 2. ©2023 JiHu (GitLab) | All rights reserved. 9. 极狐GitLab代码质量解决方案 10. 极狐GitLab软件测试解决方案 11. 极狐GitLab效能度量解决方案 12. 极狐GitLab软件供应链安全解决方案 13. 极狐GitLab代码防泄露解决方案 14. 极狐GitLab SaaS 15. 极狐GitLab资质与评价 1. 极狐GitLab简介 2. 极狐GitLab一体化DevOps平台 3. 极狐GitLab专业服务 4. 极狐GitLab带来的价值 5. 极狐GitLab高可用部署解决方案 6. 极狐GitLab项目管理解决方案 7. 极狐GitLab版本控制解决方案 8. 极狐GitLab CI/CD解决方案
  • 3. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab简介
  • 4. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. GitLab 是全球最受欢迎的企业级解决方案之一 广泛应用 ● 100,000+ 企业机构 ● 千万级用户 ● 70% 自部署市场份额 强大社区 ● 开放核心模式 ● 3,000+ 代码贡献者 ● 10,000+ 社区贡献者 快速迭代 ● Major: 年度发版 ● Minor: 月度发版 ● Patch: 随修随发 GitLab Inc. 公司成立于2014年,2000+员工分布在全球60个国家,践行全员远程办公 。 GitLab Inc. 围绕 GitLab 开源项目构建商业模式和先进产品,提供的企业级解决方案在 全球拥有约3000万用户。成功于2021年10月在纳斯达克上市,首日收盘市值149亿美金 。
  • 5. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐(GitLab) 公司介绍 全球领先 技术实力 合资3.0模式中国企业 立足中国、开源文化、自主可控、联结世界 知名投资 机构加持 红杉宽带 高成资本 淡马锡 GGV纪源资本 泰康人寿 联想创投 上海人工智能产业基金 诺基亚成长基金 Alpha Prime 干杯基金 天堂硅谷 独家且不可撤销的GitLab品牌和IP授权 独立自主研发权 中国公司自主管理,独立运营 遵循中国《个人信息保护法》和《数据安全法》, 基础设施和数据独立存放于中国境内,不与国外共享 源码开放,任何人都可以访问,并参与贡献 https://jihulab.com/gitlab-cn
  • 6. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 上游优先(Upstream First) 研发协作模式 • 基于GitLab主干分支镜像至极狐代码仓 • 源代码实时同步到极狐在国内的服务器 • 新增极狐目录,针对国内用户功能开发 • 极狐GitLab发行版涵盖 CE/EE全部功能 GitLab开源项目代码贡献量全球第二位
  • 7. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐(GitLab) 价值定位 产品:一体化DevSecOps平台 • 面向软件全生命周期的所有角色人员 • 提供软件开发和运维端到端所有功能 • 支持云端SaaS和私有化两种版本形态 服务:专业赋能 • 7x24小时专业线上支持服务 • 客户现场技术咨询和交付服务 • 线上/线下原厂培训认证服务 生态:开源开放 • 标准版代码开源/企业版代码开放 • 多供应商产品集成与联合解决方案 • 开源社区与非营利性联盟构建和运营 构建现代化软件创新工厂,助力企业数字化转型升级
  • 8. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab一体化 DevOps平台
  • 9. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 传统DevOps平台 项目经理 产品经理 开发工程师 测试工程师 运维工程师 安全工程师 安全扫描 项目管理 需求管理 代码管理 持续集成 制品管理 持续部署 配置管理 运行监控 安全防护 成本 效率 体验
  • 10. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 一体化DevOps平台的价值 通常,用于数字产品开发的传统工具 链是通过许多领域工具集成在一起形 成。在某些情况下,这些系统依赖第 三方插件进行集成以匹配特定的汽车 软件研发运维场景。 这些集成的定义和设计通常都比较脆 弱,进而导致整个软件研发端到端过 程的不稳定性。 由于数据分散在各个系统中,通常需 要保存多份,因此往往也导致审计非 常困难。 用于软件产品开发的众多工具链所带 来的运维工作既有风险,成本也昂贵。 一体化平台的价值 企业花更少的时间维护工具,投入更多的时间研发软件 产品。 通过单一的用户数据库和审核,保证工作的可跟踪性、 可追溯性和可审核性。 自动化重复的工作任务,提供更高的工作吞 吐量和效率。 确保整个软件的开发和运维过程是安全、一 致且防篡改。 多工具带来的挑战
  • 11. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab一体化DevOps平台 项目经理 产品经理 开发工程师 测试工程师 运维工程师 安全工程师 安全扫描 项目管理 需求管理 代码管理 持续集成 制品管理 持续部署 配置管理 运行监控 安全防护 统一的交互界面 统一的权限体系 统一的数据模型 统一的商业授权
  • 12. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab各版本功能对比 标准版 基本的代码管理、CICD能力 适合开源社区和个人用户 专业版 增强流程管控、提高协同效率 支持企业级部署方案、提供技术兜底 旗舰版 开箱即用的DevSecOps解决方案 增强企业级安全合规能力 开源 MIT许可。 基础的任务管理: ✔ 群组 ✔ 议题 ✔ 看板 基础的源代码管理: ✔ 版本控制 ✔ 分支管理 ✔ Web IDE ✔ Pages 静态网页托管 ✔ 大文件上传 基础的 CI/CD 流水线: ✔ 自动化编译、构建、部署 ✔ 多种部署方式 制品库管理: ✔ 软件包库 ✔ 镜像库 ✔ 基础设施库 包含标准版所有功能。 更规范的流程管控: ✔ 推送规则:规范提交信息、分支命名,限制大文件上传 ✔ 分支管理员:分支推送、合并权限精确到用户 ✔ 代码负责人:指定文件、文件夹的负责人,限制目录写入 ✔ 强制审批:多人多角色审批、自定义审批规则 ✔ 自动化测试:代码质量扫描、覆盖率扫描、测试报告集成 ✔ 审计事件:人员行为记录与分析 更高效的研运协同: ✔ 敏捷项目管理:史诗、议题、标记、路线图、看板、迭代、燃尽图 ✔ CI/CD 流水线:流水线面板、部署审批、合并结果流水线 ✔ 效能度量:代码贡献量统计、价值流分析、DORA 4 Keys指标 更可靠的部署方案: ✔ 企业级高可用,支持多副本部署,支持两地三中心跨地域部署 ✔ 企业级高性能,支持横向扩展 ✔ 企业级容灾:支持数据热备份 更专业的服务保障: ✔ 关于安装部署、升级迁移、用户使用、系统维护的原厂支持和保障 ✔ 完善的SLA机制,最高7 * 24小时在线支持 包含专业版所有功能。 一站式DevSecOps平台: 安全扫描完整性: ✔ 覆盖7种类型安全扫描:SAST、依赖项 扫描、许可证合规、密钥检测、DAST、 镜像扫描、模糊测试 安全扫描统一性: ✔ 漏洞统一、闭环管理 ✔ 自定义安全门禁,安全左移 ✔ 漏洞详细描述、漏洞解决方案 安全扫描先进性: ✔ Gartner、Forrester等权威机构评测领先 安全扫描高性能: ✔ 支持并发扫描 安全扫描可扩展: ✔ 支持与其他安全扫描工具如SonarQube 、Fortify、BlackDuck集成
  • 13. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab功能架构图(15.7) 平台管理 项目管理 源代码管理 CI管理 制品库管理 安全管理 发布管理 配置管理 运维监控 防护管理 2016 2011 2011 2012 2016 2017 2016 2018 2016 2019 子群组 议题管理 源代码管理 持续集成 软件包库 静态应用测试 持续交付 Auto DevOps 告警管理 容器扫描 AD/LDAP集成 标记管理 代码评审 单元测试 容器镜像库 依赖项扫描 特性标签 K8S管理 指标看板 漏洞自动修复 群组白名单 设计管理 Wiki APP预览 Helm Chart库 许可证合规 发布管理 IaC 产品分析 安全策略 审计事件 服务台 WebIDE 代码质量报告 基础设施库 密钥检测 环境管理 密钥管理 错误追踪 AD/LDAP同步 范围标记 Pages 性能测试 依赖代理 动态应用测试 环境看板 GitOps工作流 Runner监控 SAML同步 议题看板 代码片段 合并结果流水线 API模糊测试 环境保护 ChatOps钉钉 OnCall排班管理 群组Webhooks 议题权重 LFS大文件存储 合并列车 覆盖率引导模糊测试 部署审批 升级策略 合规框架 多指派人 多人/角色评审 流水线看板 漏洞报告 DORA关键指标 价值流管理 史诗管理 强制评审 外部仓库流水线 合规报告 效能管理 路线图 推送规则 多项目流水线可视化 安全仪表盘 高可用部署 燃尽/燃起图 群组Wiki 合规流水线 从漏洞创建议题 GEO多地部署 多级史诗 代码负责人 高级搜索 自定义实例模板 维护模式 自定义项目模板 审计事件流 标准版 专业版 旗舰版
  • 14. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab集成与扩展 1.9k ⭐️ Used by 5.1k users Python-gitlab is a python wrapper for GitLab API APIs on every GitLab component API & hooks Better than Atlassian JIRA integration Well-maintained GitLab plugin for Jenkins Display scanning result in GitLab SonarQube Seamless GitLab CI/CD with GitHub SCM Integrates with hundreds of existing applications Applications 1.8k ⭐️ Used by 2.6k users Go-gitlab is a golang wrapper for GitLab API 800+ ⭐️ Used by 400+ users GitLab4J API (gitlab4j-api) provides a full featured Java client library for working with GitLab repositories via the GitLab REST API 1.2k ⭐️ Used by 600+ users GitLab API NodeJS library with full support of all the Gitlab API services. python- gitlab go-gitlab gitbeaker gitlab4j- api
  • 15. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab专业服务
  • 16. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab客户支持SLA 影响级别 SLA响应时间 工作时间 提交方式 紧急情况 30 分钟 24x7 在极狐(GitLab)支持门户新建一张工单。 紧急事件可直接发送邮件至紧急支持邮箱。 高级影响 4 小时 12x5 在极狐(GitLab)支持门户新建一张工单。 中级影响 8 小时 12x5 在极狐(GitLab)支持门户新建一张工单。 低级影响 24 小时 12x5 在极狐(GitLab)支持门户新建一张工单。 自部署版本: • 参考架构的支持服务:按GitLab推荐的可扩展架构来安装部署的架构,被定义为参考架构。支持工程师将与您 的技术团队合作,共同解决在参考架构实施后遇到的问题。 • 实时升级协助:您可以预约日程安排支持工程师协助您升级GitLab JH。我们将协助您发起实时屏幕共享,帮 助您完成整个过程并确保顺利完成升级任务。
  • 17. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab专业服务 实施服务 迁移服务 教育服务 集成服务 咨询服务 内源建设
  • 18. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab原厂培训认证服务 课程:极狐GitLab CI/CD 认证:极狐GitLab CI/CD 专员 课程:极狐GitLab项目管理 认证:极狐GitLab 项目管理专员 课程:极狐GitLab 安全基础 认证:极狐GitLab 安全专员 课程:极狐GitLab与Git基础 认证:极狐GitLab 专员 课程:极狐GitLab系统管理 认证:极狐GitLab 系统管理专员 https://about.gitlab.cn/services/education
  • 19. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab RaaS远程办公专家培训 远程办公实践经验: 1. 千人规模 Fully-Remote 2. 8年远程办公实践,积累5000页Handbook 3. 发布远程办公Playbook,入选哈佛商学院和欧洲工商管理学院核心案例 RaaS专家培训: 学习目标 • 介绍远程办公定义 • 极狐GitLab远程宣言 • 企业远程办公阶段定义 • 极狐远程办公方法论 课程体系 • 高管课程 • HR课程 • 技术课程 • 试听课程 课程构成(高管课程 ) • All Remote介绍 • 极狐全远程实践示范 • 案例分析和讨论 • 远程工具介绍 • 4小时授课+1小时练习题+1小时考试
  • 20. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab带来的价值
  • 21. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 项目管理可视化 降低沟通成本 极狐GitLab 采用数字化产品精益需求和敏捷迭代 等方法论构建的功能特性,将需求和计划以群组、 项目、里程碑、路线图、迭代等多个维度进行关 联。采用精益看板将任务的状态和进度进行可视 化,辅助管理者和团队实时把握项目进度,尽早 识别出项目风险并采用合理的应急措施。 极狐 GitLab 提供了通过多元化的抽象,将需求、 计划、任务、资源等进行关联,实现项目管理的 可跟踪、可估算、可追溯和可管控。 ● 多级群组管理,多层级项目或团队划分 ● 产品路线图管理,功能需求分解与排期 ● 里程碑管理,项目时间与任务计划 ● 议题管理,功能需求阐明与任务指派 ● 精益看板,可视化任务状态与进度 ● 时间跟踪,预估和实际使用时间记录 项目进度跟踪 任务管理与指派 资源使用评估 项目时间计划 适用场景
  • 22. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 软件研发合规化 提高产品质量 极狐GitLab中的版本控制功能帮助您的开发团队 组织协作,最大化地提高生产力,实现快速交付并 提高团队写作透明度。借助基于Git的存储库,极 狐GitLab支持清晰的代码审查、资产版本控制、 反馈循环和强大的分支模式等,帮助您的开发团队 解决问题,产出价值。 源代码管理是DevOps生命周期中至关重要的一环 ,帮助团队使用单一身份信息源(SSOT) 管理源代 码。 ● 角色授权,支持多种角色对应不同权限 ● 分支管理,多人基于分支协同开发 ● 推送规则,自定义代码提交和推送规则 ● 代码评审,多人多重规则强制审批 ● 仓库镜像,同步代码库之间的数据 ● 高级搜索,支持代码全局搜索 ● 审计报告,人员操作行为记录与分析 规范代码提交 代码强制审核 版本追溯控制 多人协同开发 适用场景
  • 23. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 软件交付自动化 降低试错成本 极狐GitLab 深耕现代化软件开发中涉及的持续集 成、持续交付和持续部署等经典行业实践,打造 了强大的极狐GitLab CI/CD 功能,实现软件生产 过程的高度自动化作业,提升软件交付效率,降 低人工投入成本。 极狐 GitLab 提供了兼容多基础设施多操作系统的 Runner组件,通过流水线即代码的方式将代码、 构建、制品、测试、部署和发布等步骤通过可定 制、可编排的流水线任务进行串联和打通,实现 全过程的无人值守。 ● 多类型流水线,支持灵活自定义 ● 配置文件模板,降低使用成本 ● 流水线报告,可视化任务执行结果 ● 工具集成,串联多种工具生态 ● 自动伸缩,提升基础架构利用率 工程化任务编排 一键式部署发布 信息端到端追溯 软件交付自动化 适用场景
  • 24. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 安全合规常态化 降低风险成本 极狐 GitLab 围绕 DevSecOps 最佳实践,将应用程序 安全和合规前置到软件开发生命周期,基于自动化流水 线对软件全生命周期进行全面的安全扫描和防护,最后 提供全面且结构化的安全报告供团队和安全部门进行分 析,并结合议题功能进行安全问题修复的计划和跟踪。 极狐GitLab 提供 DevSecOps 实践所涵盖的全方位安 全与合规能力,并提供开箱即用的方式降低用户使用成 本。 ● SAST静态安全检测,识别代码安全漏洞和风险 ● DAST动态安全检测,识别应用安全漏洞和风险 ● 软件依赖检测,识别第三方依赖安全漏洞和风 险 ● 软件许可合规检测,识别开源许可合规性风险 ● 代码库内密钥探测,识别密码泄漏风险 ● 容器镜像安全扫描,识别容器基础镜像风险 开源软件许可合规 应用动态安全探测 项目非功能性验收 代码安全漏洞识别 适用场景
  • 25. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 质效度量数据化 降低决策成本 极狐 GitLab 作为一体化的 DevOps 研发运维平 台,通过对多角色在平台过程中产生的关键性指标 数据的采集、存储、提取和呈现,从全局到局部、 从组织到个人、从管理到一线等多个方面构建全面 的效能度量体系。 极狐GitLab 提供面向企业、部门和团队的多级度 量指标,从效率、质量和成本等维度提供多维视角 的数据化和可视化衡量。 ● 人员贡献量分析,衡量项目组和成员的贡 献 ● 议题任务分析,衡量项目组的任务和工作 量 ● 代码仓库分析,衡量软件的代码质量 ● 流水线分析,衡量项目组的自动化程度 ● 价值流分析,衡量项目组的工作流动效率 人员贡献量度量 自动化效率度量 代码质量度量 项目工作量度量 适用场景
  • 26. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab经济性分析 ⮚ 开发和交付效率提升 87% ⮚ 应用发布数量增加 12倍 ⮚ 代码缺陷数降低 80% ⮚ ROI 提升 407%
  • 27. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab高可用部署 解决方案
  • 28. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab 高可用可扩展架构 用户请求流量 七层负载均衡 服务发现 服务监控 Web/API/SSH 服 务 后台作业处理 代码仓库存储 关系型数据库 缓存与队列 持久数据副本集 缓存数据副本集 数据库副本集 对象存储 文件存储 搜索引擎 应用服务层 数据库层 代码存储层 文件存储层 全局搜索层 基础架构层 极狐GitLab的高可用和扩展性源自全球最 大代码托管平台之一的 GitLab.com 十多 年的技术实践沉淀。 在整体架构设计上不存在单点故障,并结 合负载均衡、水平伸缩、分布式架构、主 从多副本机制和云原生等多种机制,实现 理论上无限扩展的能力。 极狐GitLab还提供了支撑从1000人到 50000人规模的架构最佳实践参考和专业 服务支持。为企业构建高度可靠DevOps研 运平台保驾护航。
  • 29. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab GEO多地域部署架构 ▪ 各节点分别有各自的服务器和存储 ▪ 一主多从架构,主从配置不必完全一致 ▪ 用途 • 通过访问就近节点加速 • 负载分担 • 准实时备份 • 灾难恢复 ▪ 参考链接 https://docs.gitlab.com/ee/administration/geo
  • 30. ©2023 JiHu (GitLab) | All rights reserved. 高可用+多地域部署架构实例化参考 主实例(HA)– 北京Pod1(官方推荐+原厂支持) ▪ GitLab系统各产品组件采用分布式部署 ▪ 外部和内部负载均衡帮助应对和分发所有前端请求 ▪ Prometheus+Grafana用于统一监控GitLab平台 ▪ Elasticsearch集群负责全局代码搜索 ▪ 各服务端点保持主从或多活集群配置,避免单点隐患 ▪ Gitaly集群技术支持可提供更高的容错,目标RPO<1m, RTO<10s ▪ 对象存储持久共享数据,可带来更好的性能和可用性 ▪ 数据库亦可用内部PaaS方案,减少运维负担 同城实例 – 北京Pod2(可选) ▪ GitLab单实例部署并借助专业的全系统Geo数据复制实现同城实例 级别高可用 ▪ 同城辅助节点可用于缓解主节点Git流量减少带宽压力,降低主节 点故障切换时间,也可视为同城主从 异地实例 – 上海(必要) ▪ 借助Multi-Geo既可实现异地灾备 ▪ 亦可为其他区域“研发中心”提供就近加速访问(仅拉取或克隆) 北京 pod1 北京 pod2 上海
  • 31. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. Gitaly Cluster 高可用Git仓库服务 组件构成: • Load Balancer - 分发外部请求 • Praefect集群 - 管理集群,分发读写 请求 • Tracking DB - 保存集群元数据 • Gitaly节点 - 提供Git仓库存储和访问 主要功能: • 分布式读取 • 强一致写入保证 • 仓库级副本参数设置 • 自动故障切换 • 数据复制缺失自动检测与修复
  • 32. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab项目管理 解决方案
  • 33. ©2023 JiHu (GitLab) | All rights reserved. 组织管理 灵活匹配企业组织架构 项目里程碑 群组里程碑 迭代 路线图 路线图 群组Group 子群组Sub Group 项目Project 组织层级 Epic (Capability:史诗) Sub Epic (Feature:特性) Group Issues, roll-up from Sub Groups and Projects; e.g., Release, Iteration 用户需求 进度跟踪 协作 追踪 Project Issues, (Story:用户故事 ) single Project(s); e.g., Sprint
  • 34. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 需求规划 清晰条目拆分与产品规划 史诗故事 Epic 特性故事 Feature 用户故事 Story INVEST 原则 路线图
  • 35. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 议题管理 线上化需求澄清和验收协作 议题描述 验收协作 人员指派 史诗关联 属性标签 计划关联 截止日期 工时统计 代码关联
  • 36. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 标记管理 自定义议题类型
  • 37. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 看板管理 多维度议题视图
  • 38. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 迭代管理 项目周期性管理
  • 39. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 文档管理 文本与大文件管理 支持Markdown 支持富文本 支持在线协同 支持版本控制 文本类 文件类 Git LFS
  • 40. ©2023 JiHu (GitLab) | All rights reserved. 主流项目管理系统集成 项目(敏捷) 项目(瀑布) 迭代1 迭代N 分解/指派任务 (内测)版本 测试单 验收通过 用例 功能需求 计划会议 关联 关联 BUG 计划/估算 需求 设计 开发任务 测试 实时同步 发布 需求任务与代码提交、代码合并关联
  • 41. ©2023 JiHu (GitLab) | All rights reserved. 项目管理系统集成效果示例:Jira 集成效果: • Jira Issue问题跟踪、活动日志中显示关联的GitLab提交、合 并请求信息 • GitLab提交、合并请求信息中直接打开关联的Jira Issue • GitLab提交、合并请求信息中评论Jira Issue、设置Issue状 态、跟踪Issue时间 • Jira Issue的开发面板中展示GitLab提交、合并请求的数据 • GitLab支持从JIRA直接导入议题
  • 42. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab版本控制 解决方案
  • 43. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab Workflow 核心功能 ● 基于Issue快速创建功能分支 ● 通过Git Push创建合并请求MR ● 推送规则 核心功能 ● 合并请求批准 ● 代码合并后自动关闭Issue ● 合并结果流水线
  • 44. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab Workflow示例 发布 需求 • 产品经理创建issue • 团队成员进行讨论 设计 • 项目经理将issue指 派给开发人员 • 开发团队针对issue 进行技术讨论 编码 • 开发人员基于issue创 建一个feature分支( 创建自master分支) 并创建feature到 master分支的MR • 开发人员提交代码 • 通过CI进行自动构建, 执行代码质量扫描和单 元测试,发布到测试/ 预览环境 审批 • 开发人员、测试人员将 需求issue和bug issue 关联到MR • 项目经理、产品经理、 技术主管、架构师对 MR进行审批 测试 • 测试人员在测试/预览 环境下进行测试(手 动或基于流水线的自 动化测试) • 测试人员将bug、缺 陷通过issue的方式进 行反馈,并对开发人 员已经修复的bug进 行验证 • 开发人员重复编码过 程,直到通过测试 • 发布团队合并 MR,发布并部 署新版本 • 自动删除featur 分支, 自动关闭 issue • 监控应用性能 • GitLab使用分析 、效能评估
  • 45. ©2023 JiHu (GitLab) | All rights reserved. GitLab版本控制最佳实践 了解GitLab Flow Determine a branching strategy 选择分支策略 软件项目常依靠跨团队、多名员工 的共同协作,工作流程中可能会出 现代码冲突。为防止代码混乱,团 队应确定并广泛推广唯一的分支策 略。 常见的分支策略: • Git Flow • GitHub Flow • Trunk-based Development • GitLab Flow 了解推送规则 对于每个commit,应当反映 commit的意图,而不仅仅是 commit的内容。有助于团队成员更 直观的看到commit可能引起的变化 。 此外,对于commit message也需 要进行规范化管理。如 • Angular 规范 • Conventional Commits 规范 可使用GitLab 推送规则验证和控制 commit message规范性。 Write descriptive commit messages 描述提交信息 了解合并请求审查 定期进行代码评审,可防止不稳定 的代码被提交并确保代码质量持续 改进。团队成员可以审核任何人的 代码并提供建议。 使用GitLab代码合并请求审查规则 功能,可以设置哪些类型的用户能 够参与合并请求批准,以及合并代 码之前最少需要多少用户批准。更 有利于建立流程化的代码评审机制 。 Conduct regular code reviews 定期代码评审 了解从Issue创建分支 基于分支策略,使用代码分支进行 开发,团队成员可以在不影响主代 码库的情况下进行代码修改。并在 代码分支中跟踪修改历史。当代码 准备就绪时,可以合并到主分支中 。 如使用GitLab Flow,开发人员可基 于issue或某个需求创建功能分支, 在该分支下进行开发和修改,直至 该需求开发完成后,再合并到主干 分支Master(Main)中。 Develop using branches 基于分支开发 了解贡献分析 传统开发过程中,开发人员只有在 项目上线前夕才会集中提交代码, 不仅存在代码丢失的风险,还存在 较多代码冲突的风险。此外通过一 次集中式的commit难以识别开发了 哪些功能,对于上线或者回退造成 极大影响。 按需求或者较细粒度的进行commit ,有助于降低软件项目整体风险。 此外,按照需求功能进行commit, 也有助于形成透明协作的工作文化 。 Make frequent small changes 小步快跑提交
  • 46. ©2023 JiHu (GitLab) | All rights reserved. 常见分支策略 Git Flow Trunk-based Development (TBD) GitHub Flow GitLab Flow
  • 47. ©2023 JiHu (GitLab) | All rights reserved. 分支策略 统一研发流程 master 15-0-stable-jh v15.0.0 v15.0.1 feature bug fix Cherry-pick master v15.0.0 v15.0.1 dev 小型项目推荐分支策略 大、中型项目推荐分支策略
  • 48. ©2023 JiHu (GitLab) | All rights reserved. 受保护分支 防止代码越权提交 受保护分支对实现了更加精细化的代 码权限管理。 通过对指定分支设置保 护,禁止未授权用户对该分 支进行代 码推送和代码合并等操作,以此保证 分支 代码的可审核和可追溯性。 同时也为开发团队践行代码评审Code Review和合并请求Merge Requests等 研发流程的最佳实践提供 了工具侧的 落地支撑。 为重要分支设置保护,只允许特定的组 或用户有推送和合并权限。
  • 49. ©2023 JiHu (GitLab) | All rights reserved. 分支开发工作流 基于Issue快速创建功能分支和MR 主干分支 功能分支发开工作流 1. 克隆代码仓 2. 创建功能分支 3. 编写代码,提交代码 4. 推送到远端功能分支 5. 创建合并请求到主干分支 6. 代码评审并执行合并 开发者 功能分支 代码 评审 git clone git@example.com:project-name.git git checkout –b wechat-pay-integ git commit -m ’feat: wechat-pay-sdk-integ’ git commit -m ’feat: payment web’ git push origin wechat-pay-integ
  • 50. ©2023 JiHu (GitLab) | All rights reserved. 推送规则 规范代码提交 杜绝提交垃圾文件 提交 规范 推送 规则 源头约束 尽头把关 限制文件大小 规范提交信息 规范分支命名 验证提交人身份
  • 51. ©2023 JiHu (GitLab) | All rights reserved. 合并审批 规范代码评审 ● 自定义合并审批规则 ● 静态规则:多重审批规则支持 1.设置分支权限与 合并批准人 2.提交合并请求 3.指定代码评审人 4.评审代码 5.解决评审问题 6.合并代码 ● 动态规则:按文件类型划分审批人
  • 52. ©2023 JiHu (GitLab) | All rights reserved. 合并请求 数据关联与汇总 GitLab Issue、PingCode Issue状态联动 CICD流水线状态和历史记录 代码质量报告 安全扫描报告 代码覆盖率报告 强制流程化代码合并审查 Web IDE在线查看、对比、编辑代码 代码评审记录追踪
  • 53. ©2023 JiHu (GitLab) | All rights reserved. 代码全局搜索的特性与价值 • 跨群组跨项目搜索 • 主流搜索引擎集成 • 高级搜索语法支持 • 代码评审辅助支持 • 寻找编码参考实践 • 内源实现必要条件 群组内搜索 项目内搜索
  • 54. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI / CD 解决方案
  • 55. ©2023 JiHu (GitLab) | All rights reserved. 持续交付 持续交付 是将业务应用所 有类型的变更,包括新功能 、配置更改、缺陷修复和模 拟验证等,通过安全、快速 和持续的方式部署到生产或 交付至用户的能力。 -- Jez Humble
  • 56. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD组成 - Runner Runner Instance On Demand Executors Users • 操作系统 • Linux, Windows, macOS, FreeBSD • 底层架构 • x86, AMD64, ARM64, ARM, s390x, ppc64le • 安装方式 • 容器化、二进制、软件包 • 执行类型 • SSH, Shell, VirtualBox, Docker, Kubernetes
  • 57. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD组成 - Script • Pipeline Stage 的集合,一条 Pipeline 可包 含一个或多个Stage。 • Stage Job 的集合,不同的 Stage 在 Pipeline 中按预定义的顺序执行。 • Job 具体任务的执行,Job 在同一 Stage 里并行执行。 • Script 任务中执行的命令。 灵活编排 声明式语法 可视化预览 语法校验 运行日志
  • 58. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD Pipeline类型 基础流水线(Basic Pipelines),流水线步骤顺序执行,步骤内任 务并行执行。 有向无环图流水线(Directed Acyclic Graph Pipeline),流水线 步骤顺序执行,步骤内任务可跨步骤串行。 多项目流水线(Multi-project Pipelines), 跨项目流水线触发与 关联。 父子流水线(Parent-Child Pipelines) ,将复杂流水线分解为利 于维护的一主多从流水线。 合并请求流水线(Pipelines for Merge Requests),针对合并请 求触发和运行的流水线。 合并结果流水线(Pipelines for Merged Results),针对合并请 求完成后触发和运行的流水线。 合并列车(Merge Trains),使用合并结果流水线触发合并请求。
  • 59. ©2023 JiHu (GitLab) | All rights reserved. 有向无环流水线 DAG Pipeline 适用场景 • 操作系统类软件 • 多平台支持类软件 • 单仓库多模块微服务应用 价值体现 • 减少任务等待时间 • 提升流水线执行效率 • 加快交付结果反馈 • 直观呈现任务关系 有向无环流水线(DAG Pipeline)能够突破普通流水线中前序步骤所有任务执 行完后,才能执行后续步骤中任务的限制。支持按照任务为粒度进行跨步骤 的关联建立,降低任务等待时间的浪费。并提供可视化能力快速识别任务的 运行情况。
  • 60. ©2023 JiHu (GitLab) | All rights reserved. 父子流水线 Parent-Child Pipeline 父子流水线(Parent-Child Pipeline)用于在同一个代码库中上下游流水线的关 联和触发。它支持将一条复杂的流水线解耦为一主多从的多条流水线,并基于 特定的规则构建起运行关系。在降低流水线维护复杂度的同时,支持可选择性 地触发子流水线以提升流水线运行效率。 适用场景 • 大型代码库(Monorepo) • 单条流水线配置复杂度高 • 针对文件变更触发流水线 价值体现 • 降低非关联任务依赖 • 动态按需触发子流水线 • 降低流水线维护复杂度 • 提高流水线可视化程度
  • 61. ©2023 JiHu (GitLab) | All rights reserved. 多项目流水线 Multi-Project Pipeline 多项目流水线(Multi-Project Pipeline)用于多个项目流水线之间的关联触发,它 通过构建项目间流水线的上下游关系,支撑跨多个项目或团队的大型软件产品交 付过程的高度自动化。同时还提供上游和下游两个视角,建立起可视化的流水线 全景,提升跨团之间的协作效率。 适用场景 • 大型跨项目/团队软件产品 • 多模块架构应用 价值体现 • 流水线上下游灵活定义 • 自动化触发依赖流水线 • 流水线全景可视化展示
  • 62. ©2023 JiHu (GitLab) | All rights reserved. 合并列车 Merge Train 合并列车(Merge Train)是围绕GitLab合并请求(MR)工作流衍生出来的高级功能 ,它基于合并结果流水线自动化执行多个MR的预合并,将预合并成功的多个 MR最终正式合入主干分支,以此时刻保持主干分支是可用状态,支撑持续交付 最佳实践。 适用场景 • 大型研发团队 • 多功能并行研发 价值体现 • 固化标准的分支策略和工作流 • 促进代码评审以提升软件质量 • 预合并保持主干分支随时可用 • 并行自动化执行加快合并流程
  • 63. ©2023 JiHu (GitLab) | All rights reserved. 合并结果流水线与合并列车流水线 合并请求流水线 在源分支下运行流水线,无法保障合并后目标分支流水线可 正确运行。 合并列车流水线 基于合并结果流水线,将“合并”动作加入合并列车,当合 并结果流水线正确运行后,合并列车自动执行“合并”动作 。类似消息队列,并行生产、串行消费。 合并结果流水线 模拟源分支已合并到目标分支,基于这个模拟合并运行流水 线。但因“合并”动作是人工操作,在该动作执行前,目标 分支依然会发生变化,所以只能一定程度上保障合并后目标 分支流水线可正确运行。
  • 64. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 配置复用 include: - local: '/templates/.gitlab-ci-template.yml' include: - project: 'my-group/my-project' file: '/templates/.gitlab-ci-template.yml' include: - remote: 'https://gitlab.com/example/-/raw/main/.gitlab- ci.yml' # File sourced from the GitLab template collection include: - template: Auto-DevOps.gitlab-ci.yml Local 引用同一项目中的流水线配置 Include File 引用同一实例中的流水线配置 Remote 引用远程仓库中的流水线配置 Template 引用GitLab的模板流水线配置
  • 65. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 触发与编排 Stage 定义流水线中 Stage执行的先后顺序, Stage中的Job全部并行执行。 Workflow 根据条件判断流水线出创建和运行规则,if定义条件,when定 义行为。 When 定义流水线中Job的执行条件,when也可以 与 if 联合使用,通过判断条件来灵活定义 job的执行。 • On_success:前序任务成功则执行 • On_failure:前序任务失败则执行 • Always:总是执行 • Manual:手工执行 • Delayed:延时执行 • never:永不执行 Trigger 定义下游流水线的触发规则,支持多项目流水线和父子流水线 。
  • 66. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 数据传递 变量(variables) 流水线中的变量包含自定义变量和预定义变量。预定义变量由Runner 自带,自定义变量由用户通过文件、UI或者API进行配置。 ● variables在流水线全局定义,则所有任务可使用; ● variables在任务中定义,则对应Job可使用。 制品(artifacts) 流水线中任务执行过后产出的制品路径,后序任务会自动获取 前序任务的制品。可以通过 dependencies 关键字来进行控制 。制品存放在Server上 缓存(cache) 缓存可以在流水线和任务之间进行共享,默认存在 Runner 上 。
  • 67. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 制品库 常见的私有仓库类型 基本仓库功能 语言包仓库 容器仓库 依赖管理 本地依赖 发布包管理 大文件存储 代理过期策略配置 结合流水线发布 module仓库 .tfstate状态保存 分级别的制品 实例级别 群组级别 项目级别 IaaS仓库 依赖代理 LFS 交付件存储 版本管理 交付件元数据 管理
  • 68. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 应用部署 代码仓 外部 代码仓 代码仓 GitLab CI Deploy Key 制品库 Deploy Token GitLab CD 服务器 scp kubectl Deploy Key Environment Deploy Token
  • 69. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 部署回滚
  • 70. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab CI/CD流水线 - 部署审批 受保护环境 • Approvers为允许部署到环境的成员 • Pipeline owner不能批准自己的部署 • Reject会直接将部署job变为失败 • 达到最小批准数后部署job会自动允许 流水线无需特殊设置, deploy job自动变为manual
  • 71. ©2023 JiHu (GitLab) | All rights reserved. 云原生环境集成 • 支持对接商业Kuberntes产品,自动创建集群 • 自动化部署应用程序 • 检测、监控及创建K8S集群 • 支持GitOps • 与Auto-DevOps结合使用 • 实现金丝雀发布 • 基于群组或实例级别进行集成
  • 72. ©2023 JiHu (GitLab) | All rights reserved. 高度自动化流水线落地示例
  • 73. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab代码质量 解决方案
  • 74. ©2023 JiHu (GitLab) | All rights reserved. 什么是代码质量 《CleanCode》(代码整洁之道) Robert C. Martin 《Sonar code quality testing essential》 开发人员七宗罪 • 编码规范:是否遵守了编码规范,遵循了最佳实践。 • 潜在的BUG:可能在最坏情况下出现问题的代码,以及存在安全漏 洞的代码。 • 文档和注释:过少(缺少必要信息)、过多(没有信息量)、过时 的文档或注释。 • 重复代码:违反了Don’tRepeat Yourself原则。 • 复杂度:代码结构太复杂(如圈复杂度高),难以理解、测试和维 护。 • 测试覆盖率:编写单元测试,特别是针对复杂代码的测试覆盖是否 足够。 • 设计与架构:是否高内聚、低耦合,依赖最少。 代码质量 = 每分钟爆粗数
  • 75. ©2023 JiHu (GitLab) | All rights reserved. 代码质量评估标准 • ISO/IEC 25010 定义了8个特征,用于评估软件软件产品质量 • ISO/IEC 25023 描述如何应用25010 中定义的8个特征来衡量软件产品的质量,但主要是在行为级别而不是源代码级别 • ISO/IEC 5055 为了补充25023中的度量级别,参照了CISQ (2020)的质量评估标准,符合25010中的4个特征 • ISO/IEC 5055 是首个直接从软件内部结构方面衡量软件质量的 ISO 标准
  • 76. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab代码质量扫描方案 使用极狐GitLab集成SonarQube进行代码质量扫描 • 通过GitLab CI触发SonarQube扫描 • 在SonarQube上实现问题向下钻取 • 在SonarQube上查看问题解决方案 • 多维度、可视化分析统计 • 质量报告可在GitLab MR中查看(SonarQube付费版) GitLab Integration | SonarQube Docs 使用极狐GitLab进行代码质量扫描 • 内置Code Climate • 支持多种语言,多种质量类型 • 支持自定义配置模板 • 使用简单,仅需一行CICD配置代码 • 质量报告可在GitLab MR和CICD中查看 Code Quality | GitLab
  • 77. ©2023 JiHu (GitLab) | All rights reserved. GitLab代码质量扫描引擎 知名规范 缩进 类行数 函数行数 行长度 圈复杂度 Java Google 2空格 100 Java 阿里 4空格 80 120 Java PMD 1000 60 10 PHP PSR-12 4空格 80 PHPMD 1000 100 10 极狐GitLab代码质量扫描引擎 业界知名代码规范
  • 78. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab软件测试 解决方案
  • 79. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 水星计划与软件测试 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求 进行评估的过程。 Because of the complexity and worldwide nature of the system. I decided that we need to have a group of people dedicated to quality, including testing of the system. We created such a group, which is as far as I know, had never been done before. They lived through the whole project, unlike a lot of testing groups today. Because this was, not only first human life system, but it was the first worldwide online system, ever build, and presented many unique problems in testing. That’s how we got into this. It was after that that other people began to realize they needed separate testing groups. But it became different. Our testing group was composed of experienced and talented software developers. —— Jerry Weinberg
  • 80. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 软件测试发展历程 1950-1957 • 没有明确测试和调试之 间的区别。没有测试或 测试人员的概念。 • 以调试为主,验证程序 是否符合预期。 1. 调试为导向 2. 证明为导向 1957-1978 • Charles L Baker提出了 测试的概念,并对调试 和测试进行了区分。 • 调试:确保程序符合开 发人员的预期。 • 测试:确保程序符合功 能需求的预期。 • 确保软件满足功能需求 ,也就是做了正确的事 情。 3. 破坏为导向 1979-1983 • Glenford J. Myers阐 述了一个成功的测试用 例是检测到尚未发现的 错误。 • 软件测试和软件开发独 立开来,测试需要更为 专业的人员进行。 • 不仅要证明软件做了正 确的事情,也要保证它 没做不该做的事情。 4. 评估为导向 1983-1987 • V&V(验证和确认)理 论出现,提出软件测试 需要被应用在整个软件 生命周期(SDLC)中 。 • 重点是检验软件是否满 足规定的需求或弄清预 期结果与实际结果之间 的差别,以及通过测试 来评估和衡量软件质量 。 5. 预防为导向 1988-2000 • 代码被分为可测试的和 不可测试的。 • 探索性测试,TDD和 BDD等新概念兴起。 • 敏捷开发模式推广,自 动化工具、持续集成等 技术应用。 • 测试的重点应该是在代 码级别防止缺陷。
  • 81. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 软件测试分类 Mike Cohn 《Succeeding with Agile》“测试金字塔” 传统软件测试分类 《Google软件测试之道》软件测试分类 类型 描述 测试人员 占比 小型测试 用于验证单独函数或独立功能模块,一般需要使用mock和fake,类似单元 测试。都是自动化实现的。 一般由SWE完成,TE可能会参与运行。 70% 中型测试 涉及两个或两个以上模块之间的交互,类似集成测试。通常也是自动化实现 的。 SET会驱动这些测试的实现及运行, SWE会深度参与,一起编码维护测试。 20% 大型测试 验证软件是否满足最终用户的需求,类似系统测试或端到端测试。自动化测 试或者是搜索式测试 三种工程师角色都会参与。 10%
  • 82. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 自动化测试工具 《Test Automation Past Present and Future》 Keizo Tatsumi 《2022 Top15自动化测试工具 》 Katalon 自动化测试工具的形式 自动化测试框架的类型 基于用户界面(UI) 基于接口(API) 线性测试:录制生成脚本、宏 结构化测试:支持控制分支结构 数据驱动测试:表格输入输出 关键字驱动测试:表格+关键字翻译
  • 83. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 自动化测试开展条件 优势 • 自动执行一些重复但必要测试工作,提高效率 • 减少由于手工测试中繁复的重复工作所导致的人为差错 劣势 • 短期开销大(人才培养、流程建立、脚本编写 ) • 自动化测试不容易发现新的BUG 短周期项目难以体现自动化测试的价值 。 维护周期长 需要频繁的回归测试,手工测试效率低下。 频繁的迭代 不稳定的产品收益不可控,整体投资回报率太低。 产品相对稳定 01 02 03 开展自动化测试的条件 与手动测试互补而非完全替代 手动测试 自动化测试
  • 84. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 敏捷与软件测试 敏捷测试宣言 • 与开发协作测试 胜于 测试分工与测试 • 可运行的测试脚本 胜于 写在纸上的测试用例 • 从客户角度来理解测试需求 胜于 从已定义的需求来判定测试结果 • 基于上下文及时调整测试策略 胜于 遵守测试计划 传统测试 敏捷测试 强调测试的独立性,将“开发”和“测试”职责区分。 强调整个团队对测试负责,是“全民”测试。 有明显的阶段性,逐个阶段往前推进。 强调更早测试、持续测试、持续质量反馈,没有明确的阶段界限。 强调测试的计划性。 强调测试的速度和适应性,侧重不断地调整计划以适应需求的变化。 调测试测试是由“验证”和“确认”两种活动构成。 以用户需求为中心,每时每刻不离用户需求,将验证和确认统一起来。 关注测试文档,包括测试计划、测试用例、缺陷报告、和测试报告等。 关注产品本身,强调面对面的沟通、协作、反馈。 鼓励自动化测试 基于自动化测试
  • 85. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 敏捷测试最佳实践 《敏捷测试之迭代生命周期(最佳实践模型)》 Thoughtworks的敏捷测试 故事启动 故事计划 故事开发 故事验收 系统测试 客户演示 故事测试 探索性测试 《故事卡生命周期(经典模型)》 Thoughtworks的敏捷测试 按需实践、逐步提升 探索阶段 or <5人 扩张阶段 or 5-10人 稳定阶段 or 10人以上 1. 轻量的缺陷管理和反馈机制 2. 手动测试为主,具备初步的自动化测试能力 1. 持续沟通、持续测试、持续反馈 2. 全量回归测试成本增高,自动化测试为主 1. 组建测试团队、完善测试管理 2. 引入工具链,防止变更风险,确保软件质量
  • 86. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. DevOps与软件测试 在软件交付生命周期过程中,以防控业务风险为目的 ,将每一个阶段都通过测试活动进行质量保障,并尽 最大可能自动化测试活动,并将测试结果不断的反馈 给制品过程的测试实践活动就是持续测试。 —— 《持续测试》CrissChan 持续测试
  • 87. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab持续测试最佳实践 CT 持 续 测 试 CI 持 续 集 成 CD 持 续 部 署 扫描 1. 代码质量检测 2. 安全扫描 测试 3. 单元测试(覆盖率) 测试 环境 生产 环境 4. 接口测试 5. UI测试 6. 性能测试 7. 探索性测试 8. 监控(可用、可访问) 测试右移 质量:代码评审 测试左移 监控、报警 A/B测、灰度发布 参与需求讨论和评估 业务场景和验收测试(AC)的确认 人人参与评审 人人为质量负责 内置测试工具 效率:CI / CD 外部测试工具
  • 88. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab —— 软件测试基座 API RESTFul、GraphQL Hooks Webhooks、GitHooks 极狐GitLab CI / CD 测试报告
  • 89. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab —— 质量门禁载体 集成外部工具报告 内置测试工具报告 强制代码审核 HTML报告 覆盖率检查 多重审批规则 流水线状态 All in 极狐 GitLab
  • 90. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 准备工作 接口测试 性能测试 打基础:版本控制 单元测试 脚手架:CI / CD UI测试 过滤网:代码扫描(质量扫描、安全扫描) 建议前置条件 建议开展顺序
  • 91. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 接口测试 越底层发现的 Bug,修复成本 越低。 01 04 可通过可视化工 具或通过编码的 方式进行测试。 门槛低。 不依赖前端页面, 可以发现在页面上 发现不了的Bug。 02 容易实现自动化 ,且相对比较稳 定,能提高测试 效率,降低人力 成本。 05 检查系统的安全 性、稳定性。如 后端的传参校验 。 03 可持续验证和更 新接口文档,避 免文档和接口本 身失效或异常。 06 人 工具 流程 后台开发 接口文档建立与管理接口调试 前端开发 接口文档管理接口数据Mock接口调试 测试人员 接口调试接口自动化测试 接口文档:Swagger、Yapi 接口测试:Postman、Postwoman、基于 Python开发 Mock:EasyMock、Mockito、mock.js 性能测试:Jmeter、Locust All-In-One:Apifox 准备阶段 接口文档编写与评审,定义主要的测试用例 开发阶段 基于文档和Mock开发,编写测试脚本调试 测试阶段 CI/CD集成,测试环境下自动全量回归测试
  • 92. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab接口测试 ① 本地编写测试用 例 ② 本地运行接口测 试 ③ GitLab CI/CD自动运 行 ④ GitLab Pages查看报 告
  • 93. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 性能测试 01 性能测试环境应与其他环境(如UAT或生产环境)隔离 。 02 创建尽可能接近生产环境的性能测试环境。 03 多次运行性能测试以获得更准确的测试结果。 04 不要在两次测试之间更改性能测试环境。 05 性能缺陷越早发现越好补救。 性 能 测 试 负载测试 压力测试 浸泡测试 冲击测试 其他
  • 94. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab性能测试(浏览器 ) ① 内置 sitespeed.io ② GitLab CI/CD 简单配 置 ③ GitLab Pages查看报 告 ④ 合并请求评审依 据 Measuring performance shouldn’t be hard: you should be able to have full control of your metrics, own your own data and you should be able to do it without paying top dollars.
  • 95. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab性能测试 ① 内置Grafana K6 ② 集成 JMeter ③ GitLab Pages查看报 告 ④ 合并请求评审依 据
  • 96. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 单元测试 类别 支持 反对 时间与效率 单元测试有助于提高Bug处理效率。 开发人员已经很忙了,单元测试可能会占据开发人员20~40%的 工作时间。 作用 单元测试与系统测试是互补而非代替关系,单元测试注重“ 独立性”,系统测试注重“相关性”。 单元测试仅仅证明了这些函数做了什么,并不能保证系统功能正 确,还是得交给后面的系统或集成测试。 意义 单元测试对产品质量非常重要,它是软件测试中,最底层的 一类测试。 简单的程序没必要写单元测试,复杂的程序写了单元测试也覆盖 不全,单纯是忽悠领导。 文化思想 很多西方企业都写单元测试,对于开发人员来说这是理所应 当的事。 对于国内企业来说,测试工作基本上都是交给测试团队,而且整 体更关注功能。 建议开发人员: 优势:具备开发能力, 熟悉(自己的)代码。 劣势:缺少测试思维。 谁做? 最小可测试部件: 单个程序、函数、过程 、方法,包括基类、抽 象类、或者派生类中的 方法。验证变量、条件 、路径、返回是否正确 。 直接指标: • 单元测试通过率 • 单元测试用例数量 • 单元测试覆盖率 间接指标: • Bug总数、Bug趋势 • 千行Bug率 咋测? 效果?
  • 97. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab单元测试 Best Unit Testing Tools in 2022 ① 本地编写测试用 例 ② 本地运行单元测 试 ③ GitLab CI/CD自动运 行 ④ 覆盖率门禁与评审依 据
  • 98. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. UI测试 APP UI测试 Web Desktop 逻辑 视觉 测试任务明确,不会频繁变动 每日构建后的测试验证 比较频繁的回归测试 软件系统界面稳定,变动少 需要在多平台上运行的相同测试案例 软件维护周期长 项目进度压力不太大 被测软件系统开发较为规范 具备大量的自动化测试平台 测试人员具备较强的编程能力 自动化>手动 手动>自动化 代替大量 重复性操作
  • 99. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab UI测试 ① 本地编写/录制测试用例 ② 本地运行/调试UI测试 • GUI模式:专用测试机部署GitLab Runner运行测试 • Headless模式:使用容器并发运行无GUI的测试 ③ GitLab CI/CD集成测试工具自动运行测试 ④ GitLab Pages查看报告
  • 100. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab效能度量 解决方案
  • 101. ©2023 JiHu (GitLab) | All rights reserved. 前置时间 变更失败率 可用性 部署频率 服务恢复时长 软件 开发 软件 部署 软件 运维 《加速: 全球 DevOps 状态报告》由 DORA (DevOps Research and Assessment)组织发起,在过去6年 (2014~2019) 汇集了全 球超过 31,000名专业技术人员的调研和分析,是同类研究中规模 最大、持续时间最长的权威报告。它提炼出了业界著名的 DevOps 4 Key Metrics,并从实践和能力的角度提出了高效交 付软件的独到见解,使我们能够更好地认识哪些实践能带来更高 的软件交付效能,从而产生强有力的业务影响。
  • 102. ©2023 JiHu (GitLab) | All rights reserved. 2021全球 DevOps 状态报告
  • 103. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 谷歌白皮书:DevOps 转型的投资回报率 潜在收益 每年避免的 非必要返工 成本 再投资产生 的收益 每年的停机 成本 每年避免的 非必要返工 成本 平均收入 福利系数 非必要耗时 百分比 每条业务线 试验的频率 组织中业务 线数量 创意的成功 率 创意的影响 力 产品业务规 模 节省并再投 入到新功能 的时间 部署频率 变更失败率 平均修复时 长 停机成本 拥有8500名技术人员,20亿美元业务规模,处于 DevOps 精英效能组织的 ROI 估算
  • 104. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab DORA Key Metrics 支持 极狐GitLab的分析和度量支持群组级(Group)和项目级 (Project),即能够从部门和团队两个视角来衡量组织 的研发效能。
  • 105. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab 度量可视化能力 - 价值流图 价值流分析用于度量项目 或团队从商业想法到投入 生产所花费的时间。价值 流分析显示在软件全生命 周期中定义的每个阶段所 花费时间的中位数,以此 来以识别瓶颈,用客观数 据的方式促进团队根因分 析和持续改进。
  • 106. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab 度量可视化能力 - 洞察分析 洞察用于浏览特定时间段 创建/关闭的议题、合并请 求的平均时间等数据。可 在持续的一段时间内对数 据进行跟踪分析,根据数 据变化趋势,识别团队在 需求、缺陷、合并请求方 面的处理效率,可帮助团 队持续提高改进。
  • 107. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab 度量可视化能力 - 效能管理 效能管理可从多维度对群组、项目的开发人员进行绩效分析,包括完成议题数、代码提交次数、人均提交次数、人均代码 行数。可通过排行榜和效能报表对开发人员进行绩效统计,便于团队进行绩效管理,以及分析不同人员、项目之间的效率 差异。
  • 108. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab获信通院效能度量平台 创新突破级 认证 《研发运营一体化(DevOps)通用效能度量模型系统平台和工具 》 总体框架
  • 109. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab软件供应链安全 解决方案
  • 110. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 2021年2月,起亚汽 车遭勒索,黑客要求支付 1.35亿赎金,若当天不支付,将追加至2亿元 。 软件安全问题日趋严重 2021年3月,黑客组织攻陷了特斯拉摄 像头 供应商Verkada,特斯拉以及美国监狱、 警察局、医院和学校等15万个监控摄像数据遭泄露。 2021年4月,黑客通过勒索攻 击,窃取了苹果的设计蓝图, 索要5000万美元(约3.25亿元)赎金。 勒索软件 软件漏洞 开源及第三方组件风险
  • 111. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. What —— 什么是软件供应链安全 安全是软件开发的生命线 一段代码就能瘫痪一座智能工厂,平均每个智能工厂就有52.5个安全漏洞……随着数字化转型的加速,工业互联网应用场景在快 速落地的同时,安全风险成了最大挑战。 —— 奇安信集团董事长齐向东 传统软件安全 软件供应链安全 在软件领域的供应链是指的是软件从开发到交付的全过程,软件的供应链安全是软件安全威胁的源头。在CNCF的《软件供应链 安全白皮书》中,强调了分层防御实践的重要性,并提供了从以下五个维度来提升软件供应链安全的整体方法。 开发阶段:源代码安全 开发阶段:三方库安全 编译阶段:流水线安全 打包阶段:制品安全 交付阶段:部署安全 软件供应链安全 SSCS 主要关注软件运行过程中的安全,一般是在软件发布、交付前后对软件应用的安全进行测试和评估。 软件 交付 软件 开发
  • 112. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. Where —— 实现软件供应链安全的途径 安全红线:重量、高成本、低效率 DevSecOps:轻量、低成本、高效率 DevSecOps 是在软件开发过程的每个阶段集成安全测试的实践,它包括鼓励开发人员、安全专家 和运营团队之间协作的工具和流程,以构建既高效又安全的软件。DevSecOps 带来了文化转型, 使安全成为开发软件的每个人的共同责任。
  • 113. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. When —— 什么时间执行安全测试 DevOps + Sec:传统模式 • 在流水线中集成多种自动化安全扫描工具 • 代码发布、上线前集中扫描 • QA/安全人员把关,难以建立安全意识 • 出现安全问题修复成本高 DevSecOps:安全左移 • 在流水线中集成多种自动化安全扫描工具 • 每次代码提交时扫描、每次代码合并前扫描 • 安全门禁自动把关,人人对安全负责 • 出现问题及时修复,成本低,约为传统模式 的1/30 安 全 关 注 度 计划设计 开发构建 测试验证 部署发布 运行监控 安全左 移模式 传统安 全模式 持续安全扫描 胜于 单次安全检查 前期安全威胁分析 胜于 末期安全渗透测试 主动发现安全漏洞 胜于 被动等待漏洞报告 安全职责共享 胜于 独立安全团队
  • 114. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. Who —— 软件供应链安全面向人员 开发人员 安全/运维人员 管理人员 DevSecOps 安全门禁 规则制定 执行视角 TODO 分析视角 Trend 管理视角 Total 代码提交 运行扫描 根据报告 修复漏洞 漏洞分析 改进策略 通过门禁 代码合并 特殊情况 特殊处理 企业安全仪表盘 安全左移 统一管理
  • 115. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. Why —— 为什么选择极狐GitLab一体化DevSecOps平台 代码仓库 代码提交 代码主干合并 应用部署 忽略或创建议题 GitLab CI GitLab CD 开发团队 安全仪表盘 流水线安全报告 应用验证 网络安全通知 忽略或创建议题 安全团队 安全仪表盘 安全门禁 完整性:内置7种类型安全扫描,覆盖软件全生 命周期,配置简单,开箱即用。 统一性:统一管理界面,安全规则、漏洞报告 、漏洞追溯、任务分配,开展端到端的安全实践 。 领先性:Gartner、Forrest等全球知名测评机 构给与高度评价,在DevOps产品中处于领先水平 。 高性能:契合敏捷项目管理机制,能够与 DevOps结合,支持大规模用户的高并发检测。 可扩展:可以接入不同的商业化安全产品及解 决方案,如Black Duck、Fortify等。
  • 116. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:静态应用安全测试 SAST(开发阶段) 语言/框架 扫描工具 .NET Core, .NET Framework Security Code Scan Any Gitleaks Apex (Salesforce) PMD C/C++ Flawfinder Elixir (Phoenix) Sobelow Go Gosec Groovy, Java, Scala (Ant, Gradle, Maven, & SBT) SpotBugs with the find- sec-bugs plugin Helm Charts Kubesec JavaScript & TypeScript ESLint security plugin Kubernetes Manifests Kubesec Node.js NodeJsScan PHP phpcs-security-audit Python (pip) bandit React ESLint react plugin Ruby on Rails brakeman 简介: 在编码阶段分析应用程序的源代码或二进制文件 的语法、结构、过程、接口等来发现程序代码存 在的安全漏洞。 功能: • 支持多种编程语言 • 支持自定义扫描规则 • 分析源代码找出已知安全漏洞 • 自动对比源分支和目标分支漏洞报告 • 对比报告嵌入合并请求页面中展示 • 扫描结果统一呈现于漏洞报告页面 链接: • GitLab SAST
  • 117. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:依赖项扫描 Dependency Scanning (开发阶段) 简介: 分析代码引入的开源软件成分并检测开源软件组 件是否带有已知的漏洞,例如具有可用安全补丁 程序的过期库。 功能: • 分析代码依赖项中的已知安全漏洞 • 基于GitLab Gemnasium技术 • 自动对比源分支和目标分支漏洞报告 • 对比报告嵌入合并请求页面中展示 • 扫描结果统一呈现于漏洞报告页面 • 依赖项清单统一呈现于依赖列表页面 链接: • GitLab Dependency Scanning
  • 118. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:许可证合规 License Compliance (开发阶段) 简介: 检测代码引入的开源软件组件是否是需要相应授 权许可的商业软件或第三方产品。避免存在法律 风险。 功能: • 搜索代码依赖项中包含的相关许可证 • 基于License Finder • 可自定义策略,允许或拒绝指定的许可证 • 自动对比源分支和目标分支许可证合规报告 • 对比报告嵌入合并请求页面中展示 • 扫描结果统一呈现于许可证合规页面 链接: • GitLab License Compliance
  • 119. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:密钥检测 Secret Detection(开发阶段) 简介: 密钥检测可扫描源代码中是否存在不应该提交 的敏感信息,如密钥、密码等。 功能: • 基于Gitleaks • 可通过正则表达式自定义扫描规则 • 自动对比源分支和目标分支漏洞报告 • 对比报告嵌入合并请求页面中展示 • 扫描结果统一呈现于漏洞报告页面 链接: • GitLab Secrets Detection
  • 120. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:容器扫描 Container Scanning(制品阶段) 简介: 对托管的容器镜像进行安全扫描,生成扫描报 告,暴露容器镜像内潜在的安全漏洞,并提供 修复建议。 功能: • 对应用环境中的容器镜像进行静态扫描 • 使用开源工具Clair、klar, Trivy可扫描任 意类型的Docker (或Appc)镜像 • GitLab’s Klar扫描工具对Clair、Trivy进 行了包装,可以扫描容器。 • 结果呈现于合并请求和单一报告中 链接: • GitLab Container Scanning
  • 121. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:动态应用安全扫 DAST(预发布阶段) 简介: 模拟黑客行为对应用程序进行动态攻击,分析 应用程序的反应,从而确定该Web应用是否易 受攻击。 功能: • 分析网站应用中的已知安全漏洞 • 进行被动(ZAP Baseline Scan)和主动扫描 (主动攻击审阅应用Review Apps) • 支持HTTP凭据来测试密码保护部分 • 基于OWASP ZAProxy,增加支持认证 • 结果呈现于合并请求和单一报告中 链接: • GitLab DAST OWASP ZAP
  • 122. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:Web API模糊测试(预发布阶段) 简介: 扫描工具通过API操作发送随机输入来触发例外 或崩溃,从而检测该Web应用是否存在安全问 题。 功能: • 可用于检测其他工具可能遗漏的漏洞,建 议与其他扫描工具和测试一起使用 • 漏洞嵌入合并请求中展示 • 结果呈现于单一报告中 链接: • Web API Fuzz Testing 支持的API类型 REST API SOAP GraphQL Form bodies, JSON, or XML 支持的输入类型 OpenAPI v2 or v3 specification HTTP Archive (HAR) Postman Collection v2.0 or v2.1
  • 123. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 完整性:覆盖率引导测试(预发布阶段 ) 简介: 扫描工具向插桩的(instrumented)应用发送随 机输入来触发例外或崩溃,从而检测该应用是 否存在安全问题。 功能: • 可用于检测其他工具可能遗漏的漏洞,建 议与其他扫描工具和测试一起使用 • 基于GitLab自有技术(收购自Peach Tech 及Fuzzit) • 结果呈现于合并请求和单一报告中 链接: • Coverage Guided Fuzz Testing
  • 124. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 统一性:安全策略与安全门禁 安 全 策 略 安 全 门 禁 漏 洞 详 情
  • 125. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 统一性:安全漏洞统一管理
  • 126. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 统一性:安全漏洞闭环管理 设计编码 基于议题Issue在功能分支下进行 开发并提交代码,在功能分支下发 起代码合并请求Merge Requests 进行代码评审。 需求管理 根据漏洞快速创建议题Issue,可 将漏洞信息如描述、代码位置、标 识符、解决方案等自动关联到议题 。 持续集成 通过CI/CD流水线进行代码安全扫 描,扫描结果可集成在流水线、代 码合并请求中显示。并可将扫描结 果作为代码合并请求的安全门禁。 漏洞报告 漏洞报告可对默认分支下的所有漏 洞进行汇总和全生命周期管理,如 对漏洞进行追溯、评论、变更状态 。
  • 127. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 领先性:极狐GitLab安全扫描能力行业领先 Forrester 2021 Q1 静态应用安全测试报告 GitLab 与 SonarSource 处于 同等地位 Gartner 2022年应用安全测试魔力矩阵 GitLab是唯一处于挑战者象限的 DevOps 工具厂商
  • 128. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 高性能:极狐GitLab支持并发安全扫描 极狐GitLab Server 极狐GitLab Runner 容器 传统安全扫描工具 串行扫描 VS 高性能并行扫描
  • 129. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 可扩展:极狐GitLab支持与第三方安全扫描工具集成 可将第三方安全扫描工具集成到极狐GitLab CI/CD中,将扫描结果以极狐GitLab指定的格式输出。可在流水线、代码合 并请求、漏洞报告页面中查看第三方扫描工具检出的漏洞并进行管理。参考文档: Security scanner integration
  • 130. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab代码防泄漏 解决方案
  • 131. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 近年来源代码泄露事件 大疆前员工将含有公 司商业机密的代码上 传到GitHub公有仓库 苹果公司专有的 iBoot源代码被 泄露 Bibibili整个网站 后台工程源代码 泄露 黑客窃取AMD即将 发布的图形产品及子 集测试文件 微软、Adobe、联 想、任天堂等50家 知名公司源代码泄露 三井住友前员工因找 工作在GitHub上传 写过的部分源代码 2017 2018.2 2019.4 2020.3 2020.7 2021.1 某公司程序员把代码不经任何处理上传到了 Github 的公共代码 库,泄露了 IP 和用户名密码,导致黑客对整个数据库进行了拖库 ,导致数据泄露。 • 酒店集团官网用户注册资料,大约 1.23 亿条记录,共 53 G。 包括姓名、手机号、邮箱、身份证号、登录密码等; • 酒店入住登记身份信息,约 1.3 亿人身份证信息,共 22.3 G。 包括姓名、身份证号、家庭住址、生日、内部 ID 号; • 酒店开房记录约 2.4 亿条记录,共 66.2 G。 包括内部 id 号,同房间关联号、姓名、卡号、手机号、邮箱、入住 时间、离开时间、酒店 id 号、房间号、消费金额等。 有史以来最大范围的一次源代码泄露。微软、Adobe、联想、 AMD、高通、联发科、通用电气、任天堂、迪士尼、华为海思等 50 家科技公司中招。 在互联网上失去对源代码的 控制,就像把银行的设计图 交给抢劫犯一样。
  • 132. ©2023 JiHu (GitLab) | All rights reserved. 代码防泄漏总体思路 登录安全 网络安全 授权安全 提交安全 Data loss prevention工具 审计事件 审计事件流 代 码 防 泄 露 事 前 事 中 事 后 • 添加注册黑白名单,限制注册。 • 禁止注册,完全通过AD/LDAP/SSO验证。 • 2FA双因素认证:防止密码泄露后被恶意登录。 • 可以针对群组设置IP白名单,控制访问网络。 • 以RBAC方式授权,可控制到群组、项目级别。 • 遵循最小权限授权。 • GPG签名:证明提交人身份。 • 数据加密:GitLab可与IPGuard等工具集成。 • 有多个级别审计事件记录。 • 管理员可以审计敏感动作。 • 审计事件实时发送到第三方平台进行分析审计。 注册安全
  • 133. ©2023 JiHu (GitLab) | All rights reserved. 事前-注册安全:注册限制 打开注册:通过email黑白名单限制 管理中心--设置--通用--通用限制 关闭注册:全部通过LDAP关联 所有能够登录的用户都通过LDAP/AD控制
  • 134. ©2023 JiHu (GitLab) | All rights reserved. 事前-登录安全:2FA双因素认证 实例级:极狐GitLab实例可全员开启 用户级:个人用户可选择开启 何谓2FA(双因素认证)? 单因素:密码 双因素:手机/key 等 黑客 系统 可直接登录 不可直接登录
  • 135. ©2023 JiHu (GitLab) | All rights reserved. 事前-网络安全:IP访问白名单 可在群组中添加公司内网IP地址为IP访问白名单 ,防止员工在其他地点访问GitLab。不同群组 可设置不同的IP访问白名单。 群组-设置-通用-权限和群组功能-允许以下IP地 址访问 非IP白名单用户访问
  • 136. ©2023 JiHu (GitLab) | All rights reserved. 事前-授权安全:用户角色授权 GitLab 围绕群组和用户管理权的方 式具有高灵活性,可以根据组织或 项目团队的实际情况选择以群组授 权或用户授权。 通过引入最小特权原则(Least Privilege)概念,循业界安全实践 进行权限管理,GitLab的 权限管理 设计模式确保其高追溯性。在现有 权限管理的基础上,GitLab 原生保 证了数据迁移功能,可适应多种标 准化分支迁移。 权限角色 权限说明 场景示例 Guest 无法对私有化项目做贡献,只能查 看议题和留言。 项目审计人员 Reporters 只读贡献者,可访问代码库但无法 写入,可以编辑议题。 产品经理 Developers 直接贡献者,代码库可读写,受更 高级权限管理(如保护分支)。 开发人员 Maintainers 项目维护者,拥有代码库的所有权 限。 项目经理、开发经理 Owners 群组级管理员,能够对群组和项目 进行全面管理。 部门总监 Admin 在群组级管理员权限之上,还有实 例管理权限。 系统管理员 Auditor 可以审计所有群组的事件,但是对 项目是只读状态。 安全管理员
  • 137. ©2023 JiHu (GitLab) | All rights reserved. 事前-提交安全:GPG证明提交人身份 GPG主要用来确定提交人的身份,防止被恶意篡改的代码进入源代码仓库。 使用方式: git commit -S -m "My commit message"
  • 138. ©2023 JiHu (GitLab) | All rights reserved. 事中-DLP工具集成 OA ERP GitLab DLP 网关 解密 明文存储 加密 开发人员 工作电脑 Clone/Push/Pull 密文存储 仅指定软件可在 内存中解密打开 支持与多种DLP、零信任网关集成 支持禁用网页下载源代码
  • 139. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 事后-审计事件与报告 审计事件 实例级 22类事件 群组级 16类事件 项目级 24类事件 审计事件与报告是针对管理员通过查看和审 查的方式,了解在GitLab中所发生的动态以 及这些操作的执行人的过程。审计事件是关 于GitLab内发生了什么、 何时发生以及谁 在GitLab内执行了该操作的单个记录。极狐 GitLab事件审计提供了以下特性: • 高追溯性 • 高颗粒度 • 高灵活性 • 高简化度 • 时间敏感 • 组名和路径变更 • 储存库容量变更 • 群组的移除与建立 • 群组可见性变更 • 新增群组用户及其权限 • 群SAML登录记录 • 用户移除 • 项目储存库迁入 • 共享(及撤销共享)至群 组的项目及权限 • LFS 的禁用及启用 • 同时登录人数上限的变更 • 使用权限的启用与禁用 • 申请通道的启用与禁用 • 2FA的强制执行与宽限期 • 项目设立用户的变更 • CI/CD变量的变更 • 部署密钥的新增与移除 • 项目的设立、移除、更名、 迁移 • 可见性变更 • 新增(移除)用户极其权限 变更 • 项目的导出及下载 • 项目库的下载 • 项目的存档及删档 • 保护分支的建立与移除 • Release 的更新与并入 • 通过合并请求 • CI/CD 变量的变更 • 访问令牌的(试图)生成和 收回 • 默认设置的修改 • DAST档案的修改 • 合规框架的变更 • 登录及失败登录记载 • SSH秘钥的添加 • 邮件的删除与添加 • 密码变更 • 重置密码请求 • OAuth通道请求 • “模拟”起止 • 用户名更改 • 用户的新增与移除 • 权限申请 • Admin Area的权限记录 • API的阻止访问记录 • SFA的阻止访问记录 • 用户访问令牌生成和收回 • 管理员的添加与移除 • SSH秘钥的移除 • GPG秘钥的添加与移除
  • 140. ©2023 JiHu (GitLab) | All rights reserved. 事后-审计事件 作者:谁进行了对应操作 对象:作用在什么项目上 操作:具体的操作,比如改用户权 限,改时间等等 目标:针对于哪个对象进行 IP地址:操作人的IP地址 日期:操作的时间戳
  • 141. ©2023 JiHu (GitLab) | All rights reserved. 事后-审计事件流:发送到第三方平台实现实时告警 极狐GitLab中可定义 多个审计事件流接收者 第三方平台分析 (ELK) 异常行为实时告警 可审计代码Push/Pull事件 审计事件 审计告警
  • 142. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab SaaS
  • 143. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab SaaS 介绍 极狐(GitLab)推出的极狐GitLab SaaS (JihuLab.com),旨 在为中国用户提供从源代码托管到开发运维的全栈式一体化 DevOps SaaS平台与企业级专家咨询服务。 为企业的研发团队、运维团队、DevOps团队、安全团队等 提供开箱即用的DevOps能力,降低企业DevOps平台运维 成本,提高部署和升级效率。 高投资回报 极狐GitLab SaaS提供开箱即用的DevOps能力, 使得软件通过 自动化、协作、快速反馈和迭代改进来加速交付,帮助降低开发 流程成本,缩短上市时间,提高技术人员生产力和团队效能。 安全可靠 获取国家等保三级资质,企业级订阅许可证、源代码管理、支付 系统等均在中国境内管理,受中国法律保护,为企业用户以及个 人用户最大限度地保障数字资产安全。 灵活便捷 落地中国的云服务模式,用户以按需使用的便捷地方式消费世界 顶级的DevOps SaaS服务,并可体验到更加全面、完善和及时的 的本土化售后服务与支持。 开源协作 提供基于Git技术源代码托管能力,在研发协作方面增加大量的社 交化功能,让研发协作之间更加顺畅,为个人与团队参与开源贡 献并发展开源项目提供优质的平台。
  • 144. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab SaaS 与 自部署 对比 对比内容 极狐GitLab SaaS 极狐GitLab 自部署 基础设施 极狐提供 客户提供 实例全局配置 所有用户相同 客户自定义 访问控制 群组级 实例级 日志审计 无法直接访问 访问不受限 使用报告 群组级别 实例级别 升级维护 极狐负责 客户负责 计算 存储 网络 虚拟化 操作系统 极狐GitLab 数据 应用 用 户 负 责 极狐GitLab 自部署 计算 存储 网络 虚拟化 操作系统 极狐GitLab 数据 应用 用户 负责 极 狐 负 责 极狐GitLab SaaS ● 极狐GitLab SaaS 无需用户安装,注册即可开启云端使用。极狐作为服务的提供方,负责SaaS服务的高可用架构、 灾备恢复等维护;用户为服务等消费者,最高权限为群组所有者(Group Owner)。 ● 极狐GitLab On-Premise 版由用户自部署在任意环境。用户拥有管理员最高权限,负责极狐GitLab服务及其依赖的 基础架构的运行维护及使用。
  • 145. ©2023 JiHu (GitLab) | All rights reserved. 极狐GitLab资质与评价
  • 146. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 资质认证
  • 147. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 知识产权
  • 148. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. Forrester 关于DevOps工具评价 公约的力量:利用全球超过100,000多个公司和组织的DevOps最佳实践。 每个人都可以做出贡献:由2200多个热情和能建言献策人和组织组成, 并共 同为全球社区贡献代码。 共创:GitLab具有成千上万的公共功能提案,为客户驱动的创新。 持续创新:自2011年以来,GitLab一直在每月22日发布新功能/创新。 开源开放生态:建立在强大的开源技术的基础上。 2021 Q1 Forrester 静态应用安全测试报告 与 SonarSource 公司处于 同等地位
  • 149. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 2021年企业级敏捷管理工具 领导者象限 2022年应用安全测试 唯一处于挑战者象限的 DevOps 工具厂商
  • 150. ©2023 JiHu (GitLab) | All rights reserved. ©2023 JiHu (GitLab) | All rights reserved. 信通院《2021中国 DevOps 现状调查报告》 • 安全可控的源码管理功能是企业私有化部 署的首选,采用率53.45%,位列第一; • 高度自动化可编排的CI/CD流水线采用率 仅次于Jenkins,位列第二。
  • 151. ©2023 JiHu (GitLab) | All rights reserved. 国际知名分析机构认证 Forrester: ● “Leader” Forrester Q3 2017 CI Wave ● Now Tech for CDRA ● Now Tech for VSM ● New Wave for VSM* ● Wave for CDRA ● Now Tech for Software Composition Analysis (SCA) Gartner: ● “Visionary” 2019 Enterprise Agile Tool MQ ● MQ for ARO* ● Hype Cycle for I&O Automation ● Hype Cycle for DevOps 10 Major analyst reports 2018 Gartner Peer Insights Customers' Choice for Application Release Orchestration Customers’ Choice recognition Hack your culture to drive Quality and DevOps success Vendor case study Innovator award Agile Code Development Technologies 2018 # additional reports GitLab mentioned in 20 new major reports coming in 2019 2
  • 152. ©2023 JiHu (GitLab) | All rights reserved. 空白演示 单击输入您的封面副标题