写点什么

优步发布开源服务 Kraken:一款 P2P Docker 容器仓库

作者:K Jonas

  • 2019-04-09
  • 本文字数:1284 字

    阅读完需:约 4 分钟

优步发布开源服务Kraken:一款P2P Docker容器仓库

优步于 3 月 5 日发布了 Kraken,这是一个开源的点对点(P2P)Docker 容器仓库。Kraken 旨在为大规模系统提供 Docker 镜像服务,解决跨区域支持、性能瓶颈和混合云环境所面临的挑战。


Kraken 大致基于BitTorrent协议,与 Docker registry API 兼容,并提供可配置的存储后端,诸如S3HDFS等。Kraken 最初于 2018 年初在优步内部开始部署,随后向开源社区公开。


在容器中运行的Docker镜像是由镜像层组成的,这些层包含了相对之前的层所发生的变更,并与镜像文件和可执行文件的二进制大对象(blob)相关联。Docker容器仓库是服务端应用,用于存储和分发镜像层和镜像 blob。Docker 在Docker Hub 提供了免费的容器仓库,另外还提供了商业版本的容器仓库。除 Docker 外,还诞生了很多其它容器仓库以满足各种特殊需求,例如私有托管或将 IPFS 实现为存储后端


优步在一个混合云环境中运行自己的大规模分布式集群。 尽管优步努力通过镜像缓存和数据库分片来提高性能,但 Docker 仓库还是无法满足其环境下不断增长的需求,最终优步团队选择构建了自己的解决方案


Kraken 在优步部署以来,每天能支持超过 100 万个 blob。 在优步的生产高峰时期,Kraken 可以在 30 秒内分发多达 2 万个 blob,每个 blob 的大小从 100MB 到 1GB 不等。 根据Kraken文档介绍,Kraken 能够在每个主机上以高于下载速度上限达 50%的速度分发 Docker 镜像。此外,集群大小和镜像大小都对下载速度没有显著影响。Kraken未来的改进将集中在提升大镜像性能、安全性改进和支持 Docker 标记转换等方面。


Kraken 的优秀架构是优步得以实现可扩展且高度可用的容器仓库的关键所在。该设计的基础是一个定制的 P2P 网络,其中包含数量有限的主机,这些主机将内容分发(seed)到代理网络上。网络中的代理形成具有高连通性和小直径的伪随机规则图,这是提升系统下载速度的重要环节。代理接受来自源的内容,源则在后端存储镜像 blob,并与网络中的端点连接,返回 docker 所请求的镜像。



优步 Kraken 架构(图片来自 Kraken README)


Kraken 最初是使用 BitTorrent 构建的,但 Kraken 与 BT 网络面临的挑战差异导致 Kraken 团队开始构建自己的 P2P 驱动。但该团队也在积极审查 Kraken 协议,以便使其再次与 BitTorrent 实现兼容。


阿里巴巴的原生云计算基金会(CNCF)下属的Dragonfly项目也是一个开源的 P2P 镜像和文件分发系统,可以解决原生云应用中面临的分发问题。Kraken 的文档中注明了两者之间的主要差异:


Dragonfly 集群有一个或几个“超级节点”,用于协调集群中每个 4MB 大小的数据块的传输。虽然超级节点能够做出最佳决策,但整个集群的吞吐量会受到一台或数台主机的处理能力限制,并且随着 blob 大小或集群大小的增加,整体性能会线性下降。

Kraken 的追踪器仅帮助协调连接图,并将实际数据传输的协商留给单独的端点处理,因此 Kraken 可以更好地扩展到大型 blob。最重要的是,Kraken 是 HA 并支持跨集群复制,这两点都是可靠的混合云设置所必需的。


有关 Kraken 的更多信息可以访问GitHub页面,也可以加入优步的Slack频道


查看英文原文Uber Releases Kraken: An Open Source P2P Docker Registry


2019-04-09 08:005254

评论

发布
暂无评论
发现更多内容

瓴羊Quick BI数据门户,让管理企业像浏览网页一样轻松

对不起该用户已成仙‖

小程序营销模板的发展现状及前景分析

没有用户名丶

小程序

XLD音频无损解码器:X Lossless Decoder中文激活版

真大的脸盆

Mac Mac 软件 音频解码 音频处理工具 音频管理

火山引擎VeDI零售行业解决方案 聚焦精准营销场景提升品牌转化

字节跳动数据平台

大数据 云服务 数据平台 企业号 3 月 PK 榜

太厉害了!GitHub上标星80K的微服务实战笔记,看完跪了

Java 微服务 Spring Cloud Spring Cloud Aliababa

ONES 入选北大光华 MBA 整合实践项目,推动校企合作

万事ONES

扫一扫,原来这么简单

HarmonyOS SDK

HMS Core

文档智能分析产业实践,基于PP-StructureV2和OpenVINO实现训练部署开发全流程

飞桨PaddlePaddle

bitget合约一键跟单社区交易平台开发功能以及模式分析

开发微hkkf5566

记一次 rr 和硬件断点解决内存踩踏问题

NebulaGraph

数据库 debug

精华抢先看|龙蜥社区操作系统安全两大白皮书即将重磅发布

OpenAnolis小助手

操作系统 白皮书 系统安全 Meetup 龙蜥社区

2023飞书未来无限大会谢欣演讲highlight:三件套、Office提升、出海

B Impact

电力行业等保定级评级依据是什么?分为几个等级?

行云管家

电力 等保 等保测评

时效准确率提升之承运商路由网络挖掘 | 得物技术

得物技术

供应链履约时效,java

用 JavaScript 写出一个彩票系统?

泰罗凹凸曼

JavaScript 前端

Python Dev Day@北京站,我们来啦!

PyChina

软件测试/测试开发丨iOS自动化真机测试验证环境过程中常见问题

测试人

软件测试 自动化测试 测试开发 ios测试

手把手教你如何使用MyBatisPlus

Java你猿哥

mybatis 实战 Mybatis-Plus

软件测试/测试开发丨app自动化测试之Appium 源码修改定制分析

测试人

软件测试 自动化测试 测试开发 appium

2023年实用性好的堡垒机推荐

行云管家

网络安全 堡垒机

在 Kubernetes 中部署应用交付服务(第 1 部分)

NGINX开源社区

融合低代码与GPT,微软的又一个神奇颠覆

ToB行业头条

自动化回归测试平台 AREX 0.2.7 版本正式发布!

AREX 中文社区

开源 自动化测试 接口测试 回归测试

国际版语音房聊天APP,视频语音平台开发搭建经验及后台项目简要说明

山东布谷科技胡月

语音聊天系统 语音直播app开发 国际版语音直播APP 国际版语音系统源码 语音聊天房系统搭建

优步发布开源服务Kraken:一款P2P Docker容器仓库_开源_InfoQ精选文章