适应多样化需求:WASM 插件在全链路灰度发布中的应用

💡 原文中文,约5100字,阅读约需12分钟。
📝

内容提要

根据调研数据显示,约70%的生产故障是由变更引起的。为了消除变更过程存在的风险,在发布过程中,我们希望能够用小部分特定流量来验证新发布应用是否正常。微服务架构下的全链路灰度能够满足这一需求。MSE在微服务全链路灰度场景下提供了一套成熟完善且开箱即用的能力。如果遇到复杂场景,可以使用云原生网关WASM插件来满足需求。WASM插件是一种可移植、高性能的二进制指令集,可以满足各种全链路灰度的需求。通过编写WASM插件,可以实现根据特定Header的参数比例需求。通过WASM插件,可以实现根据用户标识、地理位置、流量比例、请求包复杂属性等进行全链路灰度。

Q&A

全链路灰度发布的主要目的是什么?

全链路灰度发布的主要目的是通过小部分特定流量验证新发布应用的正常性,从而降低变更过程中的风险。

WASM插件在全链路灰度发布中有什么优势?

WASM插件具有可移植性、高性能和多语言扩展能力,能够满足复杂的全链路灰度需求,并在沙箱环境中运行,确保对整体性能的最小影响。

如何使用WASM插件实现根据用户标识进行全链路灰度?

可以通过编写WASM插件,根据用户的身份、角色、权限等信息,将特定用户的请求路由到相应的灰度环境。

MSE在微服务全链路灰度场景下提供了哪些能力?

MSE提供了一套成熟的开箱即用能力,支持按照内容规则与百分比规则的灰度路由策略,满足常见的全链路灰度场景需求。

WASM插件不适合处理哪些类型的逻辑?

WASM插件不适合处理需要对接数据库或多线程的逻辑。

如何在MSE中配置WASM插件?

在MSE中,可以将编译好的WASM文件通过自定义插件的方式上传到插件市场,MSE云原生网关会将其加载到Envoy中进行处理。

🏷️

标签

➡️

继续阅读