首页>行情 >内容

微服务管理器Istio 1.5中的网路代理Envoy开始支援WebAssembly增加动态可扩充性

行情2021-02-14 12:02:26
最佳答案

Google、Lyft及IBM合作开发的微服务管理器Istio,最近推出了1.5版本,而Google说明这个版本其中最大的特色,便是Istio的网路代理Envoy开始支援WebAssembly,而这让Envoy和Istio能够获得WebAssembly扩充套件的加持,藉以将Istio可扩展性从控制层(Control Plane)移到侧车代理(Sidecar Proxy)。目前这项功能还在Alpha测试阶段。

Lyfty在2016年开源了Envoy服务代理专案,现在逐渐成为云端原生应用程式部署的固定工具,包括在边缘以及侧车应用都受到欢迎。Envoy原本就有其扩充机制,可以使用预编译的C++模组或是Lua脚本增加扩充功能,但Google提到,这两者都有其缺点,由于Istio的设计目标之一,就是要简化政策、遥测和日誌系统的扩充性,虽然使用控制层元件和程序外配置器可以达到这目的,但是却会增加多余的网路跳跃点以及延迟。

WebAssembly是一种二元指令格式,Istio现在透过Envoy把WebAssembly带进伺服器端中。WebAssembly现在已经是W3C推荐的网页应用标準,使用者可从30多种语言编译成WebAssembly程式码,并在沙盒环境中执行。透过WebAssembly在Envoy代理中扩充功能,则不需要重新编译程式码,部署也更加简单,Istio能够将扩充套件发布给代理,在不需要重新启动的情况下,载入扩充套件。

Envoy专案创造者Matt Klein提到,在Envoy中支援WebAssembly,将会解开更多服务网状网路和API闸道的使用案例。而为了要强化WebAssembly扩充套件的使用体验,他们与Solo.io合作,Solo.io创建了WebAssembly Hub服务,可用来建置、共享、探索和部署WebAssembly扩充套件,让使用者够简单地将WebAssembly扩充套件部署到Envoy上。

WebAssembly Hub高度自动化了开发和部署WebAssembly扩充套件的步骤,使用WebAssembly Hub工具,使用者可以轻鬆地将任何支援的语言程式码,编译成为WebAssembly扩充套件,接着把这些扩充套件上传至Hub注册服务中,用户只要使用单个指令,就可以将扩充套件部署至Istio中。Google提到,WebAssembly扩充套件与容器一样易于管理,能简单地安装以及执行。

WebAssembly Hub在背后处理了许多细节问题,像是ABI版本验证和权限控制等问题,而且也会自动扩展部署,减少跨Istio服务代理配置的麻烦,避免配置错误或是版本不符的意外错误。

目前Envoy支援WebAssembly的功能,仍在Alpha测试中,接下来开发团队会最终确定ABI,并将其转变为标準,以在标準组织中取得更广泛的回馈。另外,Google提到,他们会继续向Envoy上游专案提供支援,并且为相关工具以及WebAssembly Hub寻找适合的社群。

免责声明:本文由用户上传,如有侵权请联系删除!