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