使用Hippo进入WebAssembly

2022-06-02 17:05:02 TechWeb阅读量:11431   
imgad2

介绍

WebAssembly是一项非常有前景的新技术,微软的云原生计算团队对其Deis Labs子公司和Azure非常感兴趣伴随着新的WebAssembly工具的快速出现,您需要一个可以试用它们的环境

这就是为什么Deis Labs发布其新的Hippo WebAssembly平台如此重要就像Deis的很多工具一样,无论是浏览器托管还是独立的WebAssembly系统接口,都是一种快速安装,管理和运行WebAssembly代码的方式将其内置通道与Git server结合起来,您可以在一个环境中制作和部署不同的版本,将生产,登台和开发构建分开,同时仍然只需要一个Hippo服务器

您可以在Hippo中托管多个应用程序Web意味着它们在默认情况下是沙箱化的,并且需要明确的权限才能访问主机系统或外部设备您的代码也是可移植的一旦为WebAssembly编译,它将运行在任何WebAssembly系统上,无论是Windows,Linux还是macOS,Intel,RISC—V还是ARMHippo为您提供了一种构建一次,测试一次并在任何地方运行代码的方法

在开发PC上设置Hippo

虽然像Hippo这样的工具非常适合云原生操作,但目前的开发者版本只在桌面系统上进行了测试我决定在运行最新版本的WSL2和运行Ubuntu的Windows PC上进行测试Deis提供了在本地运行Hippo的说明,以及macOS和Linux系统的细节

在WSL2 Ubuntu 20.04 LTS系统上获取运行Hippo的先决条件存在一些问题首先,我需要安装WAGI,即WebAssembly应用程序网关接口这很容易安装,在其GitHub存储库中托管的可下载的tarfile中有一个二进制文件一旦下载,解压缩并移动到用户二进制目录,它就可以轻松运行我借此机会安装了Rust,因为如果我必须重新编译任何Deis工具,我可能会需要它

这一步在WSL2上可能是最困难的,因为它需要一个build—essential工具包的副本Ubuntu 20.04没有正确的依赖集,所以我需要一个替代的包安装程序,允许我将一些关键库降级到适当的版本Stack Overflow的回答给我指出了apt,apt的替代品它允许您为安装选择合适的依赖项,并允许它替换两个低级C库我最后用它的安装脚本安装了build—essential,为Rust做准备

什么是绑定。

安装Rust作为Hippo安装的一部分的主要原因是为了Deis的WebAssembly打包工具BindleBindle被描述为聚合存储系统它的文档使用了隐喻活页夹是一个数字银器抽屉我们可能都会在银器抽屉里放一些不同的物品,但我们都会用抽屉来分类和存放银器Bindle对构成现代应用程序的工件做了许多相同的事情,同时,它提供了对应用程序如何根据它们的使用方式和使用位置进行组合的某种程度的理解

推荐白皮书

您可以对您的应用程序进行绑定描述,其中包含在资源有限的边缘主机和公共云核心的高性能服务器上进行稀疏安装所需的元素应用程序主机中的Bindle客户端可以获得元素和依赖项,并适当地部署它们结果是一个以应用程序为中心的部署模型,它避免了使用存储库和智能描述将正确的代码交付给正确的环境的多次构建

安装Bindle后,您可以运行它,并使用Hippo使用的默认设置设置本地Bindle服务器接下来,我使用微软提供的WSL指令安装Node.js这就需要使用curl下载nvm,然后运行它安装node.js的最新和长期支持的版本不要使用Ubuntu指令安装节点,他们使用snap来安装它,而它在WSL2中得不到很好的支持

您需要为Hippo托管的任何Rust WebAssembly应用程序安装Rust的wasm32—wasi支持和yo—wasm Yeoman应用程序搭建工具这将允许您将Rust代码编译到WASI目标中,准备在Hippo中运行

构建并运行Hippo

一旦安装了所有的先决条件,就可以构建Hippo了首先,Hippo GitHub存储被烹饪到WSL系统的本地目录中安装后,您可以构建并运行应用程序,通过添加BINDLE_URL环境变量将它指向本地Bindle服务器此时最好安装Hippo的CLI,因为这是应用开发和部署所必需的

现在您可以连接到您的Hippo服务器来测试它是否正常工作您应该在localhost的5001端口上找到它如果你运行的是最新版本的WSL 2,你应该可以使用localhost从Windows桌面浏览器连接到它,因为微软终于修复了WSL 2的一个长期存在的网络问题,通过Windows代理其虚拟机网络,同时仍然保留自己的IP地址和虚拟网络交换机提取和共享网络地址不再需要脚本

在连接到服务器之前,您需要注册一个帐户由于它在本地运行,你可以选择任何你喜欢的账户详情,只要它们是你能记住的,因为你需要详细的信息来构建你的第一个应用程序创建帐户后,登录您将被带到一个带有的地址创建新的应用程序按钮的您的应用程序页面

创建您的第一个Hippo WebAssembly应用程序

虽然您可以从Web UI为Hippo构建应用程序,但现在使用命令行更容易确保您已经安装了Hippo CLI,因为Yeoman将使用它来构建您的应用程序框架在开始之前,为您的Hippo帐户和密码及其端点设置环境变量是的,这不是一个好的安全实践,但这里我们只是在一台孤立的PC上使用尚未准备好投入生产的软件构建和运行测试代码

要构建一个基本的hello world应用程序,请使用yo—wasm工具构建一个WebAssembly Rust应用程序如果您遵循脚本并输入适当的值,这将构建源代码并将其加载到您的Hippo服务器中接下来,使用Rust Cargo工具编译并测试您的WASI应用程序在命令行上运行它之后,您可以使用Hippo的CLI工具将它推送到Bindle,在那里它将在Hippo中可见打开项目,选择您构建的开发环境,然后单击链接运行您的代码

如果你对WebAssembly感兴趣,Hippo大概是你入门需要的工具它使得使用WebAssembly代码更加容易,并将运行开发所需的许多不同部分集中在一个地方虽然它显然还是一个早期版本,但这足以让您入门,并使它成为任何使用WebAssembly的人的必备工具