1、ByteFaaS-字节跳动 Serverless字节跳动 Serverless 容灾与多集群扩展实践/阔鑫我介绍2015年:在业务开发中最早接触 AWS Lambda 2017年:加 AWS Lambda,参与异步事件消费链路和函数执环境 Sandbox 的开发 2019年:作为早期成员加字节 Serverless 团队,参与 ByteFaaS 技术栈的开发迭代 2021年:FaaS Native-微服务 Serverless 化案落地 2022年今:引擎 Serverless 产品 veFaaS 迭代开发AgendaByteFaaS-字节跳动的 Serverless 字节内部规模落地的挑战
2、挑战:性能-冷启动优化与(去)中化流量调度 挑战:稳定性-运维段与容灾体系 挑战三:可扩展性-底层资源弹性与共池 Q&A技术架构,产品形态,业务应ByteFaaS-字节跳动的 Serverless ByteFaaS 介绍字节 Serverless 团队研的基于 K8S 的云原 Serverless 解决案 多种 Serverless 计算的产品形态 函数计算 Function As A Service 在线微服务 FaaS Native 轻量级运时 FaaS Worker 作为通计算平台泛撑上层业务 内部业务:评论流审核、视频转码、外部业务:书 aPaaS、抖云程序 公有云业务:veFaaSB
3、yteFaaS 介绍K8S 资源 ProviderByteFaaS 技术底座资源池化/流量调度/弹性伸缩/函数计算 FaaS在线微服务FaaS Native云边体FaaS Worker评论流审核视频压缩转码抖程序书 aPaaS上层业务多种 Serverless 计算形态字节 Serverless 技术底座基于 K8S 的底层资源管控ByteFaaS 介绍-函数计算函数实例(Python)Function Instance def handler(event,context):result=body:json.dumps(message:Hello Word!)return result 函数实
4、例(NodeJS)Function Instance exports.handler=async function handler(event,context)return body:JSON.stringify(message:hello),;统流量调度 API 关对象存储消息队列 Kafka/RocketMQ。触发HTTP 微服务实例 POST/ping GET/hello_world ByteFaaS 介绍-在线微服务Thrift RPC 微服务实例/Ping Trhfit API 接定义 struct PingRequest 1:optional String Msg,PingResp
5、onse Ping(1:PingRequest req)gRPC 微服务实例/The greeter service definition.service Greeter /Sends a greeting rpc SayHello(HelloRequest)returns(HelloReply)微服务 Client/Mesh触发统流量调度(多协议)ByteFaaS 介绍-轻量级运时 FaaS WorkerWASM Worker 进程 户请求触发边缘/中 流量接宿主机 Local Cache 最终致性GlobalKVGolang 函数(Tinygo)Rust 函数JavaScript 函数(Q
6、uickJS)hostcall API云边体持久化数据临时缓存性能,稳定性,容灾体系,与可扩展性字节内部规模落地的挑战字节内部规模落地的挑战-当前规模覆盖字节内部所有业务线和中台部 服务总数 20w+,活跃服务 2.2w 全球机房峰值 QPS 1.2亿 峰值集群 CPU 峰值利率 60%不同语运时 服务数量分布字节内部规模落地的挑战-当前规模覆盖字节内部所有业务线和中台部 服务总数 20w+,活跃服务 2.2w 全球机房峰值 QPS 1.2亿 峰值集群 CPU 峰值利率 60%字节内部规模落地的挑战-性能冷启动:前端应和后端在线服务对冷启动性能的要求 离线服务优化:流量消息队列消费场景 字节内