【云驻共创】CodeArts Repo ---高效代码协同开发之旅
今天给大家带来华为云全栈自研的代码托管平台——CodeArts Repo 的介绍,希望对大家涉及到代码托管平台选型提供一个极佳的选择方案。
一、代码托管发展史
版本控制系统发展史简单概括经历了三代,下面给大家简单介绍一下:
1.1 第一代
无网络部署,一次智能操作一个文件,基于同步锁阻塞机制,典型的产品:RCS、SCCS
1.2 第二代
集中式网络部署,一次可以操作多个文件,支持并发操作不过需要先本地合并,然后提交到版本库,典型的产品:CVS、Subversion、SourceSafe、微软的TFS版本控制系统
1.3 第三代
分布式网络部署,基于变更集的方式操作一批文件,支持并发,需要先提交,然后再合并到版本库,典型的产品:Git、Mercurial、Bazaar。
其中第三代是以Git为典型代表的分布式版本控制系统(Distributed Version Control System),Git诞生于2002年,由Linux之父Linus Torvalds带领Linux开源社区开发完成。初衷是用其管理Linux内核的庞大的开源代码,后续被GitHub、Gitlab等国际开源软件发扬光大,目前被大多数开源项目和企业项目所使用。Git属于当前代码托管的主流技术。
二、 CodeArts Repo 介绍
CodeArts Repo(前身CodeHub) 是华为全栈自研的代码托管服务平台,它基于Git提供分布式代码管理和协同开发能力。提供了成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、CI/CD集成等实用功能,助力不同规模企业提升研发质量和研发效率。
三、CodeArts Repo 功能架构
3.1 研发协同
单仓开发协同:代码浏览、合并请求、代码检视、文件搜索、保护分支、合入门禁(代码合并检查机制)
多仓开发协同:多仓检视、Change-id、多仓提交、挑单合入、原子合入、细粒度权限。
3.2 代码管理功能
仓库&分支管理:仓库管理、分支管理、tag管理、历史管理
组织权限管理:成员管理、角色管理、权限管理、组织管理
检视&门禁:文件对比、门禁判断、评论、代码审核
系统集成:需求系统、缺陷系统、CI/CD、自定义扩展
3.3 代码存储特性
稳定性:多中心、容灾、多活、容器化部署、弹性化伸缩
性能:多副本、分布式数据库、分布式缓存、分布式部署
安全:漏洞感知、智能监控、防篡改、加密存储、阻断隔离、最小权限、态势感知、攻击探测
四、CodeArts Repo 技术能力
对外接口:支持SSh/HTTPS、Web Portal、APIs、WebHooks Stream event。
运维监控:现网告警、现网拔测、API监控、全链路监控、存储带宽监控、流量监控、容量监控、升级运维、异常访问监控。
五、 华为云代码托管技术发展历程
2010:预研代码仓技术、选型
2013:基于Gitlab改造、完成华为代码仓上线
2019:完成自研、自主可控代码仓上线
2020:完成华为内部所有代码仓统一管理
2022:支撑20万研发人员使用的成熟CodeArts Repo代码托管平台完成。
六、CodeArts Repo使用场景介绍
6.1 仓库管理员
在项目初期创建仓库、初始化代码、仓库配置设置同时完成仓库成员管理、权限管理、配置保护分支权限的配置。
交互方式:界面操作、API接口和代码托管服务交互
6.2 开发人员日常开发活动
上传、拉取代码;拉取分支、创建MR、协作开发;在线检视代码、关联需求缺陷单修复代码bug。
交互方式:命令行、开发工具、浏览器
6.3 代码审核活动
在线查看代码、检视代码代码审核、代码责任田守护;门禁、代码合入;管理Committer权限。
交互方式:开发工具、浏览器
6.4 自动化系统配置员
流水线webhook等配置;流水线构建触发;门禁、项目级CI、版本级CI 对接。
交互方式:Webhook、API
6.5 测试人员
测试代码上传、下载;出测试软件包。
交互方式:浏览器
6.6 版本经理发版本
锁库、发版本打tag
交互方式:浏览器
6.7 QA/产品经理
审计度量、E2E追溯审计
交互方式:API
七、CodeArts Repo 产品优势
7.1 全栈自研,安全无忧
基于云原生架构全栈自研,Cell化部署,独有的分片加密存储,IP白名单和细粒度的访问权限控制,加密传输,异地容灾备份,为您提供云端极致安全和韧性的代码托管服务。
7.2 高效代码协同开发
内置华为多年变革实践成果,覆盖云、管、端车等各类开发协同场景,支持不同规模团队包括微服务devops和大型团队协同开发,内置各类规则和模板,确保团队高效协同.
7.3 多层级代码质量防护
基于分支和成员角色的代码上库作业流控制,配合工具自动化检查和人工审核流程内嵌华为CleanCode实践成果,保证每一行上库代码的质量。
7.4 以代码为中心的研发资产追溯
作为研发核心资产的代码,让你清晰了解每一行代码的来龙去脉,提供从需求、设计、story、代码、缺陷到产品版本的完整追溯路径,方便版本跟踪和问题修复。
八、应用场景介绍
8.1 团队级开发协同
优势
• 云端代码存储,开箱即用
• 简易开发流程,快速迭代开发
• 多种协同开发模式选择(分支开发/Fork仓开发)
• 随时随地检视代码
• 链无缝集成自动化流水线
8.2 企业级开发协同
优势
• 跨团队,跨地域协同开发
• 组织级代码开发规范
• 多角色细粒度权限控制
• 多种内嵌模板,统一开发过程
• 研发资产数据分析和洞察
• 丰富的扩展点,方便企业集成
• 代码核心资产备份
九、CodeArts Repo特性介绍
9.1 代码审核上库门禁
特性:多层级、细粒度代码上库质量门禁
支持人工审核、自动化流水线集成对上库代码进行质量管控,不符合质量指标的代码不允许入库,人工审核支持权责分离原则 (SOD),自动化检查支持分支级管控
9.2 代码检视
特性:多形式的代码检视活动
支持基于文件的随心检视、合并请求代码检视能力,让团队集中检视或者分散式协同检视,支持检视模板、检视人自动分配、检视任务通知设置检视意见可跟踪,可闭环
9.3 细粒度权限控制
特性:基于角色的细粒度权限控制
针对仓库管理、仓库配置、代码开发等活动提供细粒度的权限控制,不同成员的代码访问权限支持分支级权限管控,提升协同开发效率和确保代码安全。
9.4 围绕代码的E2E追溯
特性:围绕代码的研发资产追溯
提供从需求、任务、设计、缺陷、代码、版本的记录追溯,掌握每一样代码的来龙去脉,方便网上问题定位和审计。
9.5 仓库规范及模板
特性:丰富的仓库模板,标准化的团队开发活动
提供仓库模板,代码检视模板,合并请求模板,可配置必填和选填字段,确保团队开发行为统一,更加方便的基于研发数据做效能分析和改进。
9.6 安全和韧性
特性:提供极致安全和韧性
基于云原生架构全栈自研,提供极致韧性和安全的代码托管能力,源于华为实践成果,覆盖云、管、端、车、IT等超大产品协同开发,10亿级代码管理,万人团队并发在线协同作业高并发代码下载,超大存储容量.
9.7 多作业流支持
特性:提供多种开发作业协同方式
提供基于Git的多种开发协作模式,既适合中小企业灵活开发模式,也支持中大型企业的复杂开发协作模式。
9.8 全栈自研
特性:华为全栈自研
全新的云化架构,基于云原生架构分层构建,cell集群化部署,智能副本调度,配合独创的压缩存储技术,提升代码并发访问上限,支持超大规模、超大团队协同开发。
十、使用CodeArts Repo的关键流程
10.1 确定开发规范
• 设定默认分支:master
• 确定保护分支:master与 develop
• 确定分支的命名规范: Features/abc[特性描述]、 hotfix/115[问题单日期]
• 确定版本的命名规范,并用这个规范来打标签
• 确定团队内部统一的Commit规范
• 确定合并请求的参与者,职责
10.2 确定开发流程
- 创建仓库
- 开发人员下载代码
- 创建工作分支
- 提交代码
- 创建合并请求
- 邀请团队成员,参与代码评审
- 仓库管理员,审视后合入代码
10.3 配置仓库规则
大家通过官方帮助文档进行详细学习如何配置仓库规则。
成长地图_代码托管 CodeArts Repo_华为云 (huaweicloud.com)
下面展示配置仓库规则的一些界面效果,相信对大家了解CodeArts Repo会非常有帮助,大家一起来看看吧。
提交规则
编辑提交规则
项目成员管理
设置分支的保护策略
编辑保护分支
合并请求设置界面
设置代码审合并请求策略
代码合并审核效果界面
代码检视审核详情界面
十一、 总结
这款华为自研的代码托管平台,涵盖了代码托管领域几乎所有的功能特性比如(权限控制、安全性、高性能、代码审核机制、版本日志记录、多作业流的支持等等),对于企业和软件公司来说是非常不错的选择。
本文参与华为云社区【内容共创】活动第23期。
- 点赞
- 收藏
- 关注作者
评论(0)