Artifactory清理未使用的二進位制品的最佳實踐
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Prometheus、Grafana監控Artifactory實踐PrometheusGrafana
- React 進階二-元件最佳實踐React元件
- 最佳實踐(保持、清理ORACLE alert日誌)Oracle
- DHCP最佳實踐(二)
- Java Optional使用的最佳實踐Java
- 使用GitHub的十個最佳實踐Github
- 雲端計算環境春季大清理最佳實踐
- Artifactory & GitLab CI持續整合實踐Gitlab
- 使用Java Optional類的最佳實踐 - oracleJavaOracle
- 使用 Java Native Interface 的最佳實踐Java
- React最佳實踐嘗試(二)React
- 推進 OKR 目標管理落地的最佳實踐OKR
- 用C#實現二進位制的減法(包括二進位制小數)C#
- 對 Lotus Notes 郵件模版進行二次開發的最佳實踐
- RocketMQ的最佳實踐MQ
- mysqldump的最佳實踐MySql
- memcache的最佳實踐
- Java 的最佳實踐Java
- 火掌櫃iOS端基於CocoaPods的元件二進位制化實踐iOS元件
- CapitalOne - Artifactory高可用叢集的自動化部署實踐API
- UITableViewCell使用自動佈局的“最佳實踐”UIView
- 使用Golang建立RESTful API的最佳實踐案例GolangRESTAPI
- 使用canal偷取MySQL的二進位制日誌MySql
- Dotnet core使用JWT認證授權最佳實踐(二)JWT
- Mybatis plus通用欄位自動填充的最佳實踐總結MyBatis
- 簡單電路實踐——電路與二進位制運算
- swoft 假的最佳實踐
- 標籤的最佳實踐
- shrink space的最佳實踐
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 如何使用Nginx對Artifactory進行http應用NginxHTTP
- JS的二進位制操作JS
- JavaScript 二進位制的 ASTJavaScriptAST
- 使用 Mpvue 開發微信小程式的最佳實踐Vue微信小程式
- 使用React構建大型應用的最佳實踐React
- 位,位元組,二進位制,十六進位制間的關係
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換