高级架构能力无法多语言、多框架复用。
架构容错能力治理周期长,基础能力覆盖度低。
可观测性不足,是否有通用机制提升产品线可观测性。
多数模块对单点异常,慢节点等异常缺乏基础容忍能力,推动每个模块独立修复,成本高,上线周期长。
百度APP&Feed产品线单点、多点故障容错能力覆盖面不足,基础故障报警周级别占比10.4%,统一治理成本高。


百度APP&FEED&矩阵近3年来线上出现近30起雪崩Case(1.5亿PV损失),缺少统一的雪崩治理能力 ,90%的雪崩是因为重试风暴、超时倒挂、降级能力缺失(分别占 56%、19%、15%),统一治理成本高,周期长。


构建产品线模块上下游调用链一直缺乏通用的解决方案,大多数都是基于rpc框架或者业务框架定制,模块调用链覆盖率低。比如某重要产品线端到端涉及到2000多个模块,调用链关系十分复杂,具体流量的来源不够透明,严重影响运维效率。如机房搭建不知道上下游的连接关系,靠人肉梳理误差大,某产品线一次搭建周期将近2个月时间。另外故障定位、容量管理等由于全局的可观测性不足,往往只能依赖经验定位,效率十分低下。
如某产品线近2年发生数次雪崩case,底层依赖的php、golang等框架需要重复建设来定制动态熔断、动态超时等高级能力,而这些能力在其他rpc框架如已支持。
| 编程语言 | Golang, C++, PHP |
|---|---|
| RPC框架 | GDP(1.0, 1.5, 2.0), BRPC, Ral、Phaster |
| 协议 | Nshead,HTTP, Redis,baidu_std |
如常用架构降级、止损能力各个产品线重复建设,接口方案差异大,从运维层面,运维同学期望基础的架构止损能力在不同产品线之间能够通用化,接口标准化,降低运维成本。