由阿里巴巴集团贡献的Dragonfly项目,已经离开云计算原生运算基金会(Cloud Native Computing Foundation,CNCF)的沙盒阶段,进入了孵化器阶段。Dragonfly项目是一个专用于Kubernetes的云计算原生镜像文件和文件发布系统,目前项目的维护者来自阿里巴巴、eBay、美图、VMware以及虾皮等20多家企业。
在2015年的时候,阿里云创建Dragonfly项目,目的是要改善Kubernetes中镜像文件和文件发布系统的用户体验,让用户可以专注于开发应用程序,而不用花额外的心力管理基础架构,Dragonfly为阿里巴巴容器平台中的骨干技术,每年支持数十亿次的应用程序交付。Dragonfly在2018年的时候被CNCF沙盒接收,并被中国移动、滴滴和蚂蚁金服等企业采用。
Dragonfly由三个主要组件组成,来解决云计算原生的文件发布问题,三个主要组件分别是超级节点、dfget以及dfdaemon;超级节点为主要在同侪网络中,调度以及控制所有发布程序的重要角色,而dfget则为一个同侪代理,用来下载文件片段,另外,dfdaemon则为一个代理服务器,能够拦截从容器引擎到dfget的镜像文件下载请求。
通过P2P镜像文件和文件发布协议,Dragonfly能有效减轻镜像文件注册表和网络的负载,以提升用户体验,由于P2P技术可以充分利用每个同侪的带宽资源提升下载速率,能节省大量的跨IDC带宽以及昂贵的跨境带宽。
Dragonfly也提供用户主机层级的速度限制,由于wget或是curl等文件下载与续传工具,仅能限制当前下载任务的速度,而Dragonfly则提供对整个主机的速度限制功能;其支持各种容器技术,用户可以依需求选用来发布镜像文件,另外,Dragonfly提供CDN机制,可以避免重复的远程下载行为。
Dragonfly与其他许多的CNCF项目集成,包括Prometheus、containerd、Kubernetes以及Helm,最新版本Dragonfly 1.0,已经用程序语言Go全部重写,使其提高在云计算场景中,可发挥灵活与可扩展性,在GitHub中获4,600颗星,项目发起人Sheng Liang认为,随着全球的企业与组织,开始将工作负载搬迁到云计算上,则Dragonfly的采用率将会上升。