為什麼5000+企業放棄Sonatype,選擇JFrog Artifactory

JFrog傑蛙科技發表於2020-01-06

一、背景

製品,artifact,也稱為工件,是指在構建或持續整合過程中從原始碼建立而成的二進位制包,而這些二進位制包通常是透過賦予其的版本號來唯一定位和管理的。製品倉庫,artifact repository,則是儲存和管理這些版本化的二進位制包,並對外提供檢索和訪問方法的應用程式。

製品倉庫通常分為中央倉庫、企業倉庫和本地倉庫。中央倉庫面向公眾開放,儲存和管理預先構建好的二進位制包,通常提供軟體開發的各種公共框架和通用工具庫,如面向Java的Maven中央倉庫,面向Docker映象的DockerHub等。企業倉庫則通常位於企業或團隊內部,一是快取並統一管理中央倉庫的公共製品供內部使用,以提升訪問效率並加強監管,二是用於儲存和管理企業或團隊自身建立而成的各種製品,包括最終交付的應用,或者企業或團隊內部使用的公共庫等。本地倉庫則是構建系統的快取,記錄構建過程中所需及建立的各種製品,並與中央倉庫或企業倉庫互動,完成製品在不同倉庫之間的傳遞。

在當前的DevOps體系當中,企業製品倉庫已成為其中的一個重要環節,除了儲存和管理製品之外,還需要和持續整合、自動測試、持續部署,以及管理、審批等各種系統進行對接和協同,實現資訊的整合、共享和流轉,從而實現流水線式的持續交付。此外,企業製品倉庫也是企業資訊保安管理中的重要節點,只有透過安全審計的製品才能夠被納入到企業製品倉庫,以實現企業持續交付流水線當中的受信源。

目前世界500強中93%的企業,全球共有5000家以上的企業都已經放棄了Sonatype的Nexus而使用JFrog的方案。 為什麼會是這樣?本文根據二者最新的發展情況,從製品管理的各個角度列出二者的技術現狀加以比較,相信大家能夠清晰地得到結論。


二、製品管理的概覽比較

首先,本文從作為企業製品倉庫所需的主要技術要求對二者做一個概覽的比較:

從中可以看出,JFrog的產品支援的語言包型別更為豐富,高可用、定製化擴充套件,以及後設資料等技術方案更為完備,而且提供了Sonatype工具所不具備的複製同步能力,能夠更好的支援跨地域的團隊協同。

我們再從更細節一些的技術點對二者進行比較,如下圖所示:

從中可以看出,JFrog能夠支援代理更多型別的中央製品倉庫,並且能夠提供Docker映象的分層展示。另外,在製品儲存、增強查詢等方面,JFrog也提供了更多的支援。

所以,僅從概覽來看,JFrog無疑比Sonatype具備更為豐富和全面的能力。


三、製品管理的方案比較

第二部分對JFrog和Sonatype的產品特點進行了概覽的比較,本節將從二者的方案特點進行更為全面的分析。

首先來看二者的商業模式,如下圖所示:

JFrog 提供了更為靈活自主的試用方式:在本地化部署的基礎上,也提供了對於雲端和混合雲架構的支援,能夠適應客戶不同的基礎架構需求;而且,具備大規模的可擴充套件性,能夠幫助客戶節省成本。

再從部署方式來看,如下圖:

JFrog 提供了豐富、全面、自動化的部署方式,包括面向Kubernetes環境的Helm Chart編排,方便了產品的部署應用。

再來看可擴充套件性,如下圖:

可以看出,JFrog能夠全面支援企業級應用的擴充套件需求,並保證其穩定性。

當前的開發環境更多的是團隊協作方式,從而要求製品倉庫也能夠支援跨資料中心、跨城市,甚至跨國的協同工作。二者在團隊協同方面的特點如下圖所示:

很明顯,JFrog面向多團隊、跨地域的協同工作提供了豐富、全面的解決方案,而Sonatype只能支援單資料中心的應用模式。

在當前的DevOps體系當中,製品倉庫需要能夠與持續交付工具鏈中的其他系統很好的整合與對接,而從這一角度來看,二者的技術特點如下圖所示:

