写点什么

GOTC 峰会 Sermant 发布 1.1.0-beta 版本,带来哪些提升?

作者:华为云开源
  • 2023-06-15
    广东
  • 本文字数:2417 字

    阅读完需:约 8 分钟

5 月 27-28 日,GOTC 全球开源技术峰会在上海如约举办,Sermant 也在 GOTC 中进行亮相,并参与了活动展台、快闪演讲等活动,吸引众多开发者深入了解 Sermant 的无代理微服务框架的非侵入、高性能、插件化的核心优势,并对探索实践和落地表现出极大兴趣。

本次 GOTC 峰会也邀请了 Linux 基金会执行董事、LF AI & Data 基金会执行董事,CNCF 中国区总监、来百度、华为、腾讯、火山引擎、红帽、Intel、VMWare、F5、微软、开源中国等企业的全球开源重磅嘉宾出席。在峰会上,Sermant 对 5 月 23 号社区发布的 v1.1.0-beta 版本进行首次公开宣讲,也让行业内专家和更多的开发者了解 Sermant 以及新版本带来的新特性和改进点。

此次发布的 v1.1.0-beta 版本对服务治理的可观测性,流量治理能力,以及可用性治理能力做出了很大提升,下面对这些提升点进行详细说明。

社区地址:https://github.com/huaweicloud/Sermant

官网地址:https://sermant.io

可观测性提升

新版本中,针对可观测性,建立了对 Sermant 运行状态及服务治理能力状态的监控机制,用户能够更直观,更清晰的看到 Sermant 进行服务治理的过程,可用于快速了解 Sermant 运行状态及当前已生效的服务治理能力,使服务治理有迹可循。

在新版本中,用户通过访问 Backend,可在浏览器中直接看到 Sermant 运行状态,服务治理能力触发的事件以及 Sermant 服务运行期间产生的警告、错误等日志信息,特别的是,用户可以在 Backend 界面中配置钉钉和飞书 webhook 通知,当服务运行过程中有异常发生,能够第一时间将异常事件发送至相关人员知悉。

下图对可观测性进行展示,图中可清晰看出服务运行期间不同等级的事件数量,并且列出一段事件内的事件相关信息。

Backend 模块还具有事件管理能力,以下图片展示了事件的部分搜索能力以及 webhook 通知能力。

(1)根据服务名查询事件的能力

(2) 根据事件级别查询的能力

(3)webhook 通知的能力

流量治理能力提升

系统规则流控和负载自适应流控

Sermant 在上一版本中对流控能力有以下不足:

l 缺乏对服务器本身资源的规则配置

l 规则具有延迟性

针对上述不足,Sermant 新版本中对流控能力做了提升,引入基于系统规则的流控能力以及基于负载的自适应流控能力。

系统规则流控是指对系统规则指标实时检测,当系统规则某一项指标超出阈值时,对流量进行控制,目前支持以下五种系统指标:

l 系统负载

l CPU 使用率

l 平均响应时间

l 并发线程数

l QPS

负载自适应流控根据系统规则流控中的负载指标,增加了自适应的能力,自适应是指当前流量的控制需要根据系统过去一段时间内资源消耗情况进行判断,下图展示部分自适应流控能力的测试数据:

(1)下图展示了应用随着请求压力的增加,响应时间的变化曲线。可以看出,自适应流控可以显著提高并发下请求的响应时间。

(2)下图展示了应用在固定请求压力下,系统负载资源的变化曲线。可以看出,自适应流控可以明显降低负载资源的损耗。

路由规则模型统一和链路染色

以往版本中,路由能力存在基于不同内容匹配流量的规则数据格式不统一和路由能力不便于扩展的缺陷,所以新版本对路由规则配置能力提升,不同的路由能力采用同一套数据模型。

通过使用新版本的路由能力,用户可以基于同一套数据结构来适配不同的匹配规则,极大的简化了规则配置。

下图展示流量染色的过程:

当客户端 client 发起携带特征的请求调用应用 App_1 时,App_1 携带的 Sermant 对符合路由规则的入口流量进行染色,即增加流量标记,根据请求特征进行分流后,进入后端的微服务应用,流量标记会随着请求调用一直传递下去。

链路染色即对请求流量进行颜色标记,并且将标记跟随着链路一直传递下去。结合流量路由与流量染色能力,可以实现全链路灰度、多环境隔离等场景。

可用性治理能力提升

离群实例摘除

在服务调用过程中,为了解决下游实例异常导致业务不稳定,服务调用失败的问题,新版本增加了离群实力摘除能力,通过检测应用实例的可用性,当下游服务出现异常时,可以动态调整下游服务实例列表。

下图展示 Sermant 离群实例摘除能力:

当 App_1 的下游服务 App_2,App_3,App_4 的实例出现异常时,Sermant 会将异常实例从下游实例例表中去除,保证服务能够调用成功。

通过使用离群实例摘除服务治理能力,检测服务提供端的状态来动态调整服务消费端的实例发现,避免在运行过程中服务消费端因服务提供端状态异常而导致降低性能降低和可用性受损的状况,从而提升业务的稳定性和服务质量。

同可用区域优先调用

当应用部署在多个机房时,可能会出现跨机房互相调用的场景,这会导致网络时延增加。Sermant 新版本提供了同可用区优先调用的能力,开启后,Consumer 将优先调用同机房的 Provider,降低网络时延。

下图展示同可用区域优先调用能力:

当应用 App_1 调用下游实例 App_2 时,App_2 的下游实例分布在 az1 和 az2,当 App_2 对下游发起调用时,az1 和 az2 的下游都有可能被访问,当采用 Sermant 同 az 优先调用能力后,会优先调用 az1 的下游实例,保证调用低时延,提高用户体验。

总结

本文主要介绍了 Semrnat v1.1.0-beta 版本为用户提供的新特性和优化点,帮助大家更清楚的了解新版本提供的能力,以及如何更好的使用这些能力。

未来 Sermant 还将提供不限于以下针对 Sermant-agent 的提升及更多基于 JavaAgent 的微服务治理能力:

l Sermant-agent 将提供动态挂载的能力,这将为一些运维态服务接入服务治理能力带来便利。

l Sermant-agent 将提供内部事件通知机制,让服务治理插件可以感知 Sermant-agent 及其他插件的状态,以做出动态调整。

l 在架构升级场景(使用 Springboot 注册插件)中支持 Webflux 客户端。

l 支持标签跨线程传递,在各类路由场景中可以在异步调用中传递标签。

结束语

Sermant

作为专注于服务治理领域的字节码增强框架,致力于提供高性能、可扩展、易接入、功能丰富的服务治理体验,并会在每个版本中做好性能、功能、体验的看护。

开发者也可以加入到 Sermant 社区,参与相关功能的讨论和共建。

Sermant 官网:https://sermant.io

GitHub 仓库地址:https://github.com/huaweicloud/Sermant

扫码加入 Sermant 社区交流群

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

华为云开源官方博客--携手共建云原生根社区 2023-03-13 加入

还未添加个人简介

评论

发布
暂无评论
GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_#云原生_华为云开源_InfoQ写作社区