微服务架构演进:从单体到Service Mesh
·
引言
微服务架构已成为现代应用开发的主流范式。然而,随着服务数量的增长,服务间通信、流量管理、安全认证等"横切关注点"的复杂度也在急剧上升。Service Mesh作为下一代微服务架构的基础设施,通过Sidecar代理模式将服务治理从业务逻辑中解耦,实现了"关注点分离"的架构理想。
本文将梳理微服务架构的演进历程,深入剖析Service Mesh的核心原理,并提供Istio生产实践的完整指南。
一、微服务架构演进历程
1.1 单体架构的困境
┌──────────────────────────────────────┐
│ Monolithic App │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ User │ │ Order │ │Payment │ │
│ │ Module │ │ Module │ │ Module │ │
│ └────────┘ └────────┘ └────────┘ │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ Inventory │ │ Shipping │ │
│ │ Module │ │ Module │ │
│ └────────┘ └────────┘ └────────┘ │
│ Single Database │
└──────────────────────────────────────┘
单体架构的痛点:
- 代码耦合严重,一处修改全量发布
- 技术栈单一,难以引入新技术
- 扩展性差,只能整体水平扩展
- 故障隔离弱,局部问题影响全局
1.2 第一代微服务:SDK模式
Service A Service B
┌──────────────┐ ┌──────────────┐
│ Business Code│ │ Business Code│
├──────────────┤ ├──────────────┤
│ SDK Library │◄──────────►│ SDK Library │
│ - LoadBalance│ HTTP/gRPC│ - LoadBalance│
│ - Circuit │ │ - Circuit │
│ Breaker │ │ Breaker │
│ - Retry │ │ - Retry │
│ - Metrics │ │ - Metrics │
└──────────────┘ └──────────────┘
SDK模式的局限:
- 语言绑定:每个语言都需要独立SDK
- 升级困难:SDK升级需要全量重新部署
- 侵入性强:治理逻辑与业务代码耦合
1.3 第二代微服务:Service Mesh
Service A Service B
┌──────────────┐ ┌──────────────┐
│ Business Code│ │ Business Code│
└──────┬───────┘ └──────┬───────┘
│ │
┌──────┴───────┐ ┌──────┴───────┐
│ Sidecar Proxy│◄──────────►│ Sidecar Proxy│
│ (Envoy) │ mTLS │ (Envoy) │
└──────────────┘ └──────────────┘
Service Mesh的优势:
- 语言无关:Sidecar代理独立于业务语言
- 独立升级:代理可独立部署和升级
- 零侵入:业务代码无需任何改造
二、Service Mesh核心原理
2.1 数据平面与控制平面
┌─────────────────────────────────────────────────────────────┐
│ Control Plane (Istiod) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Pilot(配置)│ │Citadel │ │Galley │ │Mixer(策略)│ │
│ │ 分发 │ │(证书管理) │ │(配置校验)│ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
│ xDS API (ADS/CDS/EDS/LDS/RDS)
│
┌─────────────────────────────────────────────────────────────┐
│ Data Plane (Envoy) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ App Pod │ │ App Pod │ │
更多推荐
所有评论(0)