QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

Moby 项目进展迅猛:2023 年三个大版本

  • 2023-11-14
    北京
  • 本文字数:3283 字

    阅读完需:约 11 分钟

Moby 项目进展迅猛:2023年三个大版本

Docker Swarm 有新特性了:Moby 项目更新频繁,2023 年三个大版本

作者 | Loraine Lawson


译者 | 王强


策划 | Tina


Moby 是一个从 Docker 衍生出来的开源项目,它在今年计划发布三个主要版本更新。



Docker 工程师 Sebastiaan van Stijn(左)与 Bjorn Neeargaard 在 Dockercon 23 上的演讲。


开源 Moby 项目的最后一个主要版本是在 2020 年发布的,但据两位 Moby 贡献者称,今年该项目将发布三个主要版本。


Moby 项目是一个组件集合,用于构建基于容器的系统。项目中包括了容器运行时、容器注册表、容器构建工具、编排工具以及网络、日志记录和监控工具。这些组件可用于构建基于容器的系统,例如云原生应用程序、微服务架构、CI/CD 管道和本地容器平台等。


Moby 维护者 Bjorn Neergaard 是 Docker 的高级软件工程师。本月早些时候,他与技术指导委员会成员 Sebastiaan van Stijn(也是 Docker 的软件工程师)一起在 DockerCon 上介绍了 Moby 项目的最新进展,并公布了 2023 年将要发布的主要版本的细节以及未来的计划。


Moby 诞生背景简介


Neergaard 和 van Stijn 在 DockerCon 演讲中首先简要介绍了 Moby 这个开源项目的来历。van Stijn 表示,它可以追溯到开发人员最早使用容器作为轻量级虚拟机的时代,那时候这种虚拟机很难用且非常小众。


“它没有流行起来,因为它太复杂了,”van Stijn 说。“它很难保持同步;没有镜像分发,啥分发都没有。”


然后 dotCloud(一个小型的平台即服务,后来成为 Docker)开始向用户提供服务了。不过实际上,技术人员真正感兴趣的是 dotCloud 在幕后所做的事情:他们正在部署很多技术容器,其中大部分是用 Python 编写的,得写大量脚本才能把容器跑起来,van Stijn 解释道。后来 dotCloud 决定把他们一直在内部使用的东西开源。


然后,在 2013 年,Docker 创始人 Solomon Hykes 在 PyCon 的闪电演讲中介绍了 Linux 容器。


“虽然只提了五分钟,但它在业界引起了不小的震动,因为在这五分钟内他第一次展示了一个跑起来的 Docker,”van Stijn 说。“Docker 包揽了他原本要用 LXC 来做的大量工作,但只需一条命令就搞定了。”


当时 Docker 仍然是 LXC 的一个包装器,由 LXC 承担所有繁重的任务。它简化了用户操作体验,而且还提供了一种镜像格式——这是一大进步,因为现在开发人员可以给容器用镜像了,用不着为容器创建专属的文件系统。这时候还没有构建。他补充说,它还提供了一个 API,让开发人员可以做一些“很酷的事情”。


“它确实对市场造成了很大的影响,因为 Linux 容器第一次成为现实,并走进了开发人员的工作中,”他说。


van Stijn 表示,LXC 用起来挺好的,但 Docker 还是决定重写运行时,这样就可以有内置于 Docker 引擎中的原生运行时了。后来随着更多功能(例如网络)进入 Docker,这一步被证明是非常正确的。容器流行了起来,但每个容器都有一个任务,这意味着程序员在大多数堆栈中都需要多个容器。于是有人开始尝试做编排,后来编排也有了组合,而且让用户可以定义 YAML 文件了。


Docker 收购了 Fig,后者成为了 Docker Compose。然后 Docker 推出了 Swarm,它的第一个版本让开发人员可以在机器集群中运行他们的容器。van Stijn 表示,随后 Kubernetes 上线并决定使用 Docker 作为运行时,因为后者是运行容器的事实标准。他补充说,这也导致了一些问题,因为越来越多的人要求的各种功能显然超出了该项目的设计目标。


“Kubernetes 不需要 Docker 的网络堆栈,他们不需要我们提供的其他东西,但他们仍在使用运行时,有时就会出各种问题,”他说。“引擎的单体架构问题越来越大。”


