返回 AWS Marketplace 產品列表
FerroRepo
儲存與資料

FerroRepo

Rust-native 通用製品倉庫

單一二進位,無需 JVM / 資料庫 替換的 AWS 服務: Sonatype Nexus / JFrog Artifactory
在 AWS Marketplace 取得

何時收回成本?

回收週期取決於成本項目和替換範圍

該產品的回收週期取決於您目前的 AWS 支出、替換範圍和執行環境。請使用帳單模擬器識別符合的成本項目並取得粗略的節省估算。

用您的帳單估算

估算您的節省金額

輸入相關每月支出或使用量即可獲得粗略估算 — 無需上傳帳單。

完整帳單上傳與其他產品

一個 Rust-native 通用產物倉庫,以單個自包含二進位檔案執行,並支援 Sonatype Nexus Repository 3 和 JFrog Artifactory 的 wire protocol,因此現有 Maven、npm、pip、cargo、docker 和 helm 用戶端無需修改即可使用。無需 JVM,也無需維運外部資料庫(嵌入式 SQLite + 本地磁碟區或物件儲存),啟動時間遠低於一秒。

經典 Nexus 或 Artifactory 部署在提供單個產物前,就需要 JVM、數 GB heap 和外部資料庫;FerroRepo 的單二進位模式用一個安全加固二進位檔案替代這些元件,並以自包含 AMI 交付。v0.1.0 完整整合 18 種套件協定中的 12 種,並附帶 in-tree 一致性測試 — Maven、npm、OCI / Docker Registry v2、PyPI(PEP 503 系列)、Cargo(sparse index)、Go module proxy、Raw/Generic、NuGet v3、RubyGems、Helm(classic + OCI)、APT 和 YUM/DNF — 另外提供 Nexus REST v1 和 Artifactory 相容的管理介面。儲存採用分層(hot/warm/cold)並附帶內容定址重複資料刪除,支援可插拔的 S3 / GCS / Azure / MinIO blob 後端。預設啟用驗證:允許匿名讀取,但所有寫入和管理操作都需要已驗證主體。

面臨挑戰

傳統的製品倉庫如 Sonatype Nexus Repository 3 和 JFrog Artifactory 在服務單個製品之前,就需要 JVM、數 GB 的堆積記憶體以及外部資料庫才能運作。它們啟動緩慢且帶來了切實的維運開銷。團隊需要一個更輕量、更易於運作的倉庫,同時保持現有的 Maven、npm、pip、cargo、docker 和 helm 工具鏈不變。

運作原理

  1. 1

    啟動單個自包含二進位檔案

    FerroRepo 作為單個行程運作,無需 JVM 和外部資料庫,將元資料持久化到嵌入式 SQLite,並將 blob 持久化到本機磁碟區或物件儲存。它在小型執行個體上啟動時間遠低於 1 秒,並作為一個加固的、自包含的 AMI 交付。

  2. 2

    現有用戶端無需修改即可指向它

    FerroRepo 支援 Nexus Repository 3 和 Artifactory 的線上(on-the-wire)HTTP 協定,因此 Maven、npm、pip、cargo、docker、helm 和 apt/yum 用戶端無需修改設定即可直接指向它。v0.1.0 已完全接入 18 種協定中的 12 種,並附帶內建(in-tree)的一致性測試。

  3. 3

    分層儲存並對 blob 進行重複資料刪除

    儲存採用分層設計(熱/溫/冷),並透過內容定址進行 blob 重複資料刪除。利用 object_store,blob 後端可在 S3 / GCS / Azure / MinIO 之間進行插拔替換。預設開啟身分驗證 —— 允許匿名讀取,但所有寫入和管理操作都需要具有正確權限範圍的已驗證主體。

產品亮點

Nexus 3 + Artifactory wire-compatible — 現有建置工具(Maven / npm / pip / cargo / docker / helm)無需修改即可使用。

單一二進位檔案,無需 JVM 和外部 DB;亞秒級啟動,支援 SQLite + 可插拔 S3 / GCS / Azure / MinIO blob 儲存。

18 種協議中已有 12 種整合並附帶一致性測試;預設啟用 auth(匿名讀,驗證寫)。

包含內容

  • 基於 Amazon Linux 2023 的自包含 AMI(Graviton / arm64,運作在 t4g、c7g、m7g 和 r7g 類執行個體上)
  • 無需 JVM 和外部資料庫的單二進位檔案伺服器(嵌入式 SQLite 儲存元資料,本機磁碟區或物件儲存存放 blob,啟動時間低於 1 秒)
  • 完全接入了 18 種協定中的 12 種(Maven、npm、OCI / Docker Registry v2、PyPI (PEP 503 家族)、Cargo 稀疏索引(sparse index)、Go 模組代理(module proxy)、Raw/Generic、NuGet v3、RubyGems 緊湊索引(Compact Index)、Helm classic + OCI、APT、YUM/DNF),外加相容 Nexus REST v1 和 Artifactory 的管理介面
  • 分層的熱/溫/冷儲存,帶內容定址的 blob 重複資料刪除
  • 透過 object_store 可插拔替換的 S3 / GCS / Azure / MinIO blob 後端
  • 預設開啟身分驗證(允許匿名讀取;所有寫入和管理操作均需身分驗證;支援內建用戶或 OIDC 聯合身分驗證;在首次啟動時為每個執行個體生成唯一的隨機管理員密碼)
  • 來自 abyo software 的支援([email protected],一個工作日内首次回應;透過 Private Offer 提供的 Enterprise 等級包含 24/7 SLA,且針對 Critical 嚴重級問題提供 1 小時回應)

