微服务平台的发展趋势 张明 •关于我 张明 网易数帆·轻舟微服务产品经理 10余年云计算领域研发及产品设计经验,先后在华为, 网易从事云计算、微服务产品规划工作 热爱技术的产品经理 对虚拟化、容器、容器网络、微服务、服务网格等领域有深刻的理解,目前专注于微服务、服务网格和云原生领域。 目 录 01微服务平台演进历史 02轻舟微服务平台介绍 03微服务平台选型建议 •应用架构演进 微服务 微服务 微服务 微服务 单体架构SOA微服务 单体 单体 单体 单体 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 微服务 单体 单体 单体 ESB 垂直拆分:多个单体应用 通过ESB实现系统互联的中心化架构 水平拆分:分层的细粒度服务 以RPC和REST为代表的去中心化架构,解决服务重用问题 •应用微服务化需要考虑哪些因素 日志分析 链路追踪 事务 指标监控 分流 限流 熔断 降级 容错 服务发现 负载均衡 服务认证 服务鉴权 序列化协议 网络通信 通信链路加密 •微服务发展历程 微服务1.0时代:基于框架的微服务 2011201220132014201520162017201820192020 微服务2.0时代:服务网格 Service 自研SDK …… 熔断降级 负载均衡 服务路由 服务注册发现 协议编解码 业务逻辑 •微服务框架萌芽期 互联网大厂早期微服务架构实践,通过自研组件实现大型应用的拆分: 尚未形成微服务技术框架标准 尚未出现开源的组件,企业自研所需组件 Service 开源SDK …… 熔断降级 负载均衡 服务路由 服务注册发现 协议编解码 业务逻辑 •开源微服务框架爆发期 互联网大厂微服务实践过程中,逐步形成了由一系列标准化组件组成的微服务框架事实标准,中小企业基于开源框架,开启了微服务实践之路: 阿里Dubbo开源 Netflix微服务技术架构开源 springcloud项目推出 •微服务框架成熟期 Service 商用SDK …… 熔断降级 负载均衡 服务路由 服务注册发现 协议编解码 业务逻辑 随着SpringCloud、Dubbo等开源微服务框架的广泛使用,公有云厂商率先推出了商用微服务框架,随后各大厂商陆续推出了支持私有化部署的商用微服务框架: 统一管控、监控平台 统一技术栈 功能丰富,兼容开源 •开源服务网格诞生 业务逻辑 Service 轻量级SDK 协议编解码 服务发现 服务注册 Sidecar 服务网格为服务间通讯的基础设施层,通过一组轻量级网络代理(SidecarProxy)拦截流量进行服务治理: 异构语言统一服务治理体系 应用逻辑代码和服务治理能力无耦合 应用程序对代理无感知 服务路由 负载均衡 熔断降级 …… •商用服务网格推出 业务逻辑 Service 轻量级SDK 协议编解码 Sidecar 微服务框架厂商,陆续推出了商用服务网格产品,在开源的基础上提供更高的性能,更完善的功能: 提供统一管控平台 数据面性能优化 功能更加丰富 服务路由 负载均衡 熔断降级 …… 服务注册 服务发现 •统一微服务平台诞生 业务逻辑 轻量级SDK 协议编解码 Service 商用SDK …… 熔断降级 负载均衡 服务路由 服务注册发现 协议编解码 业务逻辑 Service Sidecar 统一微服务平台,支持SpringCloud、Dubbo等微服务框架和服务网格: 统一管控平台 相互通信 平滑向服务网格迁移 服务注册 服务发现 服务路由 负载均衡 熔断降级 …… •开源微服务框架vs商用微服务框架 配置参数分散,缺少管控入口 技术栈分散,没有统一的标准 注册中心、API网关等等众多组件需自行部署和维护 功能不完善,例如开源Hystrix不支持动态配置 未提供日志服务、分布式事务等组件 统一的管控平台 统一的技术栈 用户无需关心组件部署,仅使用功能 功能完善,提供丰富的治理能力 组件更丰富 •微服务框架vs服务网格 微服务架构 服务网格 Sidecar …… 熔断降级 负载均衡 服务路由 服务发现 服务注册 Service 轻量级SDK 协议编解码 业务逻辑 Service SDK …… 熔断降级 负载均衡 服务路由 服务注册发现 协议编解码 业务逻辑 + 开发语言限定,SpringCloud仅支持Java开发语言 基于方法级的服务治理 不限定部署形态,支持虚拟机、容器等等 性能影响小 支持异构语言 基于流量的服务治理 依赖于K8S容器平台 引入Sidecar,性能下降明显 •开源服务网格vs商用服务网格 Thrift治理 接口权限控制 动态流量拦截Sidecar配置懒加载 单机限流 Sidecar热升级 Mixer性能优化 全局限流 Dubbo治理 动态降级静态降级 自动配置生成 Sidecar管理 虚机部署 全局单机限流 兜底路由 流量穿梭 立体化监控 流量染色 网易轻舟服务网格在内部实践中增强的功能 目 录 01微服务平台演进历史 02轻舟微服务平台介绍 03微服务平台选型建议 •轻舟微服务平台 统一微服务平台 支持传统微服务框架和服务网格统一管控 基于开源,兼容开源 代码无侵入 基于SpringBoot的应用无需适配开发基于SpringCloud的应用无需修改代码 服务治理能力丰富 提供服务注册、发现、路由、限流、熔断、降级、认证鉴权、配置管理、监控、调用链跟踪等等服务治理功能 灵活部署 支持跨多云平台,支持容器、虚拟机、物 理机等负载类型 •基于Agent的微服务框架 SDK微服务框架 服务网格思想 基于Agent的微服务框架 基于JavaAgent技术 •微服务框架对比 Service SDK …… 熔断降级 负载均衡 服务路由 服务注册发现 协议编解码 业务逻辑 基于SDK的微服务框架 开发语言限定,SpringCloud仅支持Java开发语言 业务逻辑通过引入SDK包(开源或商用)实现服务 治理 Service 轻量级SDK 协议编解码 业务逻辑 JavaAgent …… 熔断降级 负载均衡 服务路由 服务发现 服务注册 基于Agent的微服务框架 开发语言限定,SpringCloud仅支持Java开发语言 业务逻辑使用开源SDK接入轻舟微服务,无需替换依赖包 应用系统通过Springboot开发,直接通过Agent增强,无需在业务逻辑代码中引入SDK •基于轻舟的服务治理平台和体系化建设 拆分标准化 质量标准化 架构标准化 管理 部署标准化 隔离标准化 编码规范标准化 日志 Trace Metrics 告警平台 故障演练 压测平台 监控管控 限流平台 降级平台 静态化平台 弹性能力 服务生命周期管理 平台治理能力 目 录 01微服务平台演进历史 02轻舟微服务平台介绍 03微服务平台选型建议 •服务网格场景:多语言支持 •服务网格场景:老应用无改动升级 流量控制 1、流量控制; 2、熔断降级; 3、超时重试; 4、无侵入; 安全 1、认证鉴权; 2、无侵入; 可观测 1、监控; 2、Metrics; 3、无侵入; •微服务框架场景 维持现有框架 1、已使用SpringCloud等微服务框架; …… 虚拟机部署 1、未使用容器; Istio功能 1、不支持Dubbo 协议; 2、时延增加不可 接受; …… Istio成熟度 1、版本迭代快; 2、生产实践少; …… •微服务框架选型 基于SDK的微服务框架 基于Agent的微服务框架 业务代码代码开发浪费 服务网格 业务代码代码无侵入 •商用微服务平台考量因素 成功的大型互联网应用实践案例 支持与第三方容器、CICD平台对接 丰富的服务治理能力 基于开源技术 代码无侵入 与底层基础设施解耦 兼容开源 支持传统微服务框架和服务网格 提供丰富的组件支持虚机、容器等负载类型 •展望未来 Service 业务逻辑自研SDK HTTP/RPC TCP/IP Service 业务逻辑开源SDK HTTP/RPC TCP/IP Service 业务逻辑 Agent HTTP/RPC TCP/IP Service 业务逻辑 服务网格 HTTP/RPC TCP/IP “前途是光明的,道路是曲折的“ 扫码即可关注