GVKun编程网logo

边缘的容器化 — WasmEdge 与 seL4 RTOS

21

在这篇文章中,我们将带领您了解边缘的容器化—WasmEdge与seL4RTOS的全貌,同时,我们还将为您介绍有关WasmEdge(原SSVM)成为CNCFSandbox项目、5G的全新可能:基于Sma

在这篇文章中,我们将带领您了解边缘的容器化 — WasmEdge 与 seL4 RTOS的全貌,同时,我们还将为您介绍有关 WasmEdge (原 SSVM) 成为 CNCF Sandbox 项目、5G的全新可能:基于Smart Edge Open和EdgeX构建5G MEC、7月25日 PWL线上分享|WebAssembly 的前世今生(by Michael Yuan, WasmEdge)、Docker 与 WasmEdge 合作,发布 WebAssembly 支持的知识,以帮助您更好地理解这个主题。

本文目录一览:

边缘的容器化 — WasmEdge 与 seL4 RTOS

边缘的容器化 — WasmEdge 与 seL4 RTOS

本研发基于开源项目 WasmEdge 和 seL4,并得到了 Second State 和 FutureWei 的支持。

应用程序容器,例如 Docker,是云原生应用程序增长背后的关键驱动力。然而,虽然云原生开发范式已经非常流行,但由于应用程序容器需要大量计算资源,因此很难将云原生基础设施扩展到大型数据中心之外。例如,Docker 不支持实时操作系统(RTOS),仅适用于 POSIX 系统。

此外,在智能工厂和智能汽车等边缘网络和设备上,行业生态和供应商网络的现状造就了应用程序必须由多个独立供应商组装。例如,在典型的电动汽车中,有 100 多家供应商为汽车的不同部分编写软件组件。对于汽车 OEM 来说,为供应商和供应商集成其软件组件提供安全、高性能和实时的运行环境至关重要。目前,我们已经看到了几个在边缘 RTOS 上支持应用程序容器的尝试。

VxWorks 是一个领先的实时操作系统,用在使命关键的系统中,如飞机和航天飞船中。VxWorks 容器 是 2021 年提出的要在 VxWorks RTOS 上支持符合 OCI 的轻量级容器。

可是使用 Docker 对于边缘上的 RTOS 并不理想。从根本上说,Docker 不是实时的,Docker 假设许多底层操作系统服务是可用的。 更好的 RTOS Runtime 方案是高级字节码 VM。 这样的虚拟机比 Docker 更轻、更快。 它们提供基于能力的安全沙箱,对底层操作系统服务做很少的假设,同时在前端支持多种编程语言。 WebAssembly 凭借其广泛的行业支持和轻量级设计,看起来恰恰是复杂边缘应用程序完美的虚拟机 Runtime。

WebAssembly 另一个有意思的方面是 WebAssembly 程序通常可以像 seL4 那样进行形式化验证,因而对于像车载操作系统这种使命关键的系统来说非常合适。

WasmEdge 和 seL4

seL4 操作系统是一个形式化验证的、高度安全且实时的微内核操作系统。它现在越来越多地用于安全性和实时性能至关重要的场景,如自动驾驶汽车和无人机。 seL4 OS 是一个微内核,不符合 POSIX,这使得运行类似 Docker 的容器特别具有挑战性。 另一方面,WebAssembly 可以从大部分操作系统中抽象出来,并为开发者提供一组统一的编程语言和 SDK 以供使用。

WasmEdge Runtime 是一个高性能且开源的 WebAssembly runtime,由 CNCF 托管。它作为微服务、 serverless 函数和 plugins 用在云原生基础设施中。除了标准的 WebAssembly 规范, WasmEdge 支持与云原生应用场景相关的扩展 API,例如 network sockets,基于 Tensorflow 的推理,数据库存储等。 WasmEdge 支持 Rust 和 JavaScript 作为前端语言,可以被嵌入 Rust、Go、Python 和 Node.js host 应用作为 plugin 或者嵌入的函数。

