【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:395130

评论

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

C#/VB.NET 在Word转PDF时生成目录书签

在下毛毛雨

C# .net PDF word文档 书签

一起架构-某实时分析项目云原生 serverless 架构的设计思路和poc代码实现

明哥的IT随笔

云原生 架构设计

关于 SAP Spartacus CmsService.getComponentData 可能的优化思路

Jerry Wang

前端开发 SAP Hybris commerce 6月月更

Django 项目 MVT 结构

海拥(haiyong.site)

6月月更

java培训如何让SpringBoot支持Jsp

@零度

JAVA开发 spring-boot

在线帮助中心对企业的作用及解决方案

小炮

web前端培训50 个高效编程的前端轮子

@零度

前端开发

17张图:读懂国内首个《主机安全能力建设指南》

青藤云安全

网络安全 主机安全 深度网络

大数据培训算法面试题分享

@零度

算法 大数据开发

面试突击56:聚簇索引和非聚簇索引有什么区别?

王磊

Java MySQL 面试

“躺着都能赚钱”的时代已经过去,亚马逊云科技为跨境电商找到下一个爆点

Lily

【网络安全】VPN是什么?VPN与堡垒机有啥区别?

行云管家

网络安全 堡垒机 vpn

什么是Minio?如何搭建Minio集群?

wljslmz

存储 Minio 集群 6月月更

5个聚合导航网站,资源、工具、素材应有尽有

小炮

PostgreSQL精品学习资源合集(含基础手册、实操技巧&案例、书籍推荐)

墨天轮

数据库 postgresql

Java—线程

武师叔

6月月更

【sql语句基础】——查(select)(单表查询顺序补充)

写代码两年半

数据库 sql MySQL 数据库 6月月更

设计师导航网站合集

小炮

实战 | SpringBoot+MySQL事务/行级锁实现商品减库存

写程序的小王叔叔

微服务 事务 MySQL 数据库 6月月更 事务/行级锁

Wallys/Network_Card/DR-NAS26/AR9223/2x2 MIMO

wallys-wifi6

fitfi运动赚钱链游系统开发模式详情

开发微hkkf5566

实战 | Win10安装ELK

写程序的小王叔叔

ELK ELK Stack 6月月更

产品故事|你所不知道的语雀画板

写文档的语雀

编辑器 思维导图 SaaS 企业知识管理工具

《正面管教》:如何科学地管教孩子?

郭明

读书笔记

全球云计算市场持续发力,但云身份管理能力认可度不足3成

行云管家

云计算 云服务 企业上云 混合云 多云

【LeetCode】高度检查器Java题解

Albert

LeetCode 6月月更

秒云与趋动科技联合发布容器云平台与GPU资源池化整体解决方案

MIAOYUN

人工智能 容器 云原生 容器化 容器云平台

致力超表面光子芯片产品研发与制造,山河光电完成数千万元Pre-A轮融资

硬科技星球

山河光电

【真相】大厂招人不怕花钱的原因竟然是。。。

博文视点Broadview

蜜月期过后,跨境电商的出口在哪里?亚马逊云科技全新洞察发布

Lily

本地开发测试,局域网中使用IP地址访问项目网站

迷彩

网站架构 学习记录 网站开发 6月月更

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