JFrog 全面的API覆蓋、全功能的CLI工具,以及自定義的後設資料等能力使得其製品倉庫能夠方便、全面地和客戶現有的環境和工具進行整合與對接,從而方便地建設全面、一致的DevOps方案。此外,JFrog還提供了功能擴充套件的使用者外掛框架,支援定製化的二次開發。在這一方面,Sonatype只能提供有限的支援。

從最基本的製品管理的能力來看,JFrog是唯一真正的全語言支援,如下圖所示:

而從製品的儲存方式來看,JFrog提供了更為豐富的解決方案,能夠適應客戶不同的業務需求,從而更大程度地節約成本。如下圖所示:

最後,從製品倉庫的認證安全管理體系來看,JFrog提供了更廣泛的訪問、認證方式,以及靈活的許可權體系,如下圖所示:

綜合上面的比較可以看出,從作為企業製品倉庫所需的各個技術層面和細節來看,JFrog的產品和方案無疑成熟度更高,能夠為企業提供更為豐富、全面、強大且靈活的支援,而Sonatype的產品和方案只能在受限的範圍內提供支援。這也正是目前JFrog在全球商業製品庫市場佔有率第一的原因所在。


四、DevSecOps 的方案比較

在當下軟體應用的開發過程當中,自研的內部程式碼所佔的比例逐步地減少,開源的框架和共用庫已經得到了廣泛的引用然而,開源軟體的大量引用也給我們的應用帶來了安全隱患。據統計,目前14%的NPM包、30%的Docker Hub映象都包含安全漏洞,而Maven包裡有59%的已知安全漏洞還沒有得到修復,而漏洞的平均修復時間是290天,最嚴重級別漏洞的平均修復時間也僅是265天。因此,提供針對外來製品的安全檢測,構建制品受信源,已成為當前DevOps體系中對企業製品倉庫的重要需求。

要想實現實現及時、準確的製品安全掃描,首先要基於準確、全面的安全漏洞資料庫。JFrog和Sonatype使用的安全漏洞資料庫情況如下圖所示:

可見,在NVD(美國國家漏洞資料庫)提供的CVE(公共漏洞和暴露)的基礎上,JFrog還提供了VulnDB這一商業漏洞資料庫。而VulnDB提供了更大範圍的安全漏洞資料,如下圖所示:

JFrog 和Sonatype的安全檢測方案都可以與企業的CI/CD流水線整合。然而支援的程度還是有所不同的,如下圖所示:

從上圖可以看出,JFrog的方案能夠覆蓋更為廣泛的DevOps的鏈條,從而將傳統的DevOps過程擴充套件成為DevSecOps,這也是業界當前的發展方向。

JFrog 的方案能夠在DevOps的各個階段提供安全漏洞監控方面的支援,如下圖:

而且,JFrog的方案還能夠將安全漏洞的監控擴充套件到研發或生產過程中。JFrog提供的KubeXray能夠在Kubernetes的執行環境中檢測並處理POD的安全漏洞問題,如下圖:

而透過與IDE,如IntelliJ IDEA、Eclipse、Visual Studio等的結合,JFrog使得開發人員在開發過程中就能夠時刻關注和了解應用的安全狀況,從而實現安全掃描的左移。如下圖:

除了發現製品的安全漏洞之外,JFrog還提供了針對安全漏洞的精準定位和影響範圍分析的能力,使得安全漏洞的發現和修復更加精準和全面。如下圖:

綜上所述,JFrog是目前能夠唯一提供端到端DevSecOps支援的企業製品倉庫產品,除了提供最完整的商業漏洞資料庫外,JFrog的產品和方案還唯一實現了安全漏洞的跨語言種類的深層次精準定位和影響範圍分析。


五、總結

企業製品倉庫已成為企業建設DevOps體系的重要環節,除了基本的製品儲存與管理外,還需要能夠與DevOps全鏈條實現對接與整合,並提供安全漏洞掃描與監控,建設企業可信源,從而實現完整的DevSecOps解決方案。

透過本文的對比和分析可以清楚地看出,JFrog的產品和解決方案無疑是更為全面、更為豐富、更為靈活、更為強大的選擇。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2672084/,如需轉載,請註明出處,否則將追究法律責任。

相關文章