1、背景和痛點
大企業內部,跨團隊,跨地域,致使文件共享困難數據庫
若是不使用Artifactory,如何實現跨數據中心的文件共享呢?微信
- 掛載NFS文件系統,開通跨數據中心的rsync/sftp協議
- 自研解決方案,經過REST API或者CLI方式, 例如,雅虎的dist工具
- 私有或者公有的雲儲存方案
- 利用SCM版本控制系統
- 對於編譯構建效率影響很大網絡
NFS和雲儲存的方式對網絡要求很高,穩定性得不到保證。自研的方式須要投入不少人力物力,利用SCM版本控制工具對二進制文件支持很差,尤爲是大文件,還有可能會對構建效率形成影響。能夠看到上面幾種方式穩定性不能保證,並且須要額外的投入。架構
2、 Artifactory用做文件共享中心
那麼,Artifactory 如何解決這個問題:curl
首先,雖然Artifactory被當作管理全語言二進制文件的製品倉庫。Artifactory一般被集成到構建流程中,這樣構建工件能夠方便的部署到不一樣環境或者用於後續Docker鏡像和亞馬遜系統鏡像的構建。工具
然而,Artifactory首先是一個支持元數據的文件管理系統,能夠管理任何類型文件以及相關數據,利用其能夠在集羣之間同步複製的功能,也能夠被用做跨數據中心分發不一樣類型文件的通用平臺。url
架構圖spa
只容許在指定的一個Artifactory集羣上傳,而後同步到其它生產環境。例如: IDC1,IDC2,AWS這幾個環境不容許手動上傳,只容許從Corp環境同步,確保數據的來源只有一個,保證數據的一致性。.net
搭建步驟命令行
對於Artifactory用戶來講,只須要建立相應對的共享倉庫,而後開啓同步功能便可,不須要增長額外的投入。並且同步功能對網絡要求不高。
開啓Artifactory的同步功能:
上傳下載文件
例如, 將sharefile.tgz上傳到my-local-repo倉庫
命令行方式:
jfrog rt u sharefile.tgz my-local-repo
REST API方式:
curl -H "X-JFrog-Art-Api: ${API_KEY}" -X PUT "${artURL}/ my-local-repo/sharefile.tgz " -T sharefile.tgz
下載sharefile.tgz 文件
命令行方式:
jfrog rt dl my-local-repo/sharefile.tgz
REST API方式:
curl -H "X-JFrog-Art-Api: ${API_KEY}" -X GET "${artURL}/my-local-repo/ sharefile.tgz " -o sharefile.tgz


這樣便可進行文件的上傳和下載,一旦上傳成功,會自動觸發同步機制,推送到遠端的 Artifactory Server 或者公有云的 Artifactory Server。
3、 收益
使用Artifactory的好處
Artifactory已是CI/CD流程的一部分,能夠方便的集成
對於跨數據中心的文件分發只須要開啓同步功能
- 對網絡要求不高
- 具有友好的界面供用戶使用
- 支持REST API方式上傳和下載文件,方便實現自動化
- 統一多數據中心的文件來源,確保文件一致
使用Artifactory能夠解決的問題
- 管理第三方工具和包
- 能夠指定特殊版本
- 解決網絡訪問受限的狀況
- 做爲DevOps流程中配置文件和資源文件管理的中心
- 儲存不適合在代碼版本控制系統中管理的文件
- 大文件
- 二進制文件
- 儲存數據庫備份和應用目錄的快照
- 能夠做爲災備系統的一部分
更多精彩內容能夠關注咱們的在線課堂
微信搜索公衆號:jfrogchina 獲取課程通知