MulticoreWare

云计算

WebAssembly在无服务器计算中的作用

2023年06月6

 

作者

Bhupathy Arumugam Periasamy Bhupathy在Multicoreware担任高级技术主管,在性能优化、定制AI/ML加速器软件栈、Linux和云基础设施等不同领域拥有8年以上的经验。

介绍:

WebAssembly(通常缩写为WASM)是一种低级的二进制格式和虚拟机,旨在由网络浏览器执行。它提供了一种在网络浏览器中运行用JavaScript以外的语言编写的代码的方法,如C、C++、Rust和许多其他语言。WebAssembly代码由用这些其他语言编写的源代码编译而成,可以在沙盒环境中执行,提供了高度的安全性和可移植性。

WASM的历史:

WebAssembly是由几个主要的浏览器供应商,包括Mozilla、Google、Microsoft和Apple联合创建的,目的是提供一种标准化的方式来在网络上运行性能关键的代码。它被设计为快速、紧凑和安全,并可用于各种应用,包括游戏、科学模拟和视频及音频处理。

WebAssembly的主要好处之一是,它提供了一种重用用JavaScript以外的语言编写的现有代码的方法。这使开发者可以利用C和C++等语言的性能优势,而不必用JavaScript从头开始写代码。此外,WebAssembly提供了一种在沙盒环境中运行代码的方法,这有助于防止恶意代码对用户的系统或数据造成伤害。

WebAssembly is a low-level binary format and virtual machine that is designed to be executed by web browsers

无服务器计算:

无服务器函数,也被称为函数即服务(FaaS),为创建小型云服务提供了一种直接的手段。为了理解无服务器功能的概念,将其与传统的服务器进行比较是有帮助的。一个网络服务器软件在套接字上监听HTTP请求,解析每个请求,然后处理这些请求。在一个网络服务器的生命周期中,它可能会处理数十万个独立的HTTP请求。然而,典型的HTTP服务器还必须管理SSL连接、系统进程、线程池和并发,以及其他各种较低级别的任务,所有这些都是为了响应HTTP请求而服务。

相比之下,无服务器功能的设计是为了剥离大部分服务器端的复杂性,让开发者只专注于对HTTP请求的响应。不需要管理网络、SSL配置或请求线程池管理。所有这些方面都由平台处理,无服务器功能启动后,响应一个请求,然后关闭。

这种设计方法减少了需要编写的代码量,简化了运行无服务器功能的操作复杂性。更新HTTP或SSL库等维护任务由平台处理,使错误处理、升级和其他任务对开发者来说更容易。鉴于这种对简单性的关注,数以百万计的开发者至少编写了一个无服务器功能,这并不奇怪。亚马逊报告说,他们每个月执行10万亿个无服务器函数。

无服务器计算的痛点:

尽管这种编程范式有很多好处,但无服务器函数的早期迭代还是受到了一些缺点的困扰,包括启动时间慢、打包和部署繁琐以及调试和故障排除困难。这些问题源于在虚拟机上运行无服务器函数,每一种语言的运行时,以及没有针对这种计算方式进行优化的包管理器。

WASM是一种解决方案

然而,事实证明,这些问题的解决方案就隐藏在众目睽睽之下–浏览器中。通过利用WebAssembly(Wasm)技术,我们可以改善无服务器函数的状态,使其速度快得惊人,超安全,并能隐藏服务器的细节。通过避免让用户选择操作系统或CPU类型,我们让开发者专注于无服务器的决策,而不是服务器的决策。此外,定义明确的软件包格式中的较小二进制文件简化了发布过程。

Serverless functions known as Functions as a Service (FaaS) provide a straightforward means of creating small cloud services

WASM的设计使其非常适合于无服务器功能。它的特点–包括快速启动时间、跨架构和跨操作系统的兼容性、紧凑的二进制文件和安全的沙盒–与无服务器功能平台所需的特征一致。有了在Wasm上运行的无服务器功能平台,开发者可以轻松地构建和部署各种应用,包括高度响应的HTTP应用,并充满信心。这也正是Fermyon开发的开源Spin框架的目标。

结论:

随着技术的发展,它们的应用往往超出了其最初的范围。Wasm目前正在经历这样的转变,因为新的用途被发现,超出了网络浏览器的范畴。无服务器功能已经被证明是成功的,但要将该技术提升到一个新的水平,需要更快、更强大的基础。Wasm正是满足这些需求的技术。

Share Via

Explore More

Aug 25 2023

机器学习与预测分析

客户是业内领先的芯片制造商之一。他们正试图在高内核 CPU 上对多线程机器学习 (ML) 推理性能进行基准测试和改进。

Read more
Nov 30 2022 Optimizing and Enhancing the Performance of an Image Processing Algorithm

优化和提高图像处理算法的性能

本案例研究强调了我们在为一个客户创建色度校正算法的优化管道和未来增强功能方面的作用。

Read more
Oct 19 2022 Intermediate Representation Support for ML Engine

为机器学习引擎提供中间表征支持

本案例研究强调了MulticoreWare在创建和实施软件层方面的作用,以利用客户现有的软件栈实现PyTorch后端支持。

Read more

GET IN TOUCH