#IstioCon百度APP基于Istio实现基础架构升级
背景
百度APP核心业务线已完成微服务改造,数万个微服务对架构服务治理能力提出更高要求,主要体现在:
- 高级架构能力需支持多语言、多框架
- 运维架构能力需具备可移植性和低成本复制性
- 可观测性不足,缺乏通用机制提升产品线可观测性
具体问题包括:
- 部分模块上下游超时配置不合理
- 多数模块缺乏对单点异常、慢节点的容忍能力
- 重试导致的雪崩问题需要重复建设RPC框架
- 升级中发现模块故障容忍能力不足
- 运维降级、止损能力重复建设且方案差异大
- 精细故障能力(异常query、注入延迟)需标准化
- 缺少上下游模块视图和流量视图,黄金指标不足
目标
- 服务治理策略平台化:通过合作共建实现完整Service Mesh架构,提升策略灵活性,缩减迭代周期,降低研发成本
- 服务治理能力通用化:为不同模块、产品线提供通用化、中台化的服务治理能力,加速研发迭代,提升架构可移植性
技术方案
- 核心原则:务实、高稳定性、低迁移成本
- 核心思路:
- 先单跳,后双跳
- 服务发现下沉到Envoy
- 基于RPC+服务发现实现透明流量劫持
- 自建配置中心,产品化封装
- 关键技术:
- 内核劫持:使用LoopbackIP与服务发现一一对应
- RPC劫持:构建可快速扩展标准方案
- 自身稳定性:通过降级(兜底)、隔离、监控保证
- 架构组件:
- Mesh控制中心:运维中心、配置中心、上线中心
- 核心组件:控制面板(Istio-Pilot)、数据面板(Envoy)
收益
- 稳定性方面:
- 防雪崩:动态BackupRequest策略,降低Redis回退引发的雪崩问题
- 长尾优化:LocalityAware负载均衡策略优化长尾平响问题
- 架构故障韧性能力提升
- 治理效率方面:
- 周边生态方面:
- 覆盖率:
未来规划
- 强化稳定性工程:Case覆盖、故障自动恢复
- 实现现有能力整合:Mesh作为基础层整合内部Trace系统、压测平台等
- 积极拥抱社区:贡献Istio社区
- 探索新应用:机房扩建、流量染色分级等