Run WebAssembly in Apache APISIX
王院生
Apache APISIX PMC member
QCon 2022·上海站
软件正在重新定义世界
Software Is Redefining The World
关于我
- 王院生
- 《OpenResty 最佳实践》
- Apache APISIX PMC Member API7.ai Founder & CTO
About Apache APISIX
- 办公:WPS
- Apache APISIX
- 追剧:爱奇艺
- 新闻:微博
- 出行:购买⻜机票
- 餐饮:奈雪的茶
About API7.ai
- 有理想主义的重度开源社区爱好者创办 全球卓越人才,远程协作
- APISIX 创始人 & PMC,OpenResty/Nginx/K8s Ingress 维护者 其他 Apache 项目 Mentor、committer Archsubmit、Velocity、Apache 等大会出品人、讲师
为什么 APISIX 选择 WebAssembly
API 是数字世界基石
- 流量越来越多
- 关系越发复杂
- 动态场景,越发突出
数字世界的服务连接,需稳定、安全且高效
为什么 APISIX 选择 WebAssembly
- World's most active API gateway: Monthly release
- 软件趋势: 软件替代硬件,开源替代闭源 开源 No.1 = “黑洞” 社区基数决定项目的路有多宽
- 多语言: WASM; Plugin runner
- Nginx 最主流 占有率超过 50%
- 开发者呼吁要有多语言的支持 Wasm 为了嵌入 Host 环境而生
APISIX 与 WebAssembly 集成实践
NGINX -> wasm runtie -> wasm plugin(go/rust)
- 最优雅的多语言方案
- 没有额外优化
- APISIX:第一个基于 Nginx 支持 WASM 的开源解决方案
- 性能:No.1
- WASM:编程界的“小无相功”
案例分享
国内知名语音识别企业
WASM 数据加解密 - CPU 运算类型
WASM 对接私有用户认证中心 - Redis 通信
国内知名教育行业 - 标签路由
TinyGo + WASM
根据请求信息 + 插件配置规则,修改请求头
官方示例
https://www.apiseven.com/blog/apisix-support-wasm Rust 版本 fault-injection
AssemblyScript 版本 fault-injection
未来规划
道路曲折,但前途光明
编程语言支持待完善
Proxy WASM 生态有待成熟 WASM 没有内置协程
WASM 技术栈前景光明
包括 Apache APISIX 和 Envoy 等开源项目对于 WASM 都很看重,有许多 初创公司和大企业为 WASM 生态添砖加瓦,这意味着诸如 AssemblyScript SDK 停滞不前这样的困难,只会是暂时。⻓久看,Proxy WASM 的生态会枝繁叶茂。
WASM 作为 serverless 和 edge computing 的宠儿,有着光明的未来。在 众多实际场景的落地和优化,会更快的解决技术上的不足。
Apache Way “Community over code”
Apache APISIX WASM