适应多样化需求:WASM 插件在全链路灰度发布中的应用
内容提要
根据调研数据显示,约70%的生产故障是由变更引起的。为了消除变更过程存在的风险,在发布过程中,我们希望能够用小部分特定流量来验证新发布应用是否正常。微服务架构下的全链路灰度能够满足这一需求。MSE在微服务全链路灰度场景下提供了一套成熟完善且开箱即用的能力。如果遇到复杂场景,可以使用云原生网关WASM插件来满足需求。WASM插件是一种可移植、高性能的二进制指令集,可以满足各种全链路灰度的需求。通过编写WASM插件,可以实现根据特定Header的参数比例需求。通过WASM插件,可以实现根据用户标识、地理位置、流量比例、请求包复杂属性等进行全链路灰度。
关键要点
-
约70%的生产故障是由变更引起的。
-
微服务架构下的全链路灰度能够用小部分特定流量验证新发布应用的正常性。
-
MSE在微服务全链路灰度场景下提供成熟的开箱即用能力。
-
MSE支持按照内容规则与百分比规则的灰度路由策略。
-
复杂场景下,MSE的策略可能无法满足需求。
-
云原生网关WASM插件是一种可移植、高性能的二进制指令集,用于扩展功能。
-
WASM插件支持多语言扩展,提供灵活性和可扩展性。
-
MSE插件市场提供默认插件,提升网关的安全与稳定性。
-
WASM插件运行在沙箱环境中,确保对整体性能的最小影响。
-
通过WASM插件可以实现根据用户标识、地理位置、流量比例等进行全链路灰度。
-
WASM插件可以根据特定Header的参数比例需求进行灰度路由。
-
可以根据用户身份、角色、权限等信息进行个别用户的全链路灰度。
-
可以根据用户地理位置信息进行特定地区的全链路灰度。
-
可以根据流量比例将请求路由到不同的灰度环境。
-
WASM插件不适合处理需要对接数据库或多线程的逻辑。
延伸问答
全链路灰度发布的主要目的是什么?
全链路灰度发布的主要目的是通过小部分特定流量验证新发布应用的正常性,从而降低变更过程中的风险。
WASM插件在全链路灰度发布中有什么优势?
WASM插件具有可移植性、高性能和多语言扩展能力,能够满足复杂的全链路灰度需求,并在沙箱环境中运行,确保对整体性能的最小影响。
如何使用WASM插件实现根据用户标识进行全链路灰度?
可以通过编写WASM插件,根据用户的身份、角色、权限等信息,将特定用户的请求路由到相应的灰度环境。
MSE在微服务全链路灰度场景下提供了哪些能力?
MSE提供了一套成熟的开箱即用能力,支持按照内容规则与百分比规则的灰度路由策略,满足常见的全链路灰度场景需求。
WASM插件不适合处理哪些类型的逻辑?
WASM插件不适合处理需要对接数据库或多线程的逻辑。
如何在MSE中配置WASM插件?
在MSE中,可以将编译好的WASM文件通过自定义插件的方式上传到插件市场,MSE云原生网关会将其加载到Envoy中进行处理。