一、前言
2023 年,Sermant 踊跃沉闷在开源社区的各个角落,您兴许在开源峰会、在大学校园、在线上直播、在开源社区的博客中看到过咱们的身影,兴许您的我的项目曾经在生产环境上曾经接入了 Sermant。如果您还不理解 Sermant,当初在浏览器搜寻框输出 JavaAgent 和服务治理,能够看到排名靠前的都是与 Sermant 相干的搜寻后果,因为咱们已深耕这片畛域。
Sermant 是基于 Java 字节码加强技术的云原生无代理服务网格,2022 年底,咱们在社区正式公布了 1.0 版本,宣告 Sermant 首个稳固的正式版本的面世。咱们以非侵入式地为业务利用提供服务治理性能为出发点,建设了 Sermant 我的项目的雏形。从开发效率、用户敌对等角度,咱们始终在构建和优化我的项目的框架和机制。1.0 版本后的 Sermant 曾经具备了非侵入、高性能、插件化的外围劣势,并且开源生态中曾经提供了服务注册、标签路由、流量管制等插件能力来利用于典型的服务治理场景。同样在 2022 年底,Sermant 官网 也正式上线,以让开发者和用户更好地理解、应用、开发 Sermant 为指标,详尽地提供了 Sermant 的疾速入门、用户使用手册、开发者指南、博客分享等内容。另外, 咱们还退出了 CNCF LANDSCAPE,在云原生 Service Mesh 畛域占据了一席之地。
2022 年底是 Sermant 种下的种子刚刚发芽的阶段。2023 年,Sermant 在技术能力构建、开源生态构建、开源可信能力构建等方面减速投入,开始横蛮成长。
二、技术能力构建
在公布 1.0 版本之后,Sermant 始终放弃了较高的我的项目活跃度。2023 年,Sermant 公布了 1.1、1.2、1.3 三个大版本和若干个补丁版本,从框架类隔离机制、动静插拔 Agent 和插件、动静配置对接 Nacos、服务和 Agent 的可观测性、流量治理能力、服务可用性治理能力等方面做了大幅的更新或加强。咱们心愿通过一直地版本更新迭代,将 Sermant 打造成一个易用性好、兼容性强、扩展性高、性能优良的一个开源我的项目,为社区带来极致的服务治理体验。
图 – Sermant 最新 1.3.0 版本 Release Note
2.1 可观测性能力晋升
2023 年,Sermant 在对本身的可观测性上失去了重要的晋升,尤其是边车自观测能力以及字节码加强的观测能力。
2.1.1 Sermant 自观测能力
针对可观测性,咱们建设了对 Sermant 运行状态及服务治理能力状态的监控机制,用户可能更直观,更清晰的看到 Sermant 进行服务治理的过程,可用于疾速理解 Sermant 运行状态及以后已失效的服务治理能力,使服务治理有迹可循。用户通过拜访 Backend,可在前端页面间接看到 Sermant 运行状态,服务治理能力触发的事件以及 Sermant 服务运行期间产生的正告、谬误等日志信息。Sermant 的自观测能力解决了 JavaAgent 难以运维察看的问题,对应用 Sermant 来进行微服务治理的用户来说很好的实现了 Agent 的治理。
![上传中 …]()
图 – Sermant Backend 页面展现 Agent 上报的信息
2.1.2 字节码加强成果的观测能力
另外,因为 Sermant 是基于字节码加强技术来实现的,咱们在字节码加强的可观测性上也做了晋升。第一种形式属于动态配置,启动宿主利用前,能够在配置文件中开启字节码加强日志打印的开关以及输入字节码加强后的 class 文件,能够直观地对加强后的类进行查看。第二种形式属于动静查看字节码加强信息,咱们在 Sermant 启动实现后,运行官网提供的 AgentLoader,并传入参数下发查问加强信息的指令 command=CHECK_ENHANCEMENT,即可在日志中查看到 Sermant 已执行的加强信息,包含挂载了哪些插件和加强了哪些类的办法。
2.2 框架能力晋升
在框架能力方面,2023 年 Sermant 不仅全面优化了类隔离机制,也正式反对了 Agent 和插件的动静热插拔能力,对于实用宽泛的配置核心 Nacos 也实现了反对。
2.2.1 热插拔能力
Sermant 最新版本目前反对 premain 和 agentmain 两种形式启动。agentmain 启动形式能够反对 Agent 和插件的热部署形式,在故障注入等场景中能够在服务不停机状态下能够实现屡次动静注入和移除各类故障。另外,Sermant 的插件也反对动静挂载和卸载。
下图为 Sermant 的热插拔能力的示意图,在初始状态能够通过动静挂载 Agent 的能力装置字节码加强框架,而后能够通过动静挂载 / 卸载插件的能力在运行态增减所需服务治理能力,也能够间接将整个 Agent 进行卸载。
图 – Sermant 的热插拔机制
2.2.2 配置核心反对 Nacos
动静配置核心为 Sermant 动静配置服务的配套组件,动静配置服务容许 Sermant 从动静配置核心拉取配置以实现丰盛多样的服务治理能力。以往版本 Sermant 的反对的动静配置核心有 Zookeeper 和 Kie,新版本适配了 Nacos 的数据模型,反对从 Nacos 下发配置并监听。动静配置核心在 Sermant 中的角色和作用能够浏览相干博客《如何利用动静配置核心在 JavaAgent 中实现微服务的多样化治理》。
2.2.3 更好的类隔离能力
Sermant 在 1.2.0 版本中对此前的类隔离框架和机制做了全面的优化,不仅保障了不向宿主服务引入类抵触问题,防止在开箱即用时对宿主服务造成负面影响,同时也了保障框架与插件、插件与插件之间不会引入类抵触问题,防止插件开发者因为和其余服务治理插件产生类抵触问题而苦恼。经验屡次迭代,现在 Sermant 的类隔离架构已能够轻松的应答各种简单的类加载环境。更具体的类隔离机制的介绍能够参阅相干博客《Sermant 类隔离架构解析——解决 JavaAgent 场景类抵触的实际》。
2.3 服务治理能力晋升
在插件层面,2023 年咱们对现有插件做了不少优化,例如流控插件引入基于零碎规定的流控能力以及基于负载的自适应流控能力;在标签路由插件对路由规定模型进行了对立和以及减少了链路染色能力。另外,Sermant 还新增了流量标签透传插件、音讯队列禁止生产插件、离群实例摘除插件等,利用于服务治理的各个典型场景。各插件的介绍能够参考官网的 [](https://sermant.io/zh/document/plugin) 插件使用手册。
三、客户案例
Sermant 起源于华为云,目前在华为云外部的泛滥云服务中失去了宽泛的利用。
在微服务引擎 CSE 中,基于 Sermant 实现了非侵入接入服务注册发现、全链路灰度等性能,实现其余云厂商到华为云的微服务搬迁。该场景下用户在不批改业务代码的前提下,实现了搬迁工作,极大地升高了开发和运维老本。
在华为云混沌工程畛域中,实现了基于 Sermant 的故障注入、流量录制回放等能力。这是 Sermant 动静热插拔能力的典型实用场景。开发和运维人员能够在利用运行的过程中利用热插拔能力将包装了不同故障模式的插件热加载至业务过程中,以测试零碎的可靠性和稳定性。动静卸载能力的反对也使得咱们能够在一次运行测试中屡次注入各种故障。
在华为云 CPTS 云服务中,基于 Sermant 框架开发的全链路压测能力构建了零业务代码侵入的性能压测一体化平台的能力。不仅实现了流量染色的标记和传递,还反对内部服务 mock 转发、影子库、压测流量接入的对立管制等性能,为全链路压测平台提供了外围的根底能力。
此外,不少产品也曾经实现了将现有的 SDK 能力向 Agent 能力做迁徙,为服务治理性能提供了新的非侵入一键接入的抉择。
2023 年 Sermant 在泛滥开源生态用户的实在场景中也实现了落地。某私域电商用户基于 Sermant 开源框架自研了若干插件,在监控、故障演练等场景中利用于 600+ 生产环境实例中。某网约车平台在架构优化上,引入 Sermant 进行革新,实现服务的主动发现和 API 治理能力,从零散治理到对立管控,提供对立的微服务注册和治理核心。某汽车畛域用户应用 Sermant 开源仓库的服务注册插件实现了 200+ 实例以零业务代码批改的形式从 A 云无损迁徙到 B 云。将来还有一些开源生态用户将基于 Sermant 将 SDK 能力逐渐向 Agent 革新,将服务治理能力对立收编至 One Agent。这些例子充分证明 Sermant 在 JavaAgent 服务治理畛域能无效的为企业用户缩小服务治理能力的接入老本以及微服务架构的革新老本,并且企业用户还可自定义开发插件适配本身场景,将服务治理性能的粒度细化到插件中,按需引入相互隔离。
如果您也是 Sermant 的生态用户,欢迎您在咱们 Github 仓库的 issue 中注销您的应用状况,一起打造凋敝的 Sermant 社区生态。咱们不仅会为您提供疾速反对和响应,建设专属反对渠道,帮忙您更高效地施行和落地 Sermant 我的项目,也会依据公司的应用状况造成丰盛的 Sermant 案例库,帮忙企业进行落地实际宣传。
四、开源社区建设
4.1 线下会议和流动
2023 年 5 月底 GOTC 寰球开源技术峰会上,Sermant 作为新锐我的项目首次在此类开源大会流动中亮相,在现场开设了流动展台并在峰会举办期间发表了快闪演讲,吸引许多开发者在 Sermant 展台和演讲台下围观。尔后,Sermant 越来越频繁地在参加了各个线下开源交换会议及流动。例如,在国内开源畛域有着重要影响力的凋谢原子基金会举办的 OAGS 凋谢原子寰球开源峰会、ICT 畛域的华为开发者大会、云原生畛域的顶级国内开源会议 KubeCon China、汇聚泛滥开源大咖的 CosCon 中国开源年会等。咱们历经中国的东南西北方向,在北京、上海、成都、东莞停办开源展台和在分论坛分享议题,面对面地和宽广开发者进行线下交换,扩充了 Sermant 在开源、云原生、微服务治理、服务网格畛域的生态影响力。
图 – 中国开源年会 Sermant 展台现场
4.2 线上直播和视频公布
2023 年,Sermant 借助华为云开发者联盟 DTSE TechTalk 直播平台,实现了屡次在线技术交换直播,以面对面的形式和关注 Sermant 的开发者进行交换互动,遍及了 Sermant 为微服务治理畛域带来的价值,在线答复了不少开发者关怀的技术问题。直播流动吸引了数万开发者的围观,拉进了和社区开源开发者的间隔。
此外,Sermant 创立并经营了 Bilibili 视频网站账号,不仅公布了首支 Sermant 我的项目宣传视频和以往开源峰会参会的演讲视频,也自制了性能演示系列视频,以普通用户的视角率领大家体验如何把 Sermant 利用在具体的治理场景中。该视频账号将继续为大家带来更多的 Sermant 动静,第一工夫和开发者们分享 Sermant 的流动和技术相干视频,敬请期待。
4.3 可信开源我的项目认证
开源可信是 Sermant 重点关注的方面,特地在软件安全性上,每个版本公布前都会进行安全漏洞扫描并解决扫描问题。
2023 年底,Sermant 参加了中国信通院主导的开源可信认证测试。在开源我的项目的许可证合规性、软件安全性、软件活跃度、技术成熟度、服务支持力、软件兼容性六个方面 Sermant 都通过了认证,信通院为 Sermant 颁发了可信开源社区成熟度能力检验证书,也是对咱们在开源可信方面投入的认可。
图 – Sermant 支付可信开源我的项目认证证书现场
信通院开源可信认证相干新闻动态—— 《中国信通院公布 2023 可信开源系列评估后果》 。
五、写在最初
开源代表了凋谢和共享,2023 年 Sermant 踊跃拥抱社区,以各种形式为大家传递咱们的开源理念和技术积攒。Sermant 开源社区每一个人的付出才铸就了当初稳固的框架底座能力、丰盛的服务治理能力以及越来越凋谢和凋敝的社区生态。将来咱们将持续把 Sermant 打造成更易用、性能更好、能力更强的开源我的项目,也真诚地欢送越来越多的开发者和用户退出到咱们的行列!
Sermant 作为专一于服务治理畛域的字节码加强框架,致力于提供高性能、可扩大、易接入、功能丰富的服务治理体验,并会在每个版本中做好性能、性能、体验的看护,宽泛欢送大家的退出。
• Sermant 官网:https://sermant.io
• GitHub 仓库地址:https://github.com/huaweicloud/Sermant
• 扫码退出 Sermant 社区交换群