文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

2023-06-03 19:06

关注

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

2018 年 11 月, 源于阿里巴巴的云原生镜像分发系统—— Dragonfly 在 KubeCon 上海现场亮相,成为 CNCF 沙箱级别项目(Sandbox Level Project)。

Dragonfly 主要解决以 Kubernetes 为核心的分布式应用编排系统的镜像分发难题。2017 年开源即成为阿里巴巴最为核心的基础设施技术之一。开源一年以来,Dragonfly 已在诸多行业落地。

DCOS 是浙江移动容器云平台,目前在平台式运行的应用系统已有 185 套,包括手机营业厅、CRM 应用等核心系统。本文将主要介绍浙江移动容器云(DCOS)平台以 Dragonfly 为改革“利器”,成功解决了运营商大规模集群场景下分发效率低、成功率低以及网络带宽控制难等问题;并反哺社区,在 Dragonfly 界面功能、生产高可用部署层面对 Dragonfly 进行了升级。

DCOS 容器云在生产环境中

遇到的挑战

随着浙江移动容器云(DCOS)平台的持续完善,承载应用不断增加,在运行容器数量接近 10000 个。采用传统 C/S(Client-Server)结构的分发服务体系已经越来越无法适应大规模分布式应用在代码包发布、文件传输时的场景:

Dragonfly 简介

P2P(Peer-To-Peer)是一种点对点网络技术,通过各结点互联,将网络中的资源和服务分散在各个结点上。信息的传输和服务实现直接在结点之间进行,避免了传统 C/S 结构可能的单点瓶颈。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

CNCF 开源文件分发服务解决方案 Dragonfly,是一种基于 P2P 与 CDN 技术,构建了适用于容器镜像和文件的分发系统,有效解决了企业大规模集群场景下文件和镜像分发效率、成功率低以及网络带宽控制的问题。

Dragonfly 的核心组件:

Dragonfly 分发工作原理(以镜像分发为例):
容器镜像不同于普通文件,由多层存储构成,下载也是分层下载,非单一文件。每层的镜像文件都会被分割为 block 数据块并作为种子。下载结束后,通过每层镜像唯一的 ID 和 sha256 算法,重新组合成完整的镜像。确保下载过程的一致性。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践
Dragonfly 镜像下载模式的过程如下图所示:

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践
  1. dfget-proxy 拦截客户端 docker 发起的镜像下载请求(docker pull)并转换为向 SuperNode 的dfget 下载请求;

  2. SuperNode 从镜像源仓库下载镜像并将镜像分割成多个 block 种子数据块;

  3. dfget 下载数据块并对外共享已下载的数据块,SuperNode 记录数据块下载情况,并指引后续下载请求在结点之间以 P2P 方式进行数据块下载;

  4. Dokcer daemon 的镜像 pull 机制将最终将镜像文件组成完整的镜像。

根据 Dragonfly 的上述特性,浙江移动容器云平台结合生产实际决定引入 Dragonfly 技术对现行代码包发布模式进行改造,通过 P2P 网络分摊发布时产生的单一文件服务器传输带宽瓶颈,并利用 Docker 本身的镜像 pull 机制来保证整个发布过程镜像文件的一致性。

解决方案:统一分发平台

架构设计与实现

功能架构设计

在 Dragonfly 技术的基础上,结合浙江移动容器云生产实践,统一分发平台的总体设计目标如下:

基于上述目标,统一分发平台的总体架构设计如下:

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

技术架构实现

根据上述平台设计目标与总体架构分析,容器云团队在开源组件的基础上进行了平台功能的二次开发,具体包括:

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

技术特色

核心功能模块|分发控制接口交互流程

如下图所示,统一分发平台的核心模块在进行任务分发时的工作流程具体如下:

  1. 用户通过 Client 建立镜像或文件分发任务;

  2. 分发模块首先通过平台 API 服务网关(Edgetrans)的鉴权功能判断用户是否具有分发功能的权限;

  3. 用户通过鉴权后,设置分发任务参数,提供集群ID,平台从 MySQL 数据库读取集群配置信息实现集群结点的自主发现。用户也可以指定多个结点 IP 作为自定义集群参数;

  4. 根据分发类型,核心服务层(Docktrans)分发功能模块将不同的前端分发请求转换为 dfget(文件)或者 Docker pull(镜像)命令,通过统一远程调用 Docker Service 服务将命令下发至多个结点 df-client 进行相应的处理;

  5. 在任务进行过程中,任务进度与任务事件日志分别写入 Redis 与 MySQL 数据库提供用户对任务状态的查询能力。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

生产环境改造成果

截至目前,生产共运行 200 余个业务系统 1700 多个应用模块,已全部优化为镜像发布模式。发布耗时和发布成功率得到明显改善:

采用 P2P 镜像发布后,业务多应用一次上线的月均发布成功率稳定在 98%。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

4 月后容器云平台开始用 P2P 镜像发布方式代替传统分发系统的代码包发布方式,多应用一次集中上线发布耗时相较与改造之前大幅降低,平均下降 67%。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

同时,容器云平台选取了多个应用集群进行单应用的 P2P 镜像发布改造效果测试。可以看出,单个应用发布耗时相较于改造前大幅降低,平均下降 81.5%。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

后续推广

统一文件分发平台已有效解决了浙江移动容器云应用在代码发布过程中的效率和一致性问题,成为平台的重要组成部分之一。同时,也支持更多大规模集群中进行高效文件分发的场景。可陆续推广至:集群批量安装介质分发以及集群批量配置文件更新。

社区共建|界面功能展示

直接引入 Dragonfly 后诞生的社区诉求

目前,客户端界面化开发工作基本完成,已进入生产测试和部署中。分发平台总体规划 4 大核心功能:任务管理,目标管理,权限管理和系统分析,现已开放前三项功能。

权限管理界面

权限管理,即用户管理,为不同用户提供个性化的权限管理功能,具体如下:

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

目标管理界面

目标管理,即用户进行任务分发的目标集群结点管理,为用户提供管理集群的 P2P 组网和集群结点状态信息健康功能,具体如下:

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

任务管理

任务管理提供文件或镜像分发任务的创建、删除、停止、信息查看等功能,具体如下:

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践
浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

系统分析(计划开放)

预计后续将开放系统分析功能,为平台管理员、用户提供任务分发耗时、成功率等数据和任务执行效率统计图表,通过数据统计与预测,有效支撑平台向智能化方向演进。

社区共建|生产高可用部署

镜像库主备容灾部署,主备之间通过镜像同步保持数据一致性。

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

目前,我们计划把界面功能展示贡献给 CNCF Dragonfly 社区,进一步丰富 CNCF Dragonfly 社区周边生态。未来,我们希望更多人参与进来,一起为社区繁荣贡献力量。

本文作者:

陈远峥 浙江移动云计算架构师

王淼鑫 浙江移动云计算架构师

Dragonfly 社区分享

Dragonfly 社区贡献者太云在 Dragonfly Meetup 分享到:

“目前,Dragonfly 已经成为 CNCF Sandbox 项目,Star 数 2700+,有很多企业用户正在使用 Dragonfly 来解决他们在镜像或者文件分发方面遇到的各种问题。未来,我们将不断完善和改进 Dragonfly,为云原生应用提供更加丰富强大且简便的分发工具。期待与大家共同努力,让 Dragonfly 早日成为 CNCF 毕业项目。”

项目地址

https://github.com/dragonflyoss/Dragonfly

Dragonfly Roadmap

浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