超越边界FaaS的应用实践和未来展望

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 超越边界:FaaS 的应 用实践和未来展望 蚂蚁集团 邢奇 2023/07
2. FaaS 概述
3. FaaS 的崛起 01 02 应用研发模式面临的困境 FaaS 的适用场景和价值 03 FaaS 落地面临的问题和挑战
4. 应用研发模式面临的困境 代码耦合严重,复杂度高;运维流程繁琐,效率低;资源利用率低,存在浪费
5. FaaS 研发模式的优势 • 提升研发效能:快写快发 • 提高运维效率:免运维 • 降低成本和资源消耗
6. FaaS 的适用场景和价值 让研发者更专注于业务 适合场景 • • • • • • 胶水代码 短生命周期 事件驱动 波峰波谷明显 多语言 高隔离性 适合业务 • • • • • H5/小程序 聚合服务/BFF 推荐/营销平台 音/视频转码平台 算法/ AI
7. FaaS 落地面临的问题和挑战 性能 安全 成本 体验 • 函数调用的性能问题 • 资源如何隔离 • 资源利用率如何提升 • 函数研发体验优化 • 弹性扩缩容反应时间慢 • 容器逃逸如何防御 • 用户成本如何降低 • 函数如何运维 • 容器启动速度慢 • 免鉴权怎么支持
8. 深入蚂蚁 FaaS 技术架构 01 02 蚂蚁FaaS技术实践说明 蚂蚁FaaS高性能实践详解 03 蚂蚁FaaS安全能力建设
9. 蚂蚁 FaaS 技术实践原则 冷启 动 流量 模型 安全 隔离 one request per instance
10. 蚂蚁 FaaS 技术实践说明 函数网关 负责函数请求的转发和控制,并且为每个请求发起一次容 器调度任务 容器调度引擎( huse ) 负责容器的调度,对容器的生命周期进行管理,并且可以 控制函数的并发度和复用等状态。并且对函数pod资源池 进行管理 函数Pod资源池 函数容器运行的环境,一个集群有N个Pod资源 容器运行时 负责实现OCI标准,快速启动函数容器,对容器的 runtime进行有效控制 函数容器 用户的函数代码运行在函数容器中,仅作为客户端拉取请 求并处理,返回结果
11. 蚂蚁 FaaS 性能优化实践 函数网关 函数网关 负责统一接收函数请求,进行认证授权,并且发起 容器调度,最后将请求转发给函数节点网关 函数节点网关 接收并缓存函数请求,并且将请求进行实例级别的 分发,同时等待函数容器启动并开始处理请求 函数容器 函数代码运行的容器,启动之后会作为客户端拉取 请求并进行业务处理
12. 蚂蚁 FaaS 性能优化实践 CPU资源消耗下降了50%以上 函数网关 请求耗时下降了30%左右
13. 蚂蚁 FaaS 性能优化实践 容器调度引擎 HUSE调度引擎,即Hyper-elastic Unified Serverless Engine,蚂蚁容器调 度引擎的下一代架构 特性 蚂蚁容器调度引擎的下一代架构,是专门面向高吞吐低延迟、低 成本、极速启动的Serverless场景而设计的。 场景 目前HUSE不仅在FaaS场景进行实践,同时也应用在batch job等 场景,是一个通用的serverless任务调度引擎。
14. 蚂蚁 FaaS 性能优化实践 容器调度引擎 全集群10000 QPS调度吞吐下,HUSE可以实现平均21ms的容器调度延迟
15. 蚂蚁 FaaS 性能优化实践 容器冷启动 Warm Pool 冷启动 (100%资源冗余) (0资源冗余) 容器资源分配 容器资源缓存 (分钟级别) (0ms) 传统文件系统 ROFS (性能+安全隔离差) (性能提升一倍+安全) create +start checkpoint +restore
16. 蚂蚁 FaaS 性能优化实践 容器冷启动 NanoVisor 轻量级Hypervisor,进行syscall interception和 host syscall加速 多平台支持 ARM(鲲鹏)、Hygon/AMD 性能 火焰图热点分析、Go runtime增强、引入高性 能用户态协议栈(TLDK/DPDK,引入CGO) 应用场景 FaaS、增强基础设施安全、增强容器平台安 全、快速扩缩容
17. 蚂蚁 FaaS 性能优化实践 容器冷启动 Read Only File System (ROFS) 容器镜像文件不再需要解压为一个 host 上的目录并 bindmount 到容器内,而是使用 ROFS 可以解析的格式。 容器创建的时候,镜像文件在 runsc-sandbox 进程之外打开,并在 sandbox 进程内直接 mmap,对镜像中文件的所有操作直接变成内存操作,而 不需要调用系统调用操作 host 上的文件。
18. 蚂蚁 FaaS 性能优化实践 容器冷启动 Create+Start容器 符合 OCI 标准的容器运行时包含 create 和 start 两个容器启动相关的接口 create 是根据容器镜像和配置文件创建容器运行的环境,对应 NanoVisor 容器沙箱的创建和应用程序内核的初始化; start 则是启动容器,对应 NanoVisor 容器沙箱内一号进程(Nodejs Runtime)的创建和启动。
19. 蚂蚁 FaaS 性能优化实践 容器冷启动 制作checkpoint种子 首先按照传统方式创建、启动一个容器,等待容器内的 Nodejs Runtime 初始化完成之后,使用 checkpoint 技术对 Nodejs Runtime 进程和应用程序内核 sentry 进行状态、数据的保存。
20. 蚂蚁 FaaS 性能优化实践 容器冷启动 Restore容器 在容器启动阶段,我们使用 restore 来进行容器启动,直接利用之前保存好的进程、内核状态和数据进行恢复,不再需要重新 初始化 Nodejs Runtime。 在恢复完成之后,Nodejs Runtime 就可以立刻进行业务逻辑处理。
21. 蚂蚁 FaaS 性能优化实践 容器冷启动 FaaS函数容器落地开销 - 启动速度 < 90ms - 内存开销 < 1MB 蚂蚁对第三代容器运行时的期待:安全容器发于安全,而归于性能成本——10x
22. 蚂蚁 FaaS 安全建设 容器和网络架构 Runsc( NanoVisor ) 负责实现函数生命周期的管理,快速启动函数容器 函数容器(runsc sandbox) 函数容器是一个完全隔离的runsc沙箱环境,配置有 ACL规则和虚拟的veth pair网卡 Bridge+eBPF 函数容器的veth pair挂在bridge上,通过eBPF进行 高效网络过滤、控制和转发
23. 蚂蚁 FaaS 安全建设 容器纵向安全防逃逸 函数程序 运行在虚拟化的 guest 态,它的系统调用会被 sentry(运行在 guest kernel 态和 host kernel 态) 处理和响应。 NanoVisor 提供了一个 Go 语言编写的应用程序内核 sentry, 它会处理所有函数实例的系统调用。 sentry 本身的系统调用由 seccomp 进行限制。 nanovm虚拟化 轻量级的 vmm 管理,它是 host 上的一个内核模 块。
24. 蚂蚁 FaaS 安全建设 容器横向安全 • 网络行为审计(网络相关的操作,如 connect, accept, recvmsg 等) • DNS 请求审计、拦截 • 端口监听管控 • 基于五元组的信息的四层网络管控
25. 蚂蚁 FaaS 安全建设 免鉴权访问 • 代理服务访问 (func2func、DB、 OSS、云服务等) • 公网访问 • 用户租户VPC访问 • 其它出口网络
26. 蚂蚁 FaaS 的体验优化 01 02 研发体验 运维体验
27. 蚂蚁 FaaS 的体验优化 创建 函数 发布 函数 研发效能 测试 函数 FaaS 研发体验:代码快写快发,10S内完成一个函数上线
28. 蚂蚁 FaaS 的体验优化 研发效能 6年级小朋友5分钟现场完成字支付宝小程序+FaaS云函数研发
29. 蚂蚁 FaaS 的体验优化 运维效能 链路 日志 指标 告警 FaaS研发效能:Serverless一站式平台、免运维、自动集成监控告警
30. 蚂蚁 FaaS 的改变和优势 低成 本 安全 保障 研发 效能 运维 效率 • 内存开销 < 1MB • 下一代安全容器 • 纯业务、快写开发 • Serverless一站式平台 • 启动速度 < 90ms • 免鉴权调用 • 无应用申请流程 • 免运维 • 无碎片代码和版本 • 自动集成监控告警等 • 用户只为流量付费
31. FaaS 的实践和收益 01 典型 FaaS 实践案例 02 FaaS 带来的收益和改变
32. 典型 FaaS 实践案例 MaaS 面临的问题 • 定制化监控分析及使用场景多,对于差异化诉求,难以平台化 支持及快速响应。 • 监控数据抽象不足,用户难以标准化、便捷的使用监控实体模 型 及 时序数据。 • 监控及风险领域的 AIOps 平台架构缺少重要一环,即 单场景 及 多个单场景 运维模块串联的流程化 AI 运维能力 MaaS On FaaS
33. 典型 FaaS 实践案例 MaaS On FaaS 体系无缝整合 与现有应用框架及中间件打通 函数式运维能力升级 支持流量调拨、金丝雀发布等 风险平台能力整合 函数监控,灰度、流量、 变更等平台能力整合 MaaS 通用模块下沉,业务部分重构为垂直样板间,快速构建标准化 FaaS 研发平台
34. 典型 FaaS 实践案例 洛克公园 研发团队情况 • 4位前端同学,同时维护前后端 及 函数代码;相对编程 能力较弱。 • 一位后端同学,维护阿里云应用 业务痛点 • 业务需求多:客户业务快速发展,业务需求频繁,但现在后 端服务发布或者小程序发布流程都比较复杂,难于快速响应 业务需求。 • 研发门槛较高:希望尽量降低研发门槛,比如更简单便捷的 监控,业务链路的自动串联等等。 • 云成本较高:希望尽量降低研发成本,希望支付宝小程序云 能够进一步降低服务器的成本。
35. 典型 FaaS 实践案例 核心诉求 • 统一技术栈以及较低的研发门槛 • 快速业务研发与发布 • 运维托管和流量波动下的动态扩缩容 成果收益 • 研发迭代速度显著提升 • 新需求的发布时间从原来需要数 天时间,成功缩短至仅需数小时 即可全部完成 • 计费成本更低 洛克公园
36. 未来展望 01 极致性能 02 极致效能
37. 未来展望 极致性能 极致效能 FORK AIGC
38. 极致性能:毫秒级的冷启动 Checkpoint +restore runtime fork runtime+code fork (90ms) (3.5ms) (3.5ms)
39. 极致效能:AIGC + FaaS AI 函数开发 自然语言对话 业务代码生成 语义式检索 模版及组件导购 风险托管 流程自动化 蚂蚁 NLPGPT, CodeGPT, OpsGPT,……
40. 极致效能:AIGC + FaaS
41.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.138.0. UTC+08:00, 2024-12-22 01:56
浙ICP备14020137号-1 $Map of visitor$