与边缘容器应用场景最相关的是, WasmEdge 是一个符合 OCI 规范的 runtime,可以被 Docker 工具和 Kubernetes 管理和编排。本工作中我们为 seL4 和 WasmEdge 构建了一个 WebAssembly 管理代理。它允许 WebAssembly 字节码应用程序在 seL4 RTOS 上简单地被部署和执行。

官方上来讲, seL4 只支持 C/C++ 写的程序。通过 WasmEdge Runtime, 开发者现在可以使用任何 WebAssembly 语言开发 seL4 RTOS 应用程序,包括 Rust、Swift、AssemblyScript 和 JavaScript。这对于 seL4 的开发者体验来说是一个重大的提升。

源代码链接:https://github.com/second-state/wasmedge-seL4

整体设计

seL4 微内核可以作为 hypervisor 运行。它可以在同一硬件上启动 Linux 操作系统(称为 guest OS)并列运行。Linux guest OS 有用于文件系统、networking、用户帐户、shell 和 CLI 的全套功能和工具,但不是实时的。 seL4 端是实时的,但是是 headless。 我们的方法是在 guest Linux 中运行 WasmEdge 代理 (WasmEdge agent)。 将 WasmEdge 字节码文件上传并存储在 guest Linux 中,然后使用安装在 seL4 中的 WasmEdge runner 使用代理热部署和执行字节码。 架构如下。

这种代理和运行器架构能够将 guest Linux 的易用性与 seL4 的稳健性、安全性和实时性能相结合。

这种设计提出了一个有趣的可能性。 也许我们可以在 guest OS 中运行一个齐全完备的 Kubernetes pod 来管理和编排 seL4 上的 WasmEdge 应用程序。 这是 WasmEdge 积极研究的领域。

样本 WebAssembly 应用

WasmEdge 可以在 seL4 上运行任何 WebAssembly 字节码程序。本 demo 中的样本 WebAssembly 应用是从 C 和 Rust 源代码编译而来的。

  • nbody-c.wasm 是一个 C 语言写的算数上模仿 N-body 问题的程序。然后编译成 WebAssembly 字节码。
  • hello.wasm 是一个 Rust 程序来将字符串回显到控制台。

为 WasmEdge runner 补丁 seL4

seL4 的标准库不直接支持 WasmEdge runner。我们需要给这些库打补丁以添加、打开或更新一些重要功能。 我们使用这些补丁构建了 seL4 的定制版本。

  • 打补丁的 LLVM 编译器
  • 打补丁的 seL4 系统库
  • 打补丁的 guest Linux 库

模拟器 demo

build 脚本自动化用补丁库、WasmEdge runner、guest Linux OS (Ubuntu 20.04) 和 WasmEdge 代理构建 seL4 发行版(seL4 distribution)的过程。

build 脚本要求安装有一个带开发者工具的 Ubuntu 20.04 系统 。 点此查看系统要求的的 apt 软件包的完整列表。

一旦构建了定制的 seL4 发行版,我们就可以在 QEMU 模拟器中运行它。 我们可以登录 guest Linux OS 的命令 shell,上传并保存 WebAssembly 字节码文件,然后运行 wasmedge_emit 在 seL4 中部署和运行这些 WebAssembly 文件。

你可以根据 demo 指引完成全过程。也可以查看视频了解具体效果。

GitHub 操作日志显示成功构建任务的控制台输出,artifact 包含构建结果。 只需将 build artifact 下载到自己的 Ubuntu 20.04 机器上,就可以启动模拟器,在 seL4 上运行 WebAssembly 程序。

展望未来

本文演示了如何使用模拟器在 seL4 上管理和执行 WebAssembly 应用程序。 下一步是在真实硬件上运行 WasmEdge 应用程序。

WasmEdge 的主要特性之一是可扩展的。 从共享的原生库向 WasmEdge 添加 host function API 很容易,这样 WasmEdge WebAssembly 字节码程序可以很方便地访问硬件,例如 GPIO pin、相机、USB 连接器、I/O 板和 GPU。

