蚂蚁集团 FaaS 技术实践研报总结
FaaS 概述与优势
FaaS(函数即服务)旨在解决传统应用研发模式中代码耦合严重、运维流程繁琐、资源利用率低等问题。其核心优势在于提升研发效能(快写快发)和降低成本与资源消耗,让研发者更专注于业务。FaaS 适合胶水代码、短生命周期、事件驱动、波峰波谷明显、多语言、高隔离性等业务场景。
蚂蚁 FaaS 技术架构与实践
蚂蚁 FaaS 技术架构主要包括函数网关、容器调度引擎(HUSE)、函数 Pod 资源池、容器运行时和函数容器等组件。其中:
- 函数网关:负责请求转发、认证授权和容器调度。
- HUSE:作为蚂蚁容器调度引擎的下一代架构,支持高吞吐低延迟、低成本、极速启动,适用于 FaaS 和 batch job 等场景,全集群 10000 QPS 调度吞吐下平均延迟 21ms。
- 函数 Pod 资源池:函数容器运行的环境。
- 容器运行时:实现 OCI 标准,快速启动函数容器。
- 函数容器:用户函数代码运行的容器。
蚂蚁 FaaS 性能优化实践
蚂蚁通过多项技术优化 FaaS 性能:
- 函数网关:统一接收请求,进行认证授权和调度。
- 函数节点网关:接收并缓存请求,进行实例级别分发。
- HUSE 调度引擎:支持高吞吐低延迟调度。
- 容器冷启动优化:
- NanoVisor:轻量级 Hypervisor,支持 ARM 和 Hygon/AMD 平台,通过 syscall interception 和 host syscall 加速提升性能。
- ROFS:只读文件系统,将镜像文件 mmap 到内存,避免系统调用操作宿主机文件。
- Create+Start 容器:符合 OCI 标准的容器启动接口。
- Checkpoint 技术:保存进程和内核状态,恢复后直接处理业务逻辑。
- Restore 容器:利用保存的状态快速恢复容器。
- FaaS 函数容器落地开销:启动速度 < 90ms,内存开销 < 1MB。
蚂蚁 FaaS 安全建设
蚂蚁 FaaS 通过以下措施加强安全:
- 容器和网络架构:Runsc(NanoVisor)管理函数生命周期,函数容器隔离,通过 Bridge+eBPF 进行网络过滤和控制。
- 容器纵向安全防逃逸:函数程序运行在虚拟化 guest 态,系统调用由 sentry 处理和响应,限制系统调用。
- 容器横向安全:网络行为审计、DNS 请求审计、端口监听管控、四层网络管控。
- 免鉴权访问:简化访问流程。
蚂蚁 FaaS 体验优化
蚂蚁 FaaS 优化研发和运维体验:
- 研发效能:代码快写快发,10 秒内完成函数上线。
- 运维效能:Serverless 一站式平台,免运维,自动集成监控告警。
FaaS 的改变和优势
FaaS 的核心优势包括:
- 内存开销 < 1MB
- 启动速度 < 90ms
- 用户只为流量付费
- 下一代安全容器
- 免鉴权调用
- 纯业务、快写开发
- 无应用申请流程
- 无碎片代码和版本
- Serverless 一站式平台
- 免运维
- 自动集成监控告警
FaaS 的实践和收益
典型 FaaS 实践案例包括:
- MaaS On FaaS:体系无缝整合现有应用框架及中间件,函数式运维能力升级,风险平台能力整合。
- 洛克公园:研发团队情况优化,业务痛点解决,核心诉求满足,成果收益显著提升,研发迭代速度提升,计费成本降低。
未来展望
未来蚂蚁 FaaS 将聚焦:
- 极致性能:毫秒级冷启动。
- 极致效能:AIGC + FaaS,包括 AI 函数开发、自然语言对话、业务代码生成、模版及组件导购、语义式检索、流程自动化、风险托管等,结合蚂蚁 NLPGPT、CodeGPT、OpsGPT 等技术。