WebAssembly 组件提供了一种在云原生环境中部署微服务和其他应用程序的新方法。这自然引发了一个问题:这个新兴组件是否会取代容器?或者,这是否意味着这些明显的竞争对手需要学习如何合作?
为了得到正确的答案,我们需要研究这两种技术之间的异同,然后考虑如何理解它们各自的用例——无论是独立使用还是协同工作。
然后,我们将探讨 WebAssembly(Wasm)如何将容器编排的边界扩展到多个云、边缘和设备。
但首先:什么是 WebAssembly 组件,它与容器有何不同?
1
什么是 WebAssembly 组件?
WebAssembly 是一种高效的字节码格式,它以虚拟指令集架构为目标。当你将所选语言的代码编译为 Wasm 二进制文件时,你可以在任何可以安装 WebAssembly 运行时(本质上是一个微型虚拟机)的地方运行这个精简的二进制文件。
WebAssembly 组件在核心 Wasm 格式上添加了一个标准化的规范层,使得二进制文件……
可互操作:组件可以通过与语言无关的接口从其他组件导入和导出函数 - 这意味着用 Rust 编写的组件可以调用用 Go 编写的组件中的函数。
可组合:两个或多个组件可以在构建时组合成一个组件。