写点什么

云原生微服务的下一站:Proxyless Service Mesh

  • 2023-11-03
    广东
  • 本文字数:1627 字

    阅读完需:约 5 分钟

云原生微服务的下一站:Proxyless Service Mesh

本文分享自华为云社区《DTSE Tech Talk | 第46期:云原生微服务的下一站:Proxyless Service Mesh》,作者:华为云社区精选。


本期直播主题是《云原生微服务的下一站:Proxyless Service Mesh》,华为云云原生 DTSE 技术布道师、华为云技术规划专家,Sermant 开源社区创始人杨奕以及华为云云原生 DTSE 技术布道师、Sermant 社区 PMC 李来,和开发者一起交流了微服务架构演进历程、新一代的新一代云原生无代理服务网格 Sermant 如何解决以往架构的痛点以及实操演示如何改造升级微服务架构。

微服务架构各自的痛点


在微服务的概念出现之前分布式业务的改造最早是通过传统的 SOA(面向服务)架构来进行的。SOA 架构一般会部署集中式的 Load Balancer 或者中心网关。它的优点是架构简单,但是性能低下,可扩展性差。


此后微服务 SDK 架构开始流行起来,例如 Dubbo 和 Spring Cloud,主要是通过业务应用中引入 SDK 来实现服务注册发现、限流降级、全链路灰度等服务治理能力。这种架构的性能卓越,功能丰富,但应用改造成本高,升级困难。


近年来较为流行的微服务架构是 Service Mesh 边车架构,它通过在微服务旁边挂载一个单独 sidecar 进程,去接管各种服务治理能力。Service Mesh 架构的特点是应用改造成本低,可以解决多语言问题,但是资源消耗高,性能低下。

Sermant 是什么



Sermant 是面向 Java 微服务的新型云原生 Proxyless Service Mesh 方案,它结合了上述三种微服务架构的优势,并且解决了它们的痛点问题,既有 SDK 架构的高性能、多功能的好处,又有边车架构的零侵入优势, 而且还能一键接入。


Sermant 核心原理是利用字节码增强为宿主应用程序提供插件化的服务治理功能,并且提供动态配置用于调整运行时服务治理功能。此外,配套的 Backend 组件也使得 Sermant 具有边车自身运行时的可观测能力。


Sermant 的核心架构优势


Sermant 的 Proxyless Service Mesh 架构具有高性能、插件化、非侵入的特点。


  • 高性能


Sermant 利用了 Java 的字节码增强能力,实现方式是面向 AOP 的服务治理能力注入。相对于 Istio 这种 sidecar 架构来说,无独立进程开销,性能提升明显。



  • 插件化


Sermant 框架底座封装了字节码增强的 SPI 接口,提供了动态配置、事件上报等能力,基于这个底座的插件开发基础,Sermant 提供了完善和便利的开发生态,把所有的服务治理功能插件化。目前开源仓库中的插件已经有了限流降级、灰度发布、优雅上下线等能力。


另外,各个插件之间、插件和业务之间做到了类隔离,不但使得治理能力解耦,也避免了和业务应用之间的类冲突问题。Sermant 完善的类隔离机制使得插件可以轻松地实现热插拔,在故障注入等场景以及插件升级时无需中断应用即可将插件动态注入到业务应用进程中。



  • 非侵入


Sermant 是基于 JavaAgent 实现的,利用字节码增强的能力,Sermant 不需要修改业务应用的源代码,在运行时可以动态修改目标类的字节码,对于业务应用的开发者来说是无感知的。


在虚机场景,开发和运维人员只需在 java -jar 启动应用程序的命令前,添加一段-javaagent 的启动参数指定 Sermant 的 jar 包的路径就可以让应用在运行时挂载 Sermant。


在容器场景,在部署了 sermant-injector 组件后,创建容器时只需在 Deployment 中添加一行 sermant-injection:enabled 的 Label 就能在创建 Pod 时让业务应用挂载 Sermant 启动,真正做到一键接入。


Sermant 在微服务治理中的应用


  • 微服务架构改造


传统的 SOA/ESB 架构做改造升级一般为两种:引入微服务 SDK 对海量的微服务做全量改造;引入传统的 sidecar 架构,对微服务做少量改造。前者的改造量巨大,各业务部门之间难以协同推进;后者工作量较少,但是性能和运维问题仍存在隐患。


Sermant 的改造方式对应用非侵入,周期短,并且支持灰度改造,在不影响业务稳定的前提下,可以逐步实现架构的整体升级。


▲ 微服务架构改造


  • 全链路灰度发布


Sermant 的流量染色、流量标签透传、标签路由能力使得 Sermant 具备了完整的全链灰度发布的能力。并且染色、透传、路由规则都支持动态配置,让全链灰度发布可以按照实际场景的需求来进行开关或调整治理规则。



点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
云原生微服务的下一站:Proxyless Service Mesh_微服务_华为云开发者联盟_InfoQ写作社区