此外,虽然 Docker 是事实标准,但这方面并没有关于容器镜像或运行时运行方式的正式规范,他说。


“实现是规范,但并不总是让人满意,”他说。


Docker 决定把实际的运行时分割出去。大约在同一时间,标准组织 OCI 成立。Docker 向组织捐赠了用于分发镜像的规范,以及运行时规范和镜像。


“现在其他人也可以实现运行时、镜像和注册表了,Docker 不再是唯一选项。”


Docker 还开始与几个合作伙伴公司从头开始重写运行时,结果就是 containerd(发音为“container D”),这是对 Docker 运行时部分的完全重写。


Moby 项目的诞生


van Stijn 在演讲中告诉观众,当 Docker 决定将项目进一步拆分为多个更小的组件时,Moby 项目就开始了,因为人们想要使用 Containerd 和 Docker 引擎的其他部分。这也催生了用于构建用途的 Build Kits、用于编排的 Swarm Kit 以及 Docker 引擎。他补充说,作为一个单独的项目,CLI 成为了 Docker 产品的一部分。运行时本身演变为 Moby 项目。


他说:“这可以让大家在其基础上来做构建、参与,但也让人们更容易接受一些可能不会直接让 Docker 这个产品获益、但可以被他人用上的更改,反之亦然。”


随着企业产品转向 Mirantis,Docker 本身也发生了变化,它又变回了面向开发者的产品。他补充说,Docker 开始专注于 Docker 桌面,而 Moby 项目的工作进展缓慢,直到过去 18-24 个月,Mirantis 和微软的维护人员加入了这项工作后情况开始变化。


“有一件事情让大家很是困惑,那就是名为 Docker 的开源代码到底变成了什么样,”Neergaard 解释道。“但也许这也能说明一个问题:在 Docker, Inc. 之外,现在项目有了更多的参与者——而且不仅仅是参与者,还是项目的利益相关者。”


Neergaard 补充道,除了 Mirantis 和微软之外,英伟达最近也贡献了容器设备接口支持。


现在是什么情况


“最近,我们也看到该项目有了更多的活动,”Neergaard 说。“可以从多种形式看出这一变化,不过下图可能还不全。”



Moby 项目的最新活动


Docker 引擎的最新版本是在 2020 年发布的。时至今日又出现了很多代码和改进,但一直没出可以搭载这些改进的新版本,他补充道。


今年已经发布了两个主要版本——版本 23.0 和 24.0,其主要特性包括:


  • BuildKit,默认开启(不再有 DOCKER_BUILDKIT=1)。Neergaard 说,BuildKit 是对构建器的重写。“BuildKits 最初的任务和计划的一部分是让它取代 Docker 引擎中的经典遗留构建器,并提供更丰富、更灵活的构建平台,并且依旧像 Docker 构建一样简单,”他说。“所以 BuildKit 现在默认处于启用状态。”

  • Swarm 中的 CSI(容器存储接口)

  • 可选 containerd shim:

  • gVisor

  • Kata 容器

  • WebAsseambly


Neergaard 说,备选 shim “可能很无聊”,但开辟了很多可能性,“特别是对于那些想搞出一些新方法来运行容器或看起来有点像容器的东西(例如 WebAssembly)的人们来说是这样的。”


该团队曾希望在 DockerCon 之前提供第三个版本 25.0,但结果没有成行。根据演示内容,预计这个版本现在会随时发布。该版本将包括:


  • CDI(容器设备接口)

  • OTEL(OpenTelemetry)集成到引擎中

  • Neergaard 说,“优雅”的健康检查与健康开始间隔长期以来一直是一个痛点。


“今年我们的确准备发布三个版本的引擎更新,不管怎样这是很大的挑战;我们每次都在进步。”Neergaard 说道。


“另一件有趣且让人想不到的事情是 Docker Swarm 中还有新特性,”他说。他解释说,Swarm 是 Docker 对 Kubernetes 的回应。


Neergaard 说:“在这一点上,我想说 Kubernetes 在很大程度上是编排平台的事实标准,除非有充分的理由,否则你可能不应该选择 Kubernetes 以外的其他平台。” “有一小部分颇有声量的用户群体喜欢使用 Swarm,并且希望 Swarm 能做更多事情,甚至与 Kubernetes 现有的许多附加组件和扩展兼容。”


