CodeArts Repo:6大特性助力企业代码稳定可靠安全无忧
摘要:华为云代码托管服务CodeArts Repo已于2月20日22:00正式上线,这是一款全栈自研、基于Git的云端代码托管服务,旨在保护企业核心代码资产安全,提升企业研发质量和效率。
本文分享自华为云社区《稳定可靠安全无忧,华为云发布代码托管服务CodeArts Repo》,作者:华为云头条 。
2022年2月,黑客窃取某著名公司大量源码,包含硬件原理图、源代码、显卡驱动源码等信息,并对企业勒索巨额赎金;3月,全球最大的开源代码托管网站经历了多次长达数个多小时的宕机,数百万开发者无法提交代码,导致开发活动中断。
源代码是企业最宝贵的资产之一,一旦保存源代码的系统出现安全性或稳定性问题,将给企业商业及信誉带来不可估量的损失。随着软件规模的不断扩大,生成软件的源代码规模也在急剧上升,单个软件系统规模已达数亿行、开发人员达数千人——如何管理好庞大的源代码,并让企业员工持续稳定的开展软件开发活动将成为一个重大的挑战。
2月20日,华为云代码托管服务CodeArts Repo将于22:00正式上线,这是一款全栈自研、基于Git的云端代码托管服务,旨在保护企业核心代码资产安全,提升企业研发质量和效率。
代码管理工具是软件开发的基础
不断提升研发质量和效率,缩短TTM(Time to Market)是软件企业商业成功的关键。如今,一款软件通常由多人协作开发而成,代码管理工具不仅是研发资产的重要载体,同时也支撑了版本化配置管理、代码开发的工作流等活动,通过与CI/CD工具服务集成,能够有效提升团队协作效率和自动化交付效率。

▲代码管理工具在开发活动中发挥着关键作用
为了让代码资产更加安全和稳定,一款现代化代码管理工具应当具备如下主要能力:
版本控制:包含代码存储功能,支持代码上传和下载,并能够简单、准确地记录和重现代码的任何一个历史版本。
协同开发:支持多人协同开发,如不同开发人员可同时在同一个软件模块上工作,同时对同一代码部分做不同的修改,即使是跨地域分布的开发团队也能互不干扰。
质量管控:提供在线阅读代码和代码检视功能,支持自动化持续集成与持续交付工具(CI/CD),对代码进行质量检查,确保符合质量的代码才能入库。
稳定可靠:支持多人并发在线作业,并发上传和下载代码,保持长期稳定,以保障企业研发活动不中断。
安全防护:能够保护企业的代码核心资产安全,抵御黑客盗取代码、对源代码投毒、恶意代码注入等攻击。
华为云CodeArts Repo,让代码核心资产安全无忧
为了支撑业务的高速发展,华为公司内部代码管理工具也在不断演进。从最开始满足基本配置管理需求,到支撑公司内源协同开发,再到支撑公司可信变革、达成CleanCode目标,华为的代码管理工具经历了“商用+开源”,到“边买边造”,再到“自给自足”的三个阶段。
自2019年来,通过历时3年的“云化改造、安全韧性构筑、全栈自研”三大战役,华为基于云原生打造了高安全、高韧性、全场景开发工作流覆盖的可信代码仓。
如今,华为云CodeArts Repo管理并保护着华为1100亿行代码,支撑15万人开发作业,日均1亿次下载量、1PB传输流量、3亿次API调用,一套系统支撑了华为嵌入式、云、终端、车等各类型产品代码管理和协同开发。
现在,华为云将内部多年积累的代码管理能力沉淀到CodeArts Repo工具,发布6大特性。
特性一:自研内核,确保代码安全,稳定高效开发
针对开源代码管理工具漏洞多、单体架构、存在连续性风险,和无法满足华为大规模、多场景开发作业流等问题,华为云CodeArts Repo通过自研内核,基于零信任思想进行设计和安全加固,从黑客视角建立攻击路径模型,落地6大类100+小类安全措施,从接入层、业务层,存储层到基础设施层全面构筑安全防护能力,确保代码不丢,系统不破,代码资产可恢复。

此外,华为成立了“蓝军”部门,每年例行专门针对代码托管工具进行模拟攻击测试,以攻促防,不断提升CodeArts Repo的安全能力。
为应对公司巨量业务增长,CodeArts Repo在架构上充分利用云原生技术优势,基于云化基础设施,实现容灾、备份、流控、服务降等,保障了业务不中断和数据不丢失,多维度提升可靠性。
CodeArts Repo在技术上突破底层硬件IO带宽限制、修改Git内核提升文件下载寻址效率、应用多级缓存等手段提升代码下载效率,经测试,相比开源同类产品具有超过10倍的写入、超过50倍的读取能力提升,可支撑万级并发下载,10万级并发在线作业。
特性二:覆盖基于Git的主要工作流,满足多种开发场景
华为云CodeArts Repo支持Git Flow、Gitlab Flow、Github Flow等所有工作流。华为将以前使用Gitlab、Github、Gerrit部署的100多套系统归一到CodeArts Repo一套系统,期间经历了超过10000条来自华为各产品线的需求锤炼,不断完善和优化,既能满足强流程规范的大规模产品协同开发,也适用于采用DevOps模式、快速上线的产品开发。

