Artifactory清理未使用的二進位制品的最佳實踐

JFrog傑蛙科技發表於2020-03-10

Artifactory 充分利用了 ,但是這種機制無法代替常規的工件清理任務。軟體開發可能很雜亂,很多時候 Artifactory 中的許多工件都從未使用過。

例如,許多 CI / CD 構建都配置為基於原始碼控制 提交 執行,並且一旦將這些快照構建傳送到 Artifactory ,就永遠不會實際下載它們。  

考慮到軟體開發的動態性質,大多陣列織都有自己的資料保留策略。由您決定可以清除哪些資料,但是內建工具可以覆蓋大多數情況。

通常,在 Artifactory 中使用三種技術來管理工件儲存:

限制保留多少 SNAPSHOT
清除超大快取
刪除未使用的工

限制保留多少 SNAPSHOT

Artifactory 具有內建機制來限制構建的 快照 。該系統的目的是確保在覆蓋 release 工件之前將其從 snapshots 儲存庫中升級出來。

Artifactory 支援六種儲存庫型別的 最大唯一快照 標記:

– Maven  – NuGet
– Gradle  –Ivy
– Docker  – SBT

 

Artifactory 使用 跟蹤快照的數量。這意味著使用者在上載快照工件時需要遵循預定義的模式(大多數客戶端會自動處理)。  

例如,此 Maven JAR 檔案被識別為快照執行編號 3 的一部分:

jfrog / hello / 1.0.5-SNAPSHOT / hello-1.0.5-20190620.224837-3.jar  

 

大多數 CLI 客戶端使用特定模式進行上傳, Artifactory 的預設佈局應涵蓋這些情況。您可以根據需要自定義這些儲存庫型別的佈局,以處理自定義上傳路徑。

要在 Artifactory 中啟用此功能,請更新本地儲存庫設定:

啟用此設定後,在 最大唯一快照數 上方進行的上傳將在下次構建執行期間刪除所有較早的發行版。  

最高的數字將始終是最新版本。

清除超大緩

Artifactory 的遠端儲存庫將下載的檔案儲存在快取中。通常,保留整個快取是有益的,因為它可以加快下載速度。但是,如果專案使用的工件有所更改,則值得定期清除快取。

Artifactory 中有支援此功能的內建系統。要啟用自動快取清除,請轉到遠端儲存庫選單的 高階 部分。  

您可以在 “  未使用的工件清理期 部分中新增 清理工件之前的小時數:


這並不意味著工件會在 12 小時後被刪除。相反,它在內部將工件標記為 未使用

“  管理員 ”->“ 高階 ”->“ 維護  ”  下找到一個單獨的作業,稱為 清理未使用的快取工件 ,它將執行清理。預設情況下,此 cron 作業每天執行一次。

刪除未使用的工

通常, Artifactory 通常不會自動刪除二進位制檔案。也有例外,例如本文中已討論的欄位。

話雖如此,透過刪除長時間未下載的工件可以節省大量儲存空間。自動清除未使用的檔案的最佳方法是實施

該外掛在 Cron Job 上執行,並自動刪除 “ X” 天之內尚未下載的任何工件。

如果您需要進一步自定義外掛,則 可以在程式碼中更改 Artifactory Query Language 語句:

 def aql =“ items.find {” repo“ ”“ + repoKey +”“ ” type“ ” any“ ” @ cleanup.skip“ ” true“} )。 include ” repo“ ” path “ 名稱 型別

需要注意的一件事: artifactCleanup Docker Repositories 上不起作用。  

Docker 映像層作為單獨的工件儲存在 “ image” 資料夾中。如果大多數 Docker 客戶端中已經有一個層,則不會經常下載該層。由於行為上的差異,

它依賴 manifest.json 檔案的下載計數,該檔案始終在發生 “ docker pull” 時下載。

 

 

參考資料:

 

補充資料:


- AQL 清理:

 

https://jfrog.com/blog/advanced-cleanup-using-artifactory-query-language-aql/

 

- 清理已有資料: 透過 Rest API 清理 90 天內無人下載的 snapshot ,或者是 90 天以前的所有 snapshot ,這樣能夠大大減少儲存量,加快索引速度。

 

 

- 定期清理新增資料: 在頁面上配置實時清理 snapshot

 

 

更多精彩內容可以專注我們的線上課堂

微信搜尋公眾號:jfrogchina 獲取課程通知


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

相關文章