请继续关注 seL4 上 WasmEdge 的更多应用场景 demo!

 WasmEdge (原 SSVM) 成为 CNCF Sandbox 项目

WasmEdge (原 SSVM) 成为 CNCF Sandbox 项目

WasmEdge runtime (曾名 SSVM)是一个轻量级高性能 WebAssembly (WASM) 虚拟机,为边缘进行了优化。WasmEdge 可以应用于 severless 云函数、SaaS、区块链智能合约、物联网、汽车实时软件应用等多种场景。

(此处本应有 WasmEdge logo,但是 logo 还在设计,敬请期待 )

WasmEdge 最近被 CNCF 基金会接受为沙箱项目。这是全球范围内首个被 CNCF 纳入托管的开源 WebAssembly runtime 项目。我们希望,WasmEdge 作为边缘云的 mission critical 轻量级runtime,未来能在 CNCF 的开源云计算领域发挥重要作用。

源代码:https://github.com/WasmEdge/WasmEdge

开始

二十五年前,Java 编程语言最初是作为浏览器小组件被发明出来。但 Java 最终是在服务器端大获成功。后来,JavaScript 通过 Node.js 重复了同样的从浏览器到服务器/云的迁移路径。今天,再一次,WebAssembly 正在从浏览器向云迁移。WasmEdge 在这一历史性迁移中,走到了前沿。

历史总是相似的,但从不重演。虽然 WebAssembly 从浏览器迁移到云的驱动因素与之前的 Java 和 JavaScript 相同,例如得到年轻开发者采用,受欢迎的编程语言 (Rust), 但更重要的是,WebAssembly 也非常适合处理现代云计算工作。特别是,WebAssembly 的轻量级设计和先进的安全模型,加上 Rust 语言的内存安全性,使其很好地适用云上的高性能且使命关键(mission critical) 的应用程序,尤其是在边缘云、物联网设备和汽车上。传统的容器和虚拟机太笨重且速度太慢,WebAssembly 可能成为领先的 runtime 技术。

WasmEdge,曾用名 SSVM,是一个开源 WebAssembly 虚拟机,针对边缘设备进行了优化。根据 IEEE Software 杂志上发表的一篇研究论文,WasmEdge 具有先进的 AOT 编译器支持,是当今市场上最快的 runtime。

WasmEdge 的关键特性

WasmEdge 与 W3C WebAssembly 标准完全兼容。开箱即用,得到标准语言和编译器工具链的支持,例如 LLVM、Rustc 和 emscripten。WasmEdge 的与众不同之处在于它对标准与非标准扩展的支持,尤其是在边缘计算方面相关的扩展。

首先,WasmEdge 支持 W3C 可选的 WebAssembly 特性和提案,例如 WebAssembly 系统接口(WASI)规范、引用类型、大容量内存操作和 SIMD。WasmEdge 也在探索 wasi-socket 提案,以支持 WebAssembly 程序中的网络访问。

此外,WasmEdge 支持针对特定应用场景设计的非标准扩展。

  • Tensorflow。开发者可以使用简单的 Rust API,编写 Tensorflow 推理函数,然后在 WasmEdge 内部以本机速度安全地运行该函数。我们也正在努力支持其他 AI 框架。(欢迎加入 WasmEdge 社区)
  • Storage。WasmEdge 存储接口允许 WebAssembly 程序读取和写入键值存储。
  • 命令接口。WasmEdge 让 Webassembly 函数可以执行宿主机操作系统的本地命令。它支持传递参数、环境变量、STDIN/STDOUT pipes 和主机访问的安全策略。
  • 以太坊。WasmEdge Ewasm 扩展支持编译为 WebAssembly 的以太坊智能合约。它是以太坊风格的 WebAssembly (Ewasm) 的领先实现。
  • Substrate。Pallet 让 WasmEdge 能在任何基于 Substrate 的区块链上充当以太坊智能合约执行引擎。

