云计算·大数据 频道

WebAssembly真的要取代Docker吗?

  有一个讨论引起了大家的兴趣:由于其设计,WebAssembly(也称为Wasm)可能在许多情况下取代Docker。但正如我们将在本文中看到的那样,过分关注WebAssembly的这一方面是不够的,因为更重要的是WebAssembly可以支持的业务用途。

  然而,就像任何有趣的新编程语言或技术一样,Wasm价值的真正考验是它的业务用途,而且Wasm在简单性、可移植性和安全性方面的优势使它成为弥补Docker缺点的一个很好的候选人,尤其是在边缘和分布式应用程序方面。

  WebAssembly可以用于将JavaScript(JS)、C++和Rust以及HTML和CSS集成到一个二进制格式的运行时平台中,该平台直接在CPU上的机器级别上运行。它可以用于支持web应用程序,并扩展到任何在CPU上运行的边缘环境和云本机平台,包括服务网格和边缘Kubernetes支持。Wasm也存在了一段时间,直到2019年万维网联盟(W3C)将其命名为Web标准,从而成为第四个包含HTML、CSS和JavaScript的Web标准。

  Adobe高级软件工程师Colin Murphy在演讲中详细介绍了CDN edge compute和Wasm/WASI平台,以及当前和未来的Adobe应用程序。Murphy表示,为了提高业务绩效,Wasm可能成为Docker的继任者。Murphy说,“我四处看,想看看‘Docker with Kubernetes的后继者是什么’,当了解WebAssembly时,我发现的是‘可以使用生产中实际使用的微服务,并且可以使用WebAssembly将其部署在服务器边缘的客户端上。’”

  例如,与Docker相关的主要问题之一是CVE文件中可能存在漏洞。Murphy在一次采访中说:“有时,同一个漏洞可以有多个CVE作为Docker容器。使用WebAssembly,你没有任何第三方的东西。只需将其视为二进制文件即可。当然,安全问题总是存在的。但是,你不必携带操作系统的所有其余部分,也不必假装它是一个操作系统,因为它实际上是自己的单元”,这有助于使Wasm具有吸引力。

  然而,Murphy说,也不要指望Wasm会完全取代Docker。

  “仍有大型机,仍有主机OSS,仍有具有非常特殊业务用例的虚拟机,并将继续使用。但仍有一些非常好的地方,特别是在5G汽车的边缘,以及所有这些类型的应用程序,在这些应用程序中,物联网与世界接轨,并与边缘接轨,在这些应用程序中,你无法用Docker。”

  Docker产品负责人Jake Leverne表示,Wasm是否有可能最终完全取代Docker的使用,这是一个不合理的问题。问这个问题表明并没有正确地理解开发人员市场是如何运作的,因为Wasm作为一种技术并不能取代Docker。

  Leverne说:“Wasm是对Docker的补充,无论开发人员选择何种方式来构建和实现其应用程序的一部分,Docker都将支持他们的开发体验。”

  Leverne说,使用Docker的开发、测试和部署工具链,无论应用程序架构如何,都可以更轻松地维护可复制的应用程序交付管道。此外,数百万预构建的Docker镜像,包括数千个官方和经验证的镜像,提供了“核心服务的主干(如数据存储、缓存、搜索、框架等)”,可以与Wasm模块一起使用。

  Leverne说:“随着时间的推移,容器运行时和注册表将扩展到包括原生Wasm模块支持。事实上,这已经在发生了。”

1
相关文章