电子商务|阿里巴巴服务网格技术三位一体战略背后的思考与实践( 四 )


Dubbo/HSF RPC 支持多种序列化方式 , 而 Mesh 针对一些序列化并不能做到很友好的支持 , 比如 Java 序列化 。
因此 , 业务在 Mesh 化第一阶段 , 针对 Java 序列化 , Sidecar 不做编解码 , 采用 Passthrough 流量透传的方式;针对 Hessian2 序列化 , Mesh 实现了完整的编解码支持 , 并基于性能考虑实现了惰性编解码 。 基于此 , 我们可以实现对这类流量实现流量打标(染色)并通过扩展 VirtualService 的方式 , 实现标签路由和 Fallback 的能力 。 还可以实现一些特定的业务场景 , 如金丝雀发布、全链路灰度等场景;
内部业务 MeshSDK 这层会逐步升级到 Dubbo3.0 SDK , 在开启 Mesh 的场景下 , Dubbo3.0 SDK 仅提供 RPC 等能力 , 对应 ThinSDK 模式 , Mesh 化后 , Sidecar 的协议支持友好度更好、资源开销成本有一定的降低;当 Sidecar 故障时 , 可以快读切回 FatSDK 模式 , 业务无感知;
对于集群内部业务 , 流量调度存在一些较为复杂的场景 , 特别是一些规模较大的业务 。 比如多机房多区域部署 ,同时在单个区域下还存在服务多版本、多环境的的路由等
这就涉及到不同维度的路由和后端 cluster 选择 , 这些维度可能有:
区域化路由 机房路由 单元化路由 环境路由 多版本路由 集团电商场景尤为典型 , 基于此 , 内部扩展 Istio 通过引入新的 CRD:RouteChain、 TrafficLable 以及对 VirtualService 的扩展 , 实现了对流量打标和按标路由的能力 。

商业化产品阿里云服务网格 ASM 也将这些能力进行了不同程度的透出 , 可以基于此实现比如金丝雀发布、A/B 测试、全链路灰度等场景 。
云产品:阿里云服务网格 ASM 前面我们介绍了阿里巴巴服务网格在开源和大规模落地方面的实践 , 接下来分享下在云原生三位一体中关于云产品方面的设计 。 阿里云通过总结业务场景落地经验 , 持续驱动技术发展 , 沉淀一系列服务网格核心技术 。
在大规模落地方面:比如按需动态推送规则配置 , 大规模业务无损下 Sidecar 热升级 , 支持最全面的异构计算基础设施 , 支持多注册中心与平台 。
在流量治理方面:提供了精细化的流量控制 , 按需对流量协议、端口动态拦截 , 零配置实现请求标签路由以及流量染色 , 支持多种协议的精细化治理 。
在可观测能力方面:提供了日志、监控与跟踪融合的一体化智能运维 , 同时基于 eBPF 增强可观测性 , 实现无侵入实现全链路可观测 , 辅助业务快速排障 。
在安全能力方面:支持 Spiffe/Spire、实现零信任网络、增强认证鉴权机制 支持渐进式逐步实现 mTLS 。
在性能优化方面:通过 eBPF 技术进行网络加速 , 实现软硬一体的性能优化 。

阿里云服务网格 ASM 是业界首个兼容 Istio 的托管式服务网格平台 , 支持完整的服务网格产品能力:精细化的应用流量管理、端到端的可观测能力、安全和高可用;支持多语言多环境、多种微服务框架、多协议互联互通等复杂场景 。 服务网格 ASM 技术架构已经升全面升级 V2.0 ,托管了控制面核心组件 , 保证了标准版和专业版的架构统一 , 平滑支持社区各个版本的升级 。 同时 ASM 在和社区标准统一的基础上进行各种能力增强 。 主要包括流量管理和协议增强 , 支持多种零信任安全能力 , 支持对接 Nacos、Consul 等多种注册中心 。 除此之外通过网格诊断能力快速分析网格的健康状况 , 配合控制面告警快速响应 。
服务网格 ASM 和各种云服务能力充分融合 , 包括链路追踪、Prometheus 监控、日志服务等可观测能力 。 集成 AHAS 支持服务限流、集群限流和自适应限流 , 结合微服务引擎 MSE 支持服务治理 , 并且能够给跨 VPC 多集群提供一致的治理体验 。 在自定义扩展方面支持 OPA 安全引擎 , webAssembly 等自定义扩展能力 。