网易数字+云原生论坛 美团点评服务治理系统设计及实践 高升 关于我 2015年加入美团点评基础架构部 网易数字+云原生论坛 先后深度参与了服务治理系统OCTO的演进以及异地多活解决方案(SET化)的研发工作 经历了服务治理系统OCTO1.0、OCTO2.0以及服务治理发展 完善的各个阶段 目录 CONTENTS OCTO1.0设计解析 服务治理演进及实践 网易数字+云原生论坛 OCTO2.0设计解析 总结与展望 美团点评服务治理系统OCTO概况 网易数字+云原生论坛 公司级基础设施超万亿次调用/天技术栈高度统一 经历大规模考验服务规模数万+节点规模数十万+ 治理能力丰富复杂路由、链路追踪、全链路压测、限流熔断、鉴权等 支撑多元业务、 外卖配送、酒店旅游、 支付等所有业务 OCTO1.0系统架构 •OCTO-NS:命名服务 •SGAgent:服务治理代理 •Scanner:健康检查系统 网易数字+云原生论坛 •Zookeeper:命名服务存储 •OCTO-RPC:RPC服务框架 •Java、C++、Nodejs •OCTO-Portal:一站式治理平台 •Watt:服务调用数据中心 核心设计解析(1):SGAgent-服务治理代理 •解耦,不强依赖ZK 网易数字+云原生论坛 •分布式、标准化部署 •多语言支持更友好 •升级成本更低 核心设计解析(2):Scanner-健康检查系统 网易数字+云原生论坛 定位:中心化健康检查系统;负责检查、更新服务节点状态优势:相对于点对点心跳,基本不会增加业务应用负载 特点:Doublecheck、延时探测、分机房部署、水平扩展 目录 CONTENTS OCTO1.0设计解析 服务治理演进及实践 网易数字+云原生论坛 OCTO2.0设计解析 总结与展望 网易数字+云原生论坛 美团点评服务治理演进 阶段一 基础治理能力 阶段二 高性能/易用性 阶段三 全方位的治理能力 阶段四 跨地区容灾和扩展 通信框架统一命名服务统一监控预警 运营平台 通信框架高性能通信框架轻量化分布式链路追踪 测试工具可视化 全链路压测平台稳定性保障平台服务鉴权、加密 链路级流量治理 SET化架构支撑 易用性平台建设 服务治理实践(1):基础治理能力建设 一站性治理平台 注册中心 •服务注册 •服务概要 •提供者 •消费者 服务运营 •配置管理 •服务分组 •节点管理 网易数字+云原生论坛 •服务鉴权 监控报警 •节点监控 •性能监控 •业务监控 •异常监控 OCTO-Portal 一站式服务治理平台 数据分析 •性能指标 •来源去向 •主机分析 •数据报表 •调用链路 服务治理实践(1):基础治理能力建设 网易数字+云原生论坛 服务调用数据统计 服务治理实践(2):高性能与易用性建设 易用性:细粒度埋点阶段 网易数字+云原生论坛 Client: Server: 服务治理实践(2):高性能与易用性建设 网易数字+云原生论坛 高性能:服务框架性能提升 •4核4G,1K数据包Echo测试•原则:框架自身不造成应用瓶颈 网易数字+云原生论坛 服务治理实践(3):全方位的服务保障建设 2.配额 限流 1.服务 鉴权 3.熔断 降级 服务保障体系 6.全链 路压测 4.故障 演练 5.链路 级流量 隔离 服务治理实践(3):全方位的服务保障建设 链路级流量隔离 网易数字+云原生论坛 •全链路灰度验证 •全链路服务压测 •全链路故障演练 服务治理实践(4):异地容灾&扩展 网易数字+云原生论坛 •内部称为“SET化架构” •SET是一个逻辑机房的概念 •外卖、配送、支付等落地 目录 CONTENTS OCTO1.0设计解析 服务治理演进及实践 网易数字+云原生论坛 OCTO2.0设计解析 总结与展望 网易数字+云原生论坛 OCTO1.0体系下的痛点与挑战 多语言 研发效率 异构体系 中心化治理能力 多元业务的多语言需求业务及中间件彼此制约迭代异构体系的融合成本高中心化治理能力是短板 业务进程 Sidecar代理进程 异构体系 中心化治理能力 痛点解决思路 业务进程 业务进程 Sidecar代理进程 Sidecar代理进程 (数据平面) 中心化控制大脑(控制平面) 多语言 研发效率 网易数字+云原生论坛 解决思路——ServiceMesh! 痛点解决思路 网易数字+云原生论坛 解决思路——ServiceMesh! 业务逻辑序列化解码 服务注册服务鉴权数据统计 … 业务逻辑 序列化编解码服务发现 服务路由服务鉴权限流/熔断数据统计 … 业务逻辑序列化解码 业务逻辑 序列化编解码 序列化解码服务注册服务鉴权数据统计 … 服务发现服务路由服务鉴权限流/熔断数据统计 … 控制平面 业务应用进程(客户端)业务应用进程(服务端) 网易数字+云原生论坛 OCTO2.0技术选型 子模块 技术方案选型 核心考量点 数据面 基于Envoy深度定制 •有机会成为数据面标准•Filter模式及xDS设计扩展性强•功能丰富 控制面 自研为主 •兼容存量非容器应用•特定容器模式不兼容Istio•现有的治理能力比社区产品更丰富、更精细 OCTO2.0系统架构 •OCTO-Proxy独立进程 •UNIXDomainSocket通信 网易数字+云原生论坛 •增强的xDS与自定义协议 •Pilot,承载核心治理功能 •Dispatch,各治理平台的接入中心 •MetaServer,元数据管理服务 •独立的Proxy管理系统 •集中式健康检查 核心设计解析(1):大规模系统Mesh化系统能力建设 adcore-pilot 网易数字+云原生论坛 中心管控系统 Adcore-pilot逻辑分为Diplomat、Snapshot、SesstionMgr三个模块。Diplomat负责与所有治理系统交互,Snapshot是独立的快照层并自己实现了进程内的发布订阅机制,SesstionMgr管理与数据面节点的会话。 每个pilot实例仅保留自己负责监管sidecar的所有数据及订阅信息,从而实现了按需加载和数据分片。另外隶属同一个应用的sidecar会尽可能交给同一个pilot实例管理 同一个应用的所有sidecar尽量去同一个控制面节点请求数据,通过metaServer自定义路由实现 核心设计解析(1):大规模系统Mesh化系统能力建设 网易数字+云原生论坛 metaServer元数据管理系统 实现逻辑的数据分片自定义路由管理 扩容有效 核心设计解析(1):大规模系统Mesh化系统能力建设 网易数字+云原生论坛 Mesh集中式健康检查 Payments OCTO-Proxy oppingCard Sh OCTO-Proxy Frontend OCTO-Proxy scanner SessionMgr 核心设计解析(2):异构治理系统融合设计 adcore-dispatch 网易数字+云原生论坛 统一接入中心 网易数字+云原生论坛 核心设计解析(3):稳定性保障设计 思路 方案 故障隔离 集群隔离能力建设,metaServer支持按事业群拆分部署 流量粒度的切换 SDKfallback机制,异常时自动切换到非Mesh模式 完善的回归测试 建设完善的回归机制,回归引擎提升效率 柔性可用 代理缓存,控制面异常时柔性可用 核心设计解析(4):系统运维能力建设 网易数字+云原生论坛 LEGOagent代理管理系统 Resource LEGO V-1 V-2 lego-agent lego-agent lego-agent OCTO-Proxy OCTO-Proxy OCTO-Proxy rules 目录 CONTENTS OCTO1.0设计解析 网易数字+云原生论坛 服务治理演进及实践 OCTO2.0设计解析 总结与展望 总结与展望-总结 •服务治理建设应该围绕体系标准化、易用性、高性能三个方面开展。 •大规模治理体系Mesh化应该关注以下内容: 网易数字+云原生论坛 1.适配公司技术体系比新潮技术更重要,重点关注容器化&治理体系兼容打通 2.建设系统化的稳定性保障体系及运维体系。 总结与展望–展望 •完善治理体系: 逐渐丰富OCTOMesh治理体系,探索其他流量类型,全面提升服务治理效率。 网易数字+云原生论坛 •大规模落地: 持续打造健壮的OCTOMesh治理体系,稳步推动在公司的大规模落地。 •中心化治理能力探索: 新治理模式的中心化管控下,全局最优治理能力探索。 网易数字+云原生论坛 THANKYOU 更多技术干货 欢迎关注“美团技术团队”