最后,WasmEdge 是一个云原生的 WebAssembly VM。它支持 OCI(开放容器计划)规范,这能够让像 Kubernetes 这样的云原生编排工具管理 WasmEdge 实例。

WasmEdge 之前名为 SSVM。

应用场景

WasmEdge 为边缘和嵌入式应用场景优化。它能把软件及硬件产品转变为开发者平台。下面是一些具体的应用场景。

  • Jamstack 应用由带有 JavaScript 的静态前端组成,用于与后端 API 进行交互。这是现在最流行的现代 web 应用程序架构。前端静态文件可以通过 CDN 分发,后端函数可以托管在边缘节点上。基于云的 WasmEdge 为Jamstack app 托管安全且高性能的后端 Serverless 函数,特别是在边缘云上。
    • 案例:在任意图片上增加水印
    • 案例:基于腾讯云的serverless Tensorflow函数
  • SaaS 应用常常需要按客户要求为“边缘场景”调整或者定制。有了 WasmEdge,SaaS 应用程序可以直接嵌入和执行用户提交的代码作为工作流的一部分(例如,作为处理来自 SaaS 应用程序的事件的回调函数)。
    • 案例:飞书应用平台可以通过 WasmEdge 嵌入用户提交的 serverless 函数来回复消息 (例如聊天机器人)。
    • 示例:WasmEdge 运行自定义代码以处理 IoT 流数据框架 YoMo 中的事件。
  • WasmEdge 被调整为适用 边缘设备的各种嵌入式和实时操作系统。开发者只需用 Rust 或 C 编写一次高性能应用程序,就能在许多边缘设备平台上安全地运行。
    • RIOS Lab示例:RIOS 实验室的 RISC-V 堆栈。
    • 进行中:将 WasmEdge 移植到 SeL4 实时操作系统
    • 计划中:WasmEdge 可用作自动驾驶汽车中软件模块的 RTOS 代码 runtime。
  • 区块链智能合约由用户提交的代码,由网络中的所有节点执行。WasmEdge 得到了头部的区块链项目采用,作为智能合约执行引擎。案例:Substrate 和 Polkadot 上的EWASM 智能合约。

展望未来

WebAssembly 生态仍处于早期阶段。WasmEdge 由 CNCF 托管,旨在成为 WebAssembly 及其边缘相关扩展的开源“参考实现”。社区可以首先在 WasmEdge 上试验新的扩展想法,然后将成功的扩展标准化。WasmEdge 社区还将为编译器工具链和 SDK 做出贡献,以支持允许更多编程语言的 WebAssembly 和 WasmEdge 扩展。

加入 WebAssembly 革命吧!

Slack 组群:加入 CNCF slack channel,搜索 WasmEdge 加入 WasmEdge Slack Channel。

订阅邮件:发邮件至 WasmEdge@googlegroups.com

成为贡献者: 查看贡献灵感清单开始为 WasmEdge 做贡献


CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于 Linux Foundation,是非营利性组织。

CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。通过将最前沿的模式民主化,让这些创新为大众所用。


点击阅读原文,查看 WasmEdge GitHub repo,你也可以在这里找到文中所附的链接

本文分享自微信公众号 - WebAssembly 中文社区(webassemblywasm)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

5G的全新可能:基于Smart Edge Open和EdgeX构建5G MEC

5G的全新可能:基于Smart Edge Open和EdgeX构建5G MEC

关于2022 EdgeX中国挑战赛  

2022 EdgeX中国挑战赛暨中关村国际前沿科技创新大赛EdgeX专题赛正式拉开帷幕。大赛由北京市科委、中关村管委会指导,由Linux基金会主办,由阿里云、百度智能云、EMQ、GSMA 5G IN、英特尔、InnoSpace、中科创达、VMware、紫竹ET孵化器等联合承办单位共同支持,将在线上线下同步开赛。

