激發創造力:CodeArts Repo帶你領略高效代碼協同開發之道
一、代碼托管發展史
版本控制系統發展史簡單概括經歷了三代,下面給大家簡單介紹一下:
1、第一代
無網絡部署,一次只能操作一個文件,基于同步鎖阻塞機制,典型的產品:RCS、SCCS
2、第二代
集中式網絡部署,一次可以操作多個文件,支持并發操作不過需要先本地合并,然后提交到版本庫,典型的產品:CVS、Subversion、SourceSafe、微軟的TFS版本控制系統
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 功能架構
1、研發協同
單倉開發協同:代碼瀏覽、合并請求、代碼檢視、文件搜索、保護分支、合入門禁(代碼合并檢查機制)
多倉開發協同:多倉檢視、Change-id、多倉提交、挑單合入、原子合入、細粒度權限。
2、代碼管理功能
- 倉庫&分支管理:倉庫管理、分支管理、tag管理、歷史管理
- 組織權限管理:成員管理、角色管理、權限管理、組織管理
- 檢視&門禁:文件對比、門禁判斷、評論、代碼審核
- 系統集成:需求系統、缺陷系統、CI/CD、自定義擴展
3、代碼存儲特性
- 穩定性:多中心、容災、多活、容器化部署、彈性化伸縮。
- 性能:多副本、分布式數據庫、分布式緩存、分布式部署。
- 安全:漏洞感知、智能監控、防篡改、加密存儲、阻斷隔離、最小權限、態勢感知、攻擊探測。
四、CodeArts Repo 技術能力
- 對外接口:支持SSh/HTTPS、Web Portal、APIs、WebHooks Stream event。
- 運維監控:現網告警、現網拔測、API監控、全鏈路監控、存儲帶寬監控、流量監控、容量監控、升級運維、異常訪問監控。
五、華為云代碼托管技術發展歷程
- 2010:預研代碼倉技術、選型。
- 2013:基于Gitlab改造、完成華為代碼倉上線。
- 2019:完成自研、自主可控代碼倉上線。
- 2020:完成華為內部所有代碼倉統一管理。
- 2022:支撐20萬研發人員使用的成熟CodeArts Repo代碼托管平臺完成。
六、CodeArts Repo使用場景介紹
1、倉庫管理員
- 活動:在項目初期創建倉庫、初始化代碼、倉庫配置設置,同時完成倉庫成員管理、權限管理、配置保護分支權限的配置。
- 交互方式:界面操作、API接口和代碼托管服務交互。
2、開發人員日常開發活動
- 活動:上傳、拉取代碼;拉取分支、創建MR、協作開發;在線監視代碼、修復代碼、關聯需求缺陷單。
- 交互方式:命令行、開發工具、瀏覽器。
3、代碼審核活動
- 活動:在線查看代碼、檢視代碼代碼審核、代碼責任田守護;門禁、代碼合入;管理Committer權限。
- 交互方式:開發工具、瀏覽器。
4、自動化系統配置員
- 活動:流水線webhook等配置;流水線構建觸發;門禁、項目級CI、版本級CI 對接。
- 交互方式:Webhook、API。
5、測試人員
- 活動:測試代碼上傳、下載;出測試軟件包。
- 交互方式:瀏覽器。
6、版本經理發版本
- 活動:鎖庫、發版本打tag。
- 交互方式:瀏覽器。
7、QA/產品經理
- 活動:審計度量、E2E追溯審計。
- 交互方式:API。
七、CodeArts Repo 產品優勢
1、全棧自研,安全無憂
基于云原生架構全棧自研,Cell化部署,獨有的分片加密存儲,IP白名單和細粒度的訪問權限控制,加密傳輸,異地容災備份,為您提供云端極致安全和韌性的代碼托管服務。
2、高效代碼協同開發
內置華為多年變革實踐成果,覆蓋云、管、端車等各類開發協同場景,支持不同規模團隊包括微服務devops和大型團隊協同開發,內置各類規則和模板,確保團隊高效協同.
3、多層級代碼質量防護
基于代碼分支和成員角色的代碼上庫作業流控制,配合工具自動化檢查和人工審核流程內嵌華為CleanCode實踐成果,保證每一行上庫代碼的質量。
4、以代碼為中心的研發資產追溯
作為研發核心資產的代碼,讓你清晰了解每一行代碼的來龍去脈,提供從需求、設計、Story、代碼、缺陷到產品版本的完整追溯路徑,方便版本跟蹤和問題修復。
八、應用場景介紹
1、團隊級別的開發協同
優勢
- 云端代碼存儲,開箱即用
- 簡易開發流程,快速迭代開發
- 多種協同開發模式選擇(分支開發/Fork倉開發)
- 隨時隨地檢視代碼
- 鏈無縫集成自動化流水線
2、企業級別的開發協同
優勢
- 跨團隊,跨地域協同開發
- 組織級代碼開發規范
- 多角色細粒度權限控制
- 多種內嵌模板,統一開發過程
- 研發資產數據分析和洞察
- 豐富的擴展點,方便企業集成
- 代碼核心資產備份
九、CodeArts Repo特性介紹
1、代碼審核上庫門禁
- 特性:多層級、細粒度代碼上庫質量門禁。
- 支持人工審核、自動化流水線集成對上庫代碼進行質量管控,不符合質量指標的代碼不允許入庫,人工審核支持權責分離原則 (SOD),自動化檢查支持分支級管控。
2、代碼檢視
- 特性:多形式的代碼檢視活動。
- 支持基于文件的隨心檢視、合并請求代碼檢視能力,讓團隊集中檢視或者分散式協同檢視,支持檢視模板、檢視人自動分配、檢視任務通知設置檢視意見可跟蹤,可閉環。
3、細粒度權限控制
- 特性:基于角色的細粒度權限控制。
- 針對倉庫管理、倉庫配置、代碼開發等活動提供細粒度的權限控制,不同成員的代碼訪問權限支持分支級權限管控,提升協同開發效率和確保代碼安全。
4、圍繞代碼的E2E追溯
- 特性:圍繞代碼的研發資產追溯。
- 提供從需求、任務、設計、缺陷、代碼、版本的記錄追溯,掌握每一樣代碼的來龍去脈,方便網上問題定位和審計。
5、倉庫規范及模板
- 特性:豐富的倉庫模板,標準化的團隊開發活動。
- 提供倉庫模板,代碼檢視模板,合并請求模板,可配置必填和選填字段,確保團隊開發行為統一,更加方便的基于研發數據做效能分析和改進。
6、安全和韌性
- 特性:提供極致安全和韌性。
- 基于云原生架構全棧自研,提供極致韌性和安全的代碼托管能力,源于華為實踐成果,覆蓋云、管、端、車、IT等超大產品協同開發,10億級代碼管理,萬人團隊并發在線協同作業高并發代碼下載,超大存儲容量.
7、多作業流支持
- 特性:提供多種開發作業協同方式。
- 提供基于Git的多種開發協作模式,既適合中小企業靈活開發模式,也支持中大型企業的復雜開發協作模式。
8、全棧自研
- 特性:華為全棧自研。
- 全新的云化架構,基于云原生架構分層構建,cell集群化部署,智能副本調度,配合獨創的壓縮存儲技術,提升代碼并發訪問上限,支持超大規模、超大團隊協同開發。
十、使用CodeArts Repo的關鍵流程
1、確定開發規范
- 設定默認分支:master。
- 確定保護分支:master與 develop。
確定分支的命名規范:
?Features/abc[特性描述]。
?hotfix/115[問題單日期]。
- 確定版本的命名規范,并用這個規范來打標簽。
- 確定團隊內部統一的Commit規范。
- 確定合并請求的參與者,職責。
2、確定開發流程
- 創建倉庫
- 開發人員下載代碼
- 創建工作分支
- 提交代碼
- 創建合并請求
- 邀請團隊成員,參與代碼評審
- 倉庫管理員,審視后合入代碼
3、配置倉庫規則
大家通過官方幫助文檔進行詳細學習如何配置倉庫規則。
成長地圖_代碼托管 CodeArts Repo_華為云 (huaweicloud.com)。
下面展示配置倉庫規則的一些界面效果,相信對大家了解CodeArts Repo會非常有幫助,大家一起來看看吧。
提交規則:
編輯提交規則:
項目成員管理:
設置分支的保護策略:
編輯保護分支:
合并請求設置界面:
設置代碼審合并請求策略:
代碼合并審核效果界面:
代碼檢視審核詳情界面:
十一、總結
這款華為自研的代碼托管平臺,涵蓋了代碼托管領域幾乎所有的功能特性比如(權限控制、安全性、高性能、代碼審核機制、版本日志記錄、多作業流的支持等等),對于企業和軟件公司來說是非常不錯的選擇。