手把手搞定渐进式Node Faas—渐进FaaS解决方案
如果无法正常显示,请先停止浏览器的去广告插件。
1. 手把手搞定渐进式Node FaaS
⻬穹
蚂蚁保险服务业务前端负责人
2. 陈智浩(⻬穹)
蚂蚁数字金融线体验技术部
Needle Stack发起人
资深Node.js爱好者
Node.js早期玩家
推进落地千万DAU业务
腾讯
FaaS技术构建IoT低码平台
钉钉防疫精灵机器人,服务超百万群 蚂蚁保险服务业务前端负责人
Needle Node FaaS发起者
阿里云 蚂蚁
3. 目录
01 Why:蚂蚁BFF挑战和思考
02 How:Node FaaS平台关键设计和思考
03
分享目标
1.技术实现思路
2.架构思考方法
Next:下阶段技术探索方向
4. /01
WHY
BFF研发挑战的底层逻辑思考
5. 1.1.BFF研发效率的困境
Busines
业务研发
Workflow
协作模式
应用交付”堵⻋”频发
人员、代码协作成本极高
质量、发布⻛险高
Busines
业务研发
多人协作方案
Workflow
协作模式
Git Flow / Scrum / …
企业级应用框架
Framework
代码组织
门槛高,非业务代码耗损大
Deliver
交付粒度
应用级别
单测 / 集成 / 部署耗时冗长
Framework
代码组织
“智子锁死”
无FaaS可用
Deliver
交付粒度
业务交付更快
研发成本更低
⻛险更可控
无需协作
独立灵活,解耦
无框架
0门槛,无额外代码
函数级别
快写、快测、快发
6. 1.2.渐进支持思路突破限制
Busines
业务研发
应用交付”堵⻋”频发
人员、代码协作成本极高
质量、发布⻛险高
基于Chair的函数动态运行方案
基于FaaS的运行时终态
Runtime in App
Runtime in FaaS
业务函数
Workflow
协作模式
多人协作方案
Git Flow / Scrum / …
业务函数
渐进支持FaaS DevOps
函数容器(VM)
函数容器(逻辑容器)
服务Adaptor(中间件) 服务 Adaptor(Sidecar)
Web应用框架(chair) FaaS容器
企业级应用框架
Framework
代码组织
门槛高,非业务代码耗损大
Deliver
交付粒度
应用级别
单测 / 集成 / 部署耗时冗长
函数粒度开发
函数动态部署
函数动态执行
先释放FaaS研发效能优势
7. /02
HOW
Node FaaS平台关键设计和思考
8. 企业级平台的设计思考
精益求精
架构设计
技术选型
•
•
•
•
•
•
•
重点加固:高可用设计
极致追求:高性能 & 渐进式研究
产品化:生命周期视⻆
架构设计:拓扑视⻆
基石技术是什么?
用户、业务、技术三维分析技术要求
关键要素对比
精益求精
架构设计
技术选型
9. 2.1.运行容器技术选型
1 2 3
基石技术识别 明确技术要求和优先级 关键要素对比验证
可靠优先:可靠性不容有失,性能可选
容器技术
产物标准
Node.js VM最符合当前需求
效率优先:逻辑隔离必选,资源隔离可选
关键要素
交付规格
技术
运行单元
可
选
方
案
业务 用户
金融业务,高可用
粘合接口,低复杂度 开发任务重,提效诉求强
一方开发者,可信可控
10. 关键要素
1.逻辑数据隔离,快发高效无⻛险
可
选
方
案
2.研发成本占优,可以快速落地
3.方案较为简单,可靠性较高
11. 2.2.架构设计
应用
场景
应用开发
小程序
平台集成
中后台应用
H5
低码平台
模块开发
数据智能平台
模块云端一体
数据服务
PaaS
网关(RPC/HTTP)
复用业务BFF应用
空
间
拓
扑
视
角
复用业务BFF应用
Needle容器
Needle容器
业务函数
运行
平面
…
函数容器(VM)
…
…
…
服务Adaptor(中间件)
…
Needle-Runtime Agent:部署 / 监控
Web Framework(chair)
PaaS
文件同步服务
函数部署
管控
平面
Needle管控平台
开发
文档式编辑器
质量
自动化UT
部署
运维
灰度部署
生命周期视角
卡点管控
监控巡检
应急能力
12. 2.3.重点加固-高可用方案
秒级感知
分钟级变更止血
全流程可追溯
13. 阶段成果
5min
一站式在线开发
函数粒度开发、交付
选择业务分组
研发提效 稳定可靠
400+ 40+
半年预估节约人日 业务应用接入
产物样例
开发接口函数
余额宝活动卡片
蚂蚁财富
立即部署,自动监控
蚂蚁保险
余额宝
相互宝
14. /03
NEXT
下阶段技术探索方向
15. 3.下一步技术探索方向
极致体验 降本增效 向后兼容
核心指标:请求延迟 核心指标:单QPS成本 核心指标:单函数迁移时间
Runtime 容器
执行性能
框架初始化
容器初始化
函数初始化
业务代码
函数执行
构建时适配
冷启动
…
公共代码(复用/服务/工具)
运行时适配层
函数调度
单机性能
FaaS容器 / Needle Agent
运行时适配 & 优化
16. 感谢聆听,期待交流