適用場景

希望將 Nexus 或 Artifactory 替換為無需 JVM 和外部資料庫即可運作的單二進位檔案的團隊

需要一個能夠讓現有的 Maven、npm、pip、cargo、docker 和 helm 用戶端保持設定不變即可運作的、網路協定相容(wire-compatible)的製品倉庫

適用於 CI/CD 管道的快速啟動、低開銷單節點套件登錄表

運作一個適合公開映像檔的儲存庫,允許匿名讀取,同時透過身分驗證保護寫入

常見問題

支援哪些套件生態系統?

v0.1.0 已完全接入 18 種協定中的 12 種,並附帶 in-tree 一致性測試:Maven、npm、OCI / Docker Registry v2、PyPI(PEP 503 系列)、Cargo(sparse index)、Go module proxy、Raw/Generic、NuGet v3、RubyGems(Compact Index)、Helm(classic + OCI)、APT 和 YUM/DNF。其餘 6 種(Conan、Conda、CRAN、Hex、CocoaPods、Bazel)已聲明在規劃範圍內,目前傳回 501。老實說,這些未實作的協定目前還無法運作。

真的不需要 JVM,也不需要外部資料庫嗎?

是的。FerroRepo 作為無 JVM 的單一行程運作,將元資料持久化到嵌入式 SQLite 資料庫中,並將 blob 持久化到本機磁碟區或物件儲存中。無需運作任何外部資料庫。傳統的 Nexus 或 Artifactory 在提供單個製品之前需要 JVM、數 GB 的堆積記憶體以及外部資料庫,而 FerroRepo 用一個經過加固的單一二進位檔案取而代之,在小型執行個體上啟動時間遠低於 1 秒。

儲存是如何組織的?

儲存採用熱/溫/冷分層,並透過內容定址進行 blob 重複資料刪除。blob 後端可以透過 object_store 插拔切換 S3 / GCS / Azure / MinIO,而元資料則儲存在嵌入式 SQLite 中。

身分驗證是如何運作的?

身分驗證預設開啟,採用預設安全的策略。允許匿名讀取,而所有寫入和管理操作都需要具有正確範圍的已驗證主體。支援內建用戶或與外部 OIDC 發行商聯合,並在首次啟動時生成執行個體唯一的隨機管理員密碼 — 絕不使用預設或共享密碼。

它可以跨多個節點擴充嗎?

目前不行。支援的拓撲是單節點(單二進位),使用 SQLite 元資料以及 S3 上的 blob 層。水平擴充的多節點 / Postgres 元資料拓撲已在路線圖中,目前尚不支援。老實說,目前不提供多節點設定。

為什麼更便宜

假設在 us-east-1 為 50 名開發者運行內部 artifact 儲存庫, 儲存 3 TB Maven / npm / Docker 產物。

不使用 FerroRepo (自託管 Nexus 3)
建置 / CI
JVM 4GB 堆積
Nexus 3
m5.xlarge + RDS
blob store
S3 儲存桶
m5.xlarge 隨需
$175 / 月
RDS PostgreSQL (db.t3.medium)
$150 / 月
S3 儲存 (3 TB)
$70 / 月
月度合計
$395 / 月
使用 FerroRepo
建置 / CI
單一執行檔
FerroRepo
t3.medium
S3 卸載 + 去重複
S3 儲存桶
FerroRepo 實例 (t3.medium + 軟體費)
$80 / 月
S3 儲存 (2 TB, 去重複後)
$47 / 月
月度合計
$127 / 月
−68%與自託管 Nexus 3 相比

按開發者數量選擇 FerroRepo 實例

團隊規模推薦執行個體FerroRepo 實例費用每月總計對比 Nexus 3
~10 名開發者t3.small$40 / 月$55 / 月 (Nexus $300, −82%)
~50 名開發者t3.medium$80 / 月$127 / 月 (Nexus $395, −68%)
~500 名開發者m5.large$120 / 月$350 / 月 (Nexus $700, −50%)

僅供參考。自託管 Nexus 3 採用典型的 m5.xlarge + RDS PostgreSQL (db.t3.medium) + S3 卸載架構。與付費的 JFrog Artifactory 相比, 僅授權費用就達 $3k–$10k/月, 因此此處以 Nexus 3 OSS 作為基準。FerroRepo 是無 JVM 與外部 DB 的單一二進位檔, blob 卸載到 S3 並按內容雜湊去重。

計費模式

按小時收取軟體費用 + EC2(t4g / c7g / m7g / r7g 級,Arm)。按執行個體類型計量。

在 AWS Marketplace 取得