天天看點

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

作者:華為雲
2022年2月,黑客竊取某著名公司大量源碼,包含硬體原理圖、源代碼、顯示卡驅動源碼等資訊,并對企業勒索巨額贖金;3月,全球最大的開源代碼托管網站經曆了多次長達數個多小時的當機,數百萬開發者無法送出代碼,導緻開發活動中斷。

源代碼是企業最寶貴的資産之一,一旦儲存源代碼的系統出現安全性或穩定性問題,将給企業商業及信譽帶來不可估量的損失。随着軟體規模的不斷擴大,生成軟體的源代碼規模也在急劇上升,單個軟體系統規模已達數億行、開發人員達數千人——如何管理好龐大的源代碼,并讓企業員工持續穩定的開展軟體開發活動将成為一個重大的挑戰。

2月20日,華為雲代碼托管服務CodeArts Repo将于22:00正式上線,這是一款全棧自研、基于Git的雲端代碼托管服務,旨在保護企業核心代碼資産安全,提升企業研發品質和效率。

代碼管理工具

是軟體開發的基礎

不斷提升研發品質和效率,縮短TTM(Time to Market)是軟體企業商業成功的關鍵。如今,一款軟體通常由多人協作開發而成,代碼管理工具不僅是研發資産的重要載體,同時也支撐了版本化配置管理、代碼開發的工作流等活動,通過與CI/CD工具服務內建,能夠有效提升團隊協作效率和自動化傳遞效率。

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

▲代碼管理工具在開發活動中發揮着關鍵作用

為了讓代碼資産更加安全和穩定,一款現代化代碼管理工具應當具備如下主要能力:

版本控制:包含代碼存儲功能,支援代碼上傳和下載下傳,并能夠簡單、準确地記錄和重制代碼的任何一個曆史版本。

協同開發:支援多人協同開發,如不同開發人員可同時在同一個軟體子產品上工作,同時對同一代碼部分做不同的修改,即使是跨地域分布的開發團隊也能互不幹擾。