本次大赛分设两大赛道:健康、教育、消费品行业赛道和工业、能源、供应链赛道。大赛致力于构建一个物联网及边缘计算的学习和分享平台,基于EdgeX Foundry,针对不同赛道的多个应用场景,以共享技术投资解决行业技术问题。除了近40万元人民币总奖池,参赛者还可以获得技术、资本、市场等一系列参赛回报。

为帮助参赛选手更好地了解并运用相关技术,本次大赛将在7月至9月持续开展3轮技术培训,涵盖初、中、高不同层级,帮助开发者系统学习智能边缘系统知识。我们邀请到来自英特尔、VMware、阿里云等多家机构的技术专家进行分享。

7月20日,英特尔NPG云软件开发工程师赵骞理为我们带来了第三场赛前初级培训,培训主题为:基于Smart Edge Open和EdgeX构建5G MEC。本篇推文是初级介绍培训系列课程回顾的第三辑。

讲座围绕着Intel开源边缘计算容器化平台Smart Edge Open(SE-O)展开,讲解了SE-O技术架构与复合的场景工作包,具体分析了SE-O在5G专用网络、安全服务接口、边缘多集群协调器中与EdgeX协作开发的技术可实现性,介绍了基于SE-O和EdgeX为边端搭建低延迟,高速率的MEC平台方案。

首先,赵骞理工程师讲解了SE-O平台的技术架构与现有产业命题。

SE-O平台的宗旨,是以更快、更低的成本构建边缘解决方案。           

使用Intel Smart Edge来简化边缘网络和应用程序的部署,使用Kubernetes引擎管理工作负载、系统网络和抽象设备的复杂性。

图注:SE-O在多样化的环境下配备的开发者工具包与技术组合

图注:所示验证平台:戴尔PowerEdge R750服务器;2台英特尔至强黄金6338N处理器(2.2G,32C/64T);128 GB RDIMM,3200MT/s;英特尔E810-XXV双端口10/25GbE SFP28网卡;Ubuntu 20.04 LTS操作系统

通过使用开发者体验套件(Developer Experience Kit,DEK),可以快速安装与使用SE-O边缘技术集群并运行板载边缘应用程序。通过参考基于Intel SE-O构建的端到端解决方案示例,你可以快速熟悉如何运行独立边缘节点,并开始创建自己的方案。

随后,赵骞理工程师对SE-O在多场景下的运用与参考方案展开了详细介绍。

基于DEK开发的多场景参考方案可以被直接运用于很多垂直产业,如智能VR、智能交通管理(ITM)、工业产品缺陷检测、远程病理学、远程医疗等。您可以通过英特尔边缘软件中心(Intel Edge Software Hub)提供的参考物联网应用程序进行验证。

 

图注:ITM 使用参考方案

图注:私人无线体验工具包

图注:Device Plugins & Operators

