《超越边界FaaS的应用实践和未来展望_邢奇.pdf》由会员分享,可在线阅读,更多相关《超越边界FaaS的应用实践和未来展望_邢奇.pdf(41页珍藏版)》请在三个皮匠报告上搜索。
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 上的文件。蚂
7、蚁 FaaS 性能优化实践 容器冷启动CreateCreate+StartStart容器容器符合 OCI 标准的容器运行时包含 create 和 start 两个容器启动相关的接口create 是根据容器镜像和配置文件创建容器运行的环境,对应 NanoVisor 容器沙箱的创建和应用程序内核的初始化;start 则是启动容器,对应 NanoVisor 容器沙箱内一号进程(Nodejs Runtime)的创建和启动。蚂蚁 FaaS 性能优化实践 容器冷启动制作制作checkpointcheckpoint种子种子首先按照传统方式创建、启动一个容器,等待容器内的 Nodejs Runtime 初始化
8、完成之后,使用 checkpoint 技术对 Nodejs Runtime 进程和应用程序内核 sentry 进行状态、数据的保存。蚂蚁 FaaS 性能优化实践 容器冷启动RestoreRestore容器容器在容器启动阶段,我们使用 restore 来进行容器启动,直接利用之前保存好的进程、内核状态和数据进行恢复,不再需要重新初始化 Nodejs Runtime。在恢复完成之后,Nodejs Runtime 就可以立刻进行业务逻辑处理。蚂蚁 FaaS 性能优化实践 容器冷启动FaaSFaaS函数容器落地开销函数容器落地开销-启动速度 90ms-内存开销 1MB蚂蚁对第三代容器运行时的期待:安全
9、容器发于安全,而归于性能成本蚂蚁对第三代容器运行时的期待:安全容器发于安全,而归于性能成本1010 x x蚂蚁 FaaS 性能优化实践 容器冷启动蚂蚁 FaaS 安全建设 容器和网络架构RunscRunsc(NanoVisorNanoVisor )负责实现函数生命周期的管理,快速启动函数容器函数容器(函数容器(runscrunsc sandboxsandbox)函数容器是一个完全隔离的runsc沙箱环境,配置有ACL规则和虚拟的veth pair网卡Bridge+eBPFBridge+eBPF函数容器的veth pair挂在bridge上,通过eBPF进行高效网络过滤、控制和转发蚂蚁 FaaS
10、 安全建设 容器纵向安全防逃逸函数程序函数程序运行在虚拟化的 guest 态,它的系统调用会被 sentry(运行在 guest kernel 态和 host kernel 态)处理和响应。NanoVisorNanoVisor提供了一个 Go 语言编写的应用程序内核 sentry,它会处理所有函数实例的系统调用。sentry 本身的系统调用由 seccomp 进行限制。nanovmnanovm虚拟化虚拟化轻量级的 vmm 管理,它是 host 上的一个内核模块。网络行为审计(网络相关的操作,如 connect,accept,recvmsg 等)DNS 请求审计、拦截 端口监听管控 基于五元组的
11、信息的四层网络管控蚂蚁 FaaS 安全建设 容器横向安全蚂蚁 FaaS 安全建设 免鉴权访问 代理服务访问(func2func、DB、OSS、云服务等)公网访问 用户租户VPC访问 其它出口网络01研发体验02运维体验蚂蚁 FaaS 的体验优化蚂蚁 FaaS 的体验优化 研发效能创建函数发布函数测试函数FaaS 研发体验:代码快写快发,10S内完成一个函数上线蚂蚁 FaaS 的体验优化 研发效能6年级小朋友5分钟现场完成字支付宝小程序+FaaS云函数研发链路指标日志FaaS研发效能:Serverless一站式平台、免运维、自动集成监控告警 告警蚂蚁 FaaS 的体验优化 运维效能低成本安全保障
12、 内存开销 1MB 启动速度 90ms 用户只为流量付费 下一代安全容器 免鉴权调用研发效能运维效率 纯业务、快写开发 无应用申请流程 无碎片代码和版本 Serverless一站式平台 免运维 自动集成监控告警等蚂蚁 FaaS 的改变和优势01典型 FaaS 实践案例02FaaS 带来的收益和改变FaaS 的实践和收益典型 FaaS 实践案例 MaaS On FaaSMaaS 面临的问题 定制化监控分析及使用场景多,对于差异化诉求,难以平台化支持及快速响应。监控数据抽象不足,用户难以标准化、便捷的使用监控实体模型 及 时序数据。监控及风险领域的 AIOps 平台架构缺少重要一环,即 单场景 及
13、 多个单场景 运维模块串联的流程化 AI 运维能力典型 FaaS 实践案例 MaaS On FaaS体系无缝整合与现有应用框架及中间件打通函数式运维能力升级支持流量调拨、金丝雀发布等风险平台能力整合函数监控,灰度、流量、变更等平台能力整合MaaSMaaS 通用模块下沉,业务部分重构为垂直样板间,快速构建标准化通用模块下沉,业务部分重构为垂直样板间,快速构建标准化 FaaSFaaS 研发平台研发平台典型 FaaS 实践案例 洛克公园研发团队情况 4位前端同学,同时维护前后端 及 函数代码;相对编程能力较弱。一位后端同学,维护阿里云应用业务痛点 业务需求多:客户业务快速发展,业务需求频繁,但现在后
14、端服务发布或者小程序发布流程都比较复杂,难于快速响应业务需求。研发门槛较高:希望尽量降低研发门槛,比如更简单便捷的监控,业务链路的自动串联等等。云成本较高:希望尽量降低研发成本,希望支付宝小程序云能够进一步降低服务器的成本。典型 FaaS 实践案例 洛克公园核心诉求 统一技术栈以及较低的研发门槛 快速业务研发与发布 运维托管和流量波动下的动态扩缩容成果收益研发迭代速度显著提升新需求的发布时间从原来需要数天时间,成功缩短至仅需数小时即可全部完成计费成本更低01极致性能02极致效能未来展望AIGC极致效能极致性能未来展望FORK极致性能:毫秒级的冷启动Checkpoint+restore(90ms)runtimefork(3.5ms)runtime+codefork(3.5ms)极致效能:AIGC+FaaSAI 函数开发自然语言对话业务代码生成语义式检索模版及组件导购风险托管流程自动化蚂蚁 NLPGPT,CodeGPT,OpsGPT,极致效能:AIGC+FaaS