字节跳动云原生微服务多运行时架构实践
1. 云原生微服务架构概述
- 服务架构演进:从单体架构到微服务架构,再到云原生微服务架构。
- 驱动因素:逻辑复杂性提升、业务规模增长、合作团队增加。
- 分层模型:业务逻辑、云原生能力、Service Mesh、计算层(K8S + Docker)。
2. 多运行时架构的应用案例
- 四种流量模型:
- 主路径运行时:分布式网关,中心化网关。
- 辅路运行时:分布式风控。
- 旁路运行时:A/B 测试。
- 独立运行时:流量镜像。
3. 字节多运行时架构
- 目标:将业务通用能力作为云原生的标准能力提供。
- 路径:将Service Mesh的开发和运维能力标准化、平台化。
- 优势:安全、灵活、可控的变更;减轻/消除多语言SDK维护;轻量/无感接入体验。
4. ByteRuntime 架构解析
- 分层架构:
- 自建机房、公有云IaaS、边缘节点。
- Compute Platform、Runtime Framework、TCE、ByteFaaS。
- ByteMesh、ByteRuntime SDK。
- 核心模块:Pilot、Sidecar、治理、运维。
- 架构理念:标准化、平台化。
5. ByteRuntime 主要能力
- sidecar framework:调试/灰度治理、SDK开发阶段流量编排、安全升级上线阶段流量治理、性能优化、观测诊断。
- 运行阶段:日志收集、降低sidecar使用成本、提升运行效率。
6. ByteRuntime 技术解析
- 开发阶段:sidecar framework。
- 上线阶段:sidecar接入、流量编排、Mesh Ingress、Janus mini。
- 运行阶段:性能优化、基于共享内存的通信、全静态编译、PGO间接call优化。
7. ByteRuntime 落地实践
- 落地数据:
- 平均升级周期:3~4周 vs 半年。
- sidecar数量:30+。
- 覆盖数:400w+ pod,服务数、业务线。
- 发布与运维平台(MCP):将微服务作为sidecar,支持独立发布和快速上线。
8. 兼容DAPR sidecar
- 兼容性:支持DAPR sidecar,增强灵活性和兼容性。
总结
字节跳动通过多运行时架构,实现了云原生微服务的高效部署和管理,显著提升了系统的安全性和灵活性。ByteRuntime架构通过标准化和平台化的方式,简化了微服务的开发和运维流程,提高了整体系统的稳定性和性能。