1、超越边界:FaaS 的应用实践和未来展望蚂蚁集团 邢奇 2023/07FaaS 概述01应用研发模式面临的困境FaaS 的崛起02FaaS 的适用场景和价值03FaaS 落地面临的问题和挑战应用研发模式面临的困境代码耦合严重,复杂度高;运维流程繁琐,效率低;资源利用率低,存在浪费FaaS 研发模式的优势 提升研发效能:快写快发 提高运维效率:免运维 降低成本和资源消耗FaaS 的适用场景和价值适合场景让研发者更专注于业务 胶水代码 短生命周期 事件驱动 波峰波谷明显 多语言 高隔离性 适合业务 H5/小程序 聚合服务/BFF 推荐/营销平台 音/视频转码平台 算法/AIFaaS 落地面临的问题
2、和挑战性能安全成本体验 函数调用的性能问题 弹性扩缩容反应时间慢 容器启动速度慢 资源如何隔离 容器逃逸如何防御 免鉴权怎么支持 资源利用率如何提升 用户成本如何降低 函数研发体验优化 函数如何运维01蚂蚁FaaS技术实践说明02蚂蚁FaaS高性能实践详解03蚂蚁FaaS安全能力建设深入蚂蚁 FaaS 技术架构蚂蚁 FaaS 技术实践原则流量模型冷启动安全隔离one request per instance蚂蚁 FaaS 技术实践说明函数网关函数网关负责函数请求的转发和控制,并且为每个请求发起一次容器调度任务容器调度引擎(容器调度引擎(huse huse)负责容器的调度,对容器的生命周期进行管
3、理,并且可以控制函数的并发度和复用等状态。并且对函数pod资源池进行管理函数函数PodPod资源池资源池函数容器运行的环境,一个集群有N个Pod资源容器运行时容器运行时负责实现OCI标准,快速启动函数容器,对容器的runtime进行有效控制函数容器函数容器用户的函数代码运行在函数容器中,仅作为客户端拉取请求并处理,返回结果蚂蚁 FaaS 性能优化实践 函数网关函数网关函数网关负责统一接收函数请求,进行认证授权,并且发起容器调度,最后将请求转发给函数节点网关函数节点网关函数节点网关接收并缓存函数请求,并且将请求进行实例级别的分发,同时等待函数容器启动并开始处理请求函数容器函数容器函数代码运行的容
4、器,启动之后会作为客户端拉取请求并进行业务处理蚂蚁 FaaS 性能优化实践 函数网关CPU资源消耗下降了50%以上请求耗时下降了30%左右蚂蚁 FaaS 性能优化实践 容器调度引擎HUSE调度引擎,即Hyper-elastic Unified Serverless Engine,蚂蚁容器调蚂蚁容器调度引擎的下一代架构度引擎的下一代架构特性蚂蚁容器调度引擎的下一代架构,是专门面向高吞吐低延迟、低成本、极速启动的Serverless场景而设计的。场景目前HUSE不仅在FaaS场景进行实践,同时也应用在batch job等场景,是一个通用的serverless任务调度引擎。蚂蚁 FaaS 性能优化实
5、践 容器调度引擎全集群10000 QPS调度吞吐下,HUSE可以实现平均21ms的容器调度延迟蚂蚁 FaaS 性能优化实践 容器冷启动Warm Pool(100%资源冗余)冷启动(0资源冗余)传统文件系统(性能+安全隔离差)ROFS(性能提升一倍+安全)create+startcheckpoint+restore容器资源分配(分钟级别)容器资源缓存(0ms)NanoVisorNanoVisor轻量级Hypervisor,进行syscall interception和host syscall加速多平台支持多平台支持ARM(鲲鹏)、Hygon/AMD性能性能火焰图热点分析、Go runtime增强
6、、引入高性能用户态协议栈(TLDK/DPDK,引入CGO)应用场景应用场景FaaS、增强基础设施安全、增强容器平台安全、快速扩缩容蚂蚁 FaaS 性能优化实践 容器冷启动Read Only File System(ROFS)Read Only File System(ROFS)容器镜像文件不再需要解压为一个 host 上的目录并 bindmount 到容器内,而是使用 ROFS 可以解析的格式。容器创建的时候,镜像文件在 runsc-sandbox 进程之外打开,并在 sandbox 进程内直接 mmap,对镜像中文件的所有操作直接变成内存操作,而不需要调用系统调用操作 host 上的文件。蚂