Moby 项目的未来计划包括在 Containerd 中添加多个快照程序和原生多架构,以及重新设计的 CLI、错误修复和新的网络功能,还有将协调器逻辑从 Compose 移动到声明式 Docker 的守护进程中,两人补充道。


原文链接


https://thenewstack.io/the-moby-project-post-kubernetes-3-new-releases-in-2023/


声明:本文为 InfoQ 翻译,未经许可禁止转载。


今日好文推荐


“我不懂的、总有人懂”,软件开发行业已经开始扭曲变形


OpenAI 刚刚又杀死了一批初创公司


疯狂马斯克的“极限”计划居然成功了?!“下云”后成本降低 60%,部分功能代码精简 90%,30 天急速迁移服务器


程序员篡改 ETC 余额,一年私吞 260 余万元;语雀公布故障原因及赔偿方案;各家财报发布,创始人们:就很难受|Q资讯



2023-11-14 17:395491

评论

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

推理综艺的正确打开方式!爱奇艺玩转智能技术,“互动+内容”引爆迷综季

爱奇艺技术产品团队

综艺节目 智能 影视制作

花了60天的时间肝出了这些spring,jvm,并发编程等学习笔记,春暖花开再战大厂!

Java架构师迁哥

阿里大佬离职带出内网专属“高并发系统设计”学习笔记

Java架构师迁哥

iOS 面试秘籍全套

程序员 编程之路 iOS 知识体系

爱奇艺M2VOC挑战赛落幕,6篇论文被ICASSP2021收录

爱奇艺技术产品团队

Apache hadoop 开源 程序员 成长

Vue3.0 组合式 API 分析与实践

百度开发者中心

开发者

动手实践,Linux安装php-vld全过程实录

架构精进之路

插件 6月日更 笔记分享

Boss直聘转发超90W次,Java面试突击手册 火遍全网,却遭封杀

Java架构师迁哥

股价预测的基本思路(1)

Qien Z.

6月日更 量化投资 股价预测

教学相长,物联网赋能教育数字化!

IoT云工坊

人工智能 物联网 智慧校园 智慧教室 智慧操场

Github全面爆火,这份阿里Java面试复盘笔记到底有何魅力?

Java 程序员 架构 面试

百分点数据科学实验室:烟草行业市场信息采集数据质量评估体系研究探索

百分点大数据团队

百分点科技助力中国环境监测总站“生态环境质量会商平台”上线

百分点大数据团队

并发编程-AQS介绍和原理分析(上)

追风少年

并发编程 AQS

干货|一款实用iOS云真机的技术架构是如何搭建的?

ios

Linux系统日常定位常用指令

正向成长

linux命令

硬核!阿里自爆虐心万字面试手册,Github上获赞89.7K

Java架构师迁哥

狂刷了29天的阿里面试参考指南(恒山版),竟成功收到了12个offer

Java 程序员 架构 面试

一图读懂丨索信达灵枢如何助力金融机构提升模型管理效能

索信达控股

大数据 金融科技 监管平台 模型开发 数据管理平台

极狐(GitLab)开课了!实践进阶五步走,助你成为DevOps专家

极狐GitLab

DevOps

拆分电商系统为微服务

Vincent

架构训练营

从零开始学习3D可视化之场景层级(2)

ThingJS数字孪生引擎

大前端 可视化 数字孪生

又到一年“粽子节”,快来测测你包的粽子颜值几分

华为云开发者联盟

端午节 华为云 modelarts 粽子

WWDC21: Swift 5.5 新特性解读

阿里巴巴大淘宝技术

swift WWDC21

高并发场景创建JedisPool有哪些注意事项?

BUG侦探

并发 Jedis commons-pool

【得物技术】浅尝UI自动化之Airtest实践

得物技术

自动化 测试 UI 自动化测试 测试落地

10大流行软件测试工具

百度开发者中心

测试工具

亮相智源大会,字节跳动自研同传系统的技术实现

字节跳动技术团队

【案例】星环科技助力华夏基金大数据平台建设

星环科技

【FlinkSQL】Flink SQL Query(三)- Join

Alex🐒

flink 翻译 FlinkSQL flink1.13

洞察 | 企业数字化转型费用高昂?低代码“骨折”给你!

优秀

低代码

Moby 项目进展迅猛:2023年三个大版本_云原生_Loraine Lawson_InfoQ精选文章