大家好,我是歐盆索思(opensource),每天為你帶來優秀的開源項目!
Uber 這家公司相信國人不陌生,除了之前的打車大戰,程序員,特別是 Go 程序員應該對 Uber 更熟悉。比如它的 zap 日誌庫[1],fx 依賴注入庫[2],style guide[3] Go 風格指南,可見 Uber 在 Go 語言方面應用不少。今天推薦的這個開源項目,也是使用 Go 語言實現的。
項目地址:https://github.com/uber/kraken,Star 數:4k。
Kraken 是一個基於 P2P 的 Docker registry,專注於可伸縮性和可用性。它設計用於混合雲環境中的 Docker 鏡像管理,複製和分發。藉助可插入的後端支持,Kraken 可以輕鬆地作為分佈層集成到現有 Docker registry 設置中。
從 2018 年初開始,Kraken 就在優步公司生產環境使用。在我們任務最多的集群中,Kraken 每天會分發超過 100 萬個 blobs,其中包括 100k 1G+ blobs。在其最大生產負荷時,Kraken 在 30 秒內分發了 20K 100MB-1G 的 blobs。
下面是一個小 Kraken 群集的可視化效果:
Kraken 有如下特性:
- 高度可擴展
- 高可用
- 安全度高
- 可插拔的存儲
- 無損跨集群複製
- 最小的依賴
有興趣的可以進一步瞭解、試用、研究。
參考資料
[1]
zap 日誌庫: https://github.com/uber-go/zap
[2]
fx 依賴注入庫: https://github.com/uber-go/fx
[3]
style guide: https://github.com/uber-go/guide