品質管控:提供線上閱讀代碼和代碼檢視功能,支援自動化持續內建與持續傳遞工具(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在架構上充分利用雲原生技術優勢,基于雲化基礎設施,實作容災、備份、流控、服務降等,保障了業務不中斷和資料不丢失,多元度提升可靠性。

CodeArts Repo在技術上突破底層硬體IO帶寬限制、修改Git核心提升檔案下載下傳尋址效率、應用多級緩存等手段提升代碼下載下傳效率,經測試,相比開源同類産品具有超過10倍的寫入、超過50倍的讀取能力提升,可支撐萬級并發下載下傳,10萬級并發線上作業。

▶特性二:覆寫基于Git的主要工作流,滿足多種開發場景

華為雲CodeArts Repo支援Git Flow、Gitlab Flow、Github Flow等所有工作流。華為将以前使用Gitlab、Github、Gerrit部署的100多套系統歸一到CodeArts Repo一套系統,期間經曆了超過10000條來自華為各産品線的需求錘煉,不斷完善和優化,既能滿足強流程規範的大規模産品協同開發,也适用于采用DevOps模式、快速上線的産品開發。

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

▶特性三:多形式代碼檢視活動,提升代碼品質,傳遞開發經驗

《代碼大全》的研究結果顯示,各種研發活動中,代碼檢視的代碼檢測率高達60%,可以有效提前發現顯而易見的錯誤随代碼上庫,提升代碼品質,并且實作進階開發人員的知識傳遞,增強團隊品質意識。

華為雲CodeArts Repo提供分散式和集中式的代碼檢視能力,支援團隊随時開展代碼檢視活動。

以合并請求為例,開發人員發起代碼合并請求後,系統可自動配置設定給不同檢視人員,檢視人員利用碎片化時間檢視代碼,配合門禁系統保證檢視意見關閉才能合入該合并請求。團隊成員也可以集中到一起,直接在浏覽器中打開代碼倉檔案,進行線上檢視,提出檢視意見後使跟蹤流程閉環檢視意見。

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

另外,CodeArts Repo提供靈活的檢視意見分類功能,既內建華為優秀的實踐,使用此功能可以有效規範團隊檢視活動,同時沉澱團隊經驗和知識,将知識在公司、産品、項目等不同範圍内傳遞。

▶特性四:品質門禁,確定每一行入庫代碼Clean

在軟體生命周期中,缺陷發現越早、修複越早,缺陷的影響和修複代價就越小,資料顯示,産品釋出後每個缺陷的平均修複成本是驗證階段的6倍以上。是以為了避免有缺陷的代碼合入主幹,靈活有效的門禁控制必不可少。

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

華為雲CodeArts Repo提供“人工稽核+CICD自動化檢查”雙重看護代碼品質機制。通過保護分支功能,針對不同的角色控制代碼的推送和合并權限,確定代碼在推送入庫的時候就符合品質要求。

配合CI/CD自動化檢查工具鍊,提供代碼靜态檢查、安全檢查、測試結果驗證、代碼檢視人員角色和數量檢查、檢視意見閉環率等幾十種細粒度門禁控制政策,使用者可靈活配置以滿足不同的企業規範。

▶特性五:記錄代碼來龍去脈,雙向可追溯

軟體的可追溯性是軟體工程的基礎屬性,具備可追溯性是良好的軟體工程能力的客觀呈現。可追溯性要求軟體生産過程中從需求分析到編碼、建構、驗證、釋出過程中産生的需求、設計、代碼、用例、缺陷、釋出等業務對象以及其關系的準确記錄。

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

華為雲CodeArts Repo支援建立工作項和合并請求或者代碼送出commit的雙向關聯關系,實作軟體開發過程可追溯,通過可信的開發過程,保障結果可信。

以華為内部為例,團隊通過在代碼托管工具設定規則,確定了每次的代碼入庫都有對應的工作項,通過對關聯關系資料進行識别、監控和預警,及時發現不合規的代碼,提高産品品質。企業也可以在處理現網問題時根據關聯關系找到對應的代碼版本,快速修複。

▶特性六:内置多種模闆,確定開發規範有序

軟體開發是一項創造性的活動,也是一項複雜的多人協同活動。在軟體開發過程中,企業需要選擇适合的開發工作流,并建立規範的開發協作流程來保障産品能夠持續高品質傳遞。

穩定可靠安全無憂,華為雲釋出代碼托管服務CodeArts Repo

華為雲CodeArts Repo凝聚了華為公司内部各類研發場景的規範,可以幫助企業進行組織級開發規則制定和落地,促進産品品質和開發效率提升。

典型如代碼送出規則、分支/tag命名規則,代碼上庫稽核規則、代碼品質門禁規則等,也提供了靈活的模闆配置能力,如倉庫模闆、代碼檢視模闆、合并請求模闆。企業可以通過這些規範確定團隊開發行為一緻,産生的研發資料格式一緻,并基于研發資料做效能分析,持續改進研發能力。

得益于以上特性,華為雲CodeArts Repo如今已廣泛應用于國内外财政、社保、物流、能源等領域,加速企業數字化轉型。

如上海某知名大型物流企業擁有超過100個系統平台,1000多個倉庫,其業務涉及快遞、物流、跨境、倉儲與供應鍊等多項業務和解決方案。該企業使用CodeArts Repo管理代碼和協助規範企業開發活動,有效提升研發團隊協作效率,降低代碼品質問題70%。

源于華為,服務世界,華為雲CodeArts Repo着力将華為公司30餘年的源代碼管理經驗外溢,服務千百行業。面向未來,華為雲将對CodeArts Repo持續創新更新,探索邊緣下載下傳加速、多倉協同,提供更豐富的安全檢查特性,攜手國内外客戶、夥伴以及開發者,共同提升軟體開發品質和效率。

關注@華為雲,了解更多資訊

繼續閱讀