特性三:多形式代码检视活动,提升代码质量,传递开发经验
《代码大全》的研究结果显示,各种研发活动中,代码检视的代码检测率高达60%,可以有效提前发现显而易见的错误随代码上库,提升代码质量,并且实现高级开发人员的知识传递,增强团队质量意识。
华为云CodeArts Repo提供分散式和集中式的代码检视能力,支持团队随时开展代码检视活动。
以合并请求为例,开发人员发起代码合并请求后,系统可自动分配给不同检视人员,检视人员利用碎片化时间检视代码,配合门禁系统保证检视意见关闭才能合入该合并请求。团队成员也可以集中到一起,直接在浏览器中打开代码仓文件,进行在线检视,提出检视意见后使跟踪流程闭环检视意见。

另外,CodeArts Repo提供灵活的检视意见分类功能,既集成华为优秀的实践,使用此功能可以有效规范团队检视活动,同时沉淀团队经验和知识,将知识在公司、产品、项目等不同范围内传递。
特性四:质量门禁,确保每一行入库代码Clean
在软件生命周期中,缺陷发现越早、修复越早,缺陷的影响和修复代价就越小,数据显示,产品发布后每个缺陷的平均修复成本是验证阶段的6倍以上。因此为了避免有缺陷的代码合入主干,灵活有效的门禁控制必不可少。

华为云CodeArts Repo提供“人工审核+CICD自动化检查”双重看护代码质量机制。通过保护分支功能,针对不同的角色控制代码的推送和合并权限,确保代码在推送入库的时候就符合质量要求。
配合CI/CD自动化检查工具链,提供代码静态检查、安全检查、测试结果验证、代码检视人员角色和数量检查、检视意见闭环率等几十种细粒度门禁控制策略,用户可灵活配置以满足不同的企业规范。
特性五:记录代码来龙去脉,双向可追溯
软件的可追溯性是软件工程的基础属性,具备可追溯性是良好的软件工程能力的客观呈现。可追溯性要求软件生产过程中从需求分析到编码、构建、验证、发布过程中产生的需求、设计、代码、用例、缺陷、发布等业务对象以及其关系的准确记录。

华为云CodeArts Repo支持建立工作项和合并请求或者代码提交commit的双向关联关系,实现软件开发过程可追溯,通过可信的开发过程,保障结果可信。
以华为内部为例,团队通过在代码托管工具设置规则,确保了每次的代码入库都有对应的工作项,通过对关联关系数据进行识别、监控和预警,及时发现不合规的代码,提高产品质量。企业也可以在处理现网问题时根据关联关系找到对应的代码版本,快速修复。
特性六:内置多种模板,确保开发规范有序
软件开发是一项创造性的活动,也是一项复杂的多人协同活动。在软件开发过程中,企业需要选择适合的开发工作流,并建立规范的开发协作流程来保障产品能够持续高质量交付。