(项目链接:https://smart-edge-open.github.io/docs/components/networking/sriov-network-operator/)

图注:5G网络接入

Intel Xeon D-2154NT, 8C @ 1.9GHz, 16GB DDR4 2400MHz, Intel NIC X722 10GbE SFP+, HDDL accelerator;CentOS 7.9 Operating System

图注:安全访问工具包

图注:SD-WAN构建模块

图注:单集群存档程序

图注:多云体系结构

图注:边缘多集群协调器(Edge Multi-Cluster Orchestrator,EMCO)

最后,赵骞理工程师介绍了如何在SE-O上布置EdgeX,以及SE-O与EdgeX的多种结合运用场景。

图注:通过5G专用网络与物联网结合构造智能社区

EdgeX可以支持多种物联网终端设备的接入。通过SE-O与EdgeX结合使用,让5G、WiFi、固定网络实现社区全覆盖,实现5G专用网络与物联网结合,构造智能社区。基于本地存储的MEC确保了社区信息安全,EII则支持机器视觉质量检查,协助工业化场景运用。

图注:支持连锁店业务实施

针对连锁店面对的两大痛点——终端多导致的产品锁定成本过高,数据共享与部门管理困难——我们通过结合使用EdgeX与SE-O,提出了统一硬件平台,开放数据架构,容器化部署,远程管理统一调度的解决方案。

如何获取SE-O:

基础设施开发者(官方解决方案与工具包):https://github.com/smart-edge-open

系统集成开发者、APP开发者(软件包与开发者体验工具包):可从Intel® Dev Catalog获取

了解更多&相关链接:

SE-O开页:https://www.intel.com/content/www/us/en/developer/tools/smart-edge-open/overview.html

Intel Network Builders:

https://networkbuilders.intel.com/intel-technologies/intel-smart-edge

Intel Network and 5G Page:

https://www.intel.com/content/www/us/en/wireless-network/5g-network/overview.html

Developer Zone:

https://www.intel.com/content/www/us/en/developer/topic-technology/edge-5g/overview.html

SE-O源代码:

https://github.com/smart-edge-open

GitHub文件:

https://smart-edge-open.github.io/

RIs指南:

ITM实例:

7月25日 PWL线上分享|WebAssembly 的前世今生(by Michael Yuan, WasmEdge)

7月25日 PWL线上分享|WebAssembly 的前世今生(by Michael Yuan, WasmEdge)

  • 中国 KubeCon + CloudNativeCon 演讲提案征集|截止日期:7月25日




活动分享:https://zhuanlan.zhihu.com/p/391355170

本周日 7 月 25 日上午十一点(北京时间)有 Papers We Love 活动,通过腾讯会议线上进行,由 Second State 的 CEO @Michael Yuan 为我们分享主题“WebAssembly 的前世今生”,欢迎大家参与。


内容介绍:

WebAssembly (Wasm) 最初为浏览器应用而生,但随着 WASI 的出现以及开发者生态的壮大,Wasm 作为一种轻量级的软件容器在服务端的作用愈发明显。服务端的 Wasm 提供了与本地代码相媲美的速度,但又不失安全性,可移植性,与可管理性。2021年,美国计算机协会的编程语言分会将 Wasm 评为年度最佳编程语言。同年,CNCF 接受了 WasmEdge 作为沙箱项目,Wasm 在云原生领域的影响力逐渐显现。

Wasm 本身是一个很简单的语言标准。但是如果要让 Wasm 应用于复杂的计算环境中,还需要很多的生态工具,包括高级语言编译器,SDK,动态编译器,安全沙箱,本地库函数,嵌入式 SDK,编排与管理工具,等等。在这个分享中,WasmEdge 的核心贡献者 Michael Yuan 博士会以 WasmEdge 为例,讨论 Wasm 的应用场景,以及在其开发与应用中可能遇到的各种问题。


分享人介绍:

Michael Yuan 博士是 WasmEdge 的创始人和核心开发者。WasmEdge 是一个由 CNCF 托管的开源 WebAssembly 虚拟机。其主要应用于边缘计算、Service Mesh 和嵌入式函数。Michael 撰写过6 本软件工程书籍,也是长期的开源贡献者。Michael 同时也是 Second State 的联合创始人。Second State 是一家开源基础软件初创公司,致力于商业化可持续地支持 WebAssembly 和 Rust 生态系统中的企业应用。


参会信息

会议主题:Papers We Love

会议时间:2021/07/25 11:00-12:30 (GMT+08:00) 中国标准时间 - 北京

点击链接入会,或添加至会议列表:

腾讯会议

会议 ID:564 886 910


Papers We Love 简介

Papers We Love 是一个全球性的网络,主要分享计算机领域的学术论文和工程实践,包括操作系统,分布式系统,数据库,存储,网络,计算机语言,编译器等主题,欢迎参与。


文章转载自Second State点击这里阅读原文了解更多


    CNCF概况(幻灯片)

    扫描二维码联系我们!




    CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

    CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。

    本文分享自微信公众号 - CNCF(lf_cncf)。
    如有侵权,请联系 support@oschina.cn 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    Docker 与 WasmEdge 合作,发布 WebAssembly 支持

    Docker 与 WasmEdge 合作,发布 WebAssembly 支持

    在 KubeCon NA 2022 的 Cloud native Wasm day 活动上, Docker 与 CNCF 的 WasmEdge Runtime 项目发布了 Docker+Wasm 技术预览。 只需一个命令 docker compose up, 上千万的 Docker 开发者可以立即构建、共享并运行一个完整的 Wasm 应用。

    Wasm 最初是作为 Web 浏览器中的安全沙箱而开发的。近年来,它在服务器端作为 VM 和 Linux 容器 (LXC) 的安全、轻量级、快速和可移植的替代方案,有了很多应用程序。Linux 容器这一领域最初由 Docker 开创。

    Docker+Wasm 中的标准 demo 应用是由 Second State 提供的。这是一个数据库驱动的 Web 应用程序,它有一个用于整个 Web 服务(微服务)的 WasmEdge “容器”,以及两个用于支持服务的 Linux 容器:一个用于 MySQL 数据库,一个用于 Niginx,为前端 UI 提供静态 HTML 页面。 这三个容器在同一个网络中并排运行并形成一个应用程序。 微服务用 Rust 编写并编译成 Wasm。 它有一个高性能(non-blocking)HTTP 服务器、一个事件处理程序(用于处理 HTTP 请求的业务逻辑)和一个 MySQL 数据库客户端。 整个“容器化”的 Wasm 微服务只有 3MB,而数据库和 Nignix 的 Linux 容器则需要好几百 MB。

    Docker Compose 不仅将这些 Wasm 应用程序与侧容器一起运行,而且还将 Rust 源代码构建到 Wasm 中。 开发者甚至不需要安装 Rust 编译器工具链,因为整个构建环境也由 Docker 容器化。 Docker+Wasm 是真正的端到端解决方案。

    随着 Docker 开启了引领了云原生时代的容器革命,Docker 在当今的“多运行时”世界支持 Wasm 的承诺,重要性愈发凸显。

    Docker+Wasm 的发布非常有意义。 我们不再生活在单一 runtime 的世界中:有 linux 容器、Windows 容器和 Wasm 容器。 OCI 可以将它们全部打包,我应该能够使用 docker 构建和运行它们。 — Solomon Hykes, Docker 联合创始人。

    Docker+Wasm 背后的技术主要来自开源社区。 例如,Docker 依赖于一个名为 runwasi 的容器 shim,最初 由 Microsoft 的 DeisLabs 创建, 来启动 WasmEdge 并执行 Wasm 程序。

    深耕开源的可能远远不止 Docker 一家。 例如,红帽团队已经将 Wasm 运行时支持集成到 OCI 运行时 crun 中。 这使得整个 Kubernetes 堆栈能够无缝支持 WasmEdge 应用程序。 事实上,Liquid Reply 团队在 KubeCon 大会几天前用 WasmEdge 演示了 Podman+Wasm。

    在 KubeCon 活动中展示的其他 Wasm 应用程序包括 AI 推理应用程序、基于 Dapr 的微服务和 streaming pipeline 中的数据处理函数。 现在有了 Docker+Wasm,开发者可以轻松构建、共享和运行这些应用程序。

    关于边缘的容器化 — WasmEdge 与 seL4 RTOS的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于 WasmEdge (原 SSVM) 成为 CNCF Sandbox 项目、5G的全新可能:基于Smart Edge Open和EdgeX构建5G MEC、7月25日 PWL线上分享|WebAssembly 的前世今生(by Michael Yuan, WasmEdge)、Docker 与 WasmEdge 合作,发布 WebAssembly 支持的相关信息,请在本站寻找。

    本文标签:

    上一篇在 WasmEdge 中使用 Docker 工具管理 WebAssembly 应用(docker swarm管理工具)

    下一篇在 OpenHarmony 开发板上运行 WasmEdge(WebAssembly Runtime)(openharmony开发语言)