华为云CodeArts Repo凝聚了华为公司内部各类研发场景的规范,可以帮助企业进行组织级开发规则制定和落地,促进产品质量和开发效率提升。
典型如代码提交规则、分支/tag命名规则,代码上库审核规则、代码质量门禁规则等,也提供了灵活的模板配置能力,如仓库模板、代码检视模板、合并请求模板。企业可以通过这些规范确保团队开发行为一致,产生的研发数据格式一致,并基于研发数据做效能分析,持续改进研发能力。
得益于以上特性,华为云CodeArts Repo如今已广泛应用于国内外财政、社保、物流、能源等领域,加速企业数字化转型。
如上海某知名大型物流企业拥有超过100个系统平台,1000多个仓库,其业务涉及快递、物流、跨境、仓储与供应链等多项业务和解决方案。该企业使用CodeArts Repo管理代码和协助规范企业开发活动,有效提升研发团队协作效率,降低代码质量问题70%。
源于华为,服务世界,华为云CodeArts Repo着力将华为公司30余年的源代码管理经验外溢,服务千百行业。面向未来,华为云将对CodeArts Repo持续创新升级,探索边缘下载加速、多仓协同,提供更丰富的安全检查特性,携手国内外客户、伙伴以及开发者,共同提升软件开发质量和效率。
CodeArts Repo:6大特性助力企业代码稳定可靠安全无忧的更多相关文章
- H5游戏定制,4大优势助力企业曝光10W+
H5游戏定制,4大优势助力企业曝光10W+ 移动互联网已成为了人们生活的一部分,普通广告形式已很难吸引用户的眼球,企业要怎样才能将广告更广泛的传播给更多用户呢?根据TOM游戏多年从业经验,为大家分享以 ...
- Java 11必掌握的8大特性,完美代码信手拈来
[MyEclipse CI 2019.4.0安装包下载] 美国时间 09 月 25 日,Oralce正式发布了Java 11,这是据Java 8以后支持的首个长期版本.从官方发布的支持路线图表看出,J ...
- jdk8十大特性并代码demo(转)
一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 4.方法引用,与Lambda表达式联合使用 5.引入重复注解 6.类型注解 7.最新的Da ...
- 阿里云智能数据构建与管理 Dataphin公测,助力企业数据中台建设
阿里云智能数据构建与管理 Dataphin (下简称“Dataphin”)近日重磅上线公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客 ...
- 京东云数据库 RDS助力企业便捷运维
iPhone6发布那年,京东在国贸等商圈送货最快速度数分钟,包括从下单到送达.这是一个极端的富含营销因素例子.即便如此,常态来看,隔天到货的这种业务模式,也是基于同样的支撑:营销业务.物流业务,大数据 ...
- BPM助力企业数字化转型
自九十年代末,流程管理开始引入国内,至今已经有20多年的历史了,由最初的部门级应用向企业级应用转变,大家的认知也经历了一系列的发展变化.不同阶段的信息化水平对企业的流程以及BPM平台也提出了不同的需求 ...
- AngularJS-chapter1-2-四大特性
4大特性 MVC MVC实例 数据模型,控制器,视图 HelloAngular_MVC.html 图中的 ng-controller="HelloAngular" 定义了Hel ...
- ES6的十大特性和认知
---恢复内容开始--- ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率.本文主要针对E ...
- 前端开发者不得不知的es6十大特性(转)
转载自AlloyTeam:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten ...
- 前端开发者不得不知的ES6十大特性
前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will- ...
随机推荐
- mybatis plus很好,但是我被它坑了!
作者今天在开发一个后台发送消息的功能时,由于需要给多个用户发送消息,于是使用了 mybatis plus 提供的 saveBatch() 方法,在测试环境测试通过上预发布后,测试反应发送消息接口很慢得 ...
- Welcome to YARP - 4.限流 (Rate Limiting)
目录 Welcome to YARP - 1.认识YARP并搭建反向代理服务 Welcome to YARP - 2.配置功能 2.1 - 配置文件(Configuration Files) 2.2 ...
- ST-Link v2 刷写 GNUK,年轻人的第一个 OpenPGP 智能卡!
前言 看到了这篇文章 想搞 PGP 智能卡玩,但是 yubikey 死贵 还涉及到某些傻逼政治问题 于是就想找找有无开源实现什么的. 然后就看见了 smartcard 的制作教程,可惜能找到的便宜 j ...
- git中的ole mode 和 new mode提示问题
git status 显示如下(文件内容其实并没有改变): old mode 100644 new mode 100755 原因是: 使用chmod修改过文件权限后,filemode会有变化. 解决办 ...
- GitHub - 如何对开源项目做出贡献
GitHub - 对项目做出贡献 转载来自git官方教程:https://git-scm.com/book/zh/v2/GitHub-对项目做出贡献 对项目做出贡献 账户已经建立好了,现在我们来了解一 ...
- 矩阵重叠 (3.18 leetcode每日打卡)
度简单66收藏分享切换为英文关注反馈矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标. 如果相交的面积为正,则称两矩形 ...
- ZooKeeper论文阅读笔记
ZooKeeper论文传送门 介绍 ZooKeeper 是一个开源的分布式协调服务,它提供了高可用性和一致性的数据管理和协调功能.它被设计用于构建可靠的分布式系统,并提供了一组简单而强大的 wait- ...
- Codeforces Round 905 (Div. 3)
Codeforces Round 905 (Div. 3) A. Morning 题意:操作:显示,向前走都为一次操作:目标:显示这四个数 思路:0->10,然后依次作差就行 #include ...
- vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
这章我们讲回调,英文名:Beyond callbacks 一.章节覆盖: 回调函数及其限制,如网关/边缘服务示例所示 未来和承诺--链接异步操作的简单模型 响应式扩展--一个更强大的模型,特别适合组合 ...
- [ABC309Ex] Simple Path Counting Problem
Problem Statement We have a grid with $N$ rows and $M$ columns. We denote by $(i,j)$ the cell in the ...