一、前言

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.11.21.3三个大版别和若干个补丁版别,从结构类阻隔机制、动态插拔Agent和插件、动态装备对接Nacos、服务和Agent的可观测性、流量办理才能、服务可用性办理才能等方面做了大幅的更新或增强。咱们希望经过不断地版别更新迭代,将Sermant打构成一个易用性好、兼容性强、扩展性高、功用优异的一个开源项目,为社区带来极致的服务办理体会。

正式发布后的一年,咱们都做了什么? | Sermant 2023年度总结

图 – 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 2023年度总结

图 – 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 2023年度总结

图 – 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还新增了流量标签透传插件、音讯行列制止消费插件、离群实例去除插件等,运用于服务办理的各个典型场景。各插件的介绍能够参考官网的插件运用手

三、客户案例

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 2023年度总结

图 – 我国开源年会Sermant展台现场

4.2 线上直播和视频发布

2023年,Sermant借助华为云开发者联盟DTSE TechTalk直播途径,完成了屡次在线技能交流直播,以面对面的方法和重视Sermant的开发者进行交流互动,遍及了Sermant为微服务办理范畴带来的价值,在线回答了不少开发者关怀的技能问题。直播活动招引了数万开发者的围观,拉进了和社区开源开发者的距离。

此外,Sermant 创立并运营了Bilibili视频网站账号 ,不只发布了首支Sermant项目宣传视频和以往开源峰会参会的演讲视频,也自制了功用演示系列视频,以普通用户的视角带领咱们体会怎么把Sermant运用在详细的办理场景中。该视频账号将持续为咱们带来更多的Sermant动态,第一时间和开发者们同享Sermant的活动和技能相关视频,敬请期待。

4.3 可信开源项目认证

开源可信是Sermant要点重视的方面,特别在软件安全性上,每个版别发布前都会进行安全漏洞扫描并处理扫描问题。

2023年末,Sermant参加了我国信通院主导的开源可信认证测验。在开源项目的许可证合规性、软件安全性、软件活泼度、技能成熟度、服务支撑力、软件兼容性六个方面Sermant都经过了认证,信通院为Sermant颁发了可信开源社区成熟度才能检验证书,也是对咱们在开源可信方面投入的认可。

正式发布后的一年,咱们都做了什么? | Sermant 2023年度总结

图 – Sermant领取可信开源项目认证证书现场

信通院开源可信认证相关新闻动态—— 《我国信通院发布2023可信开源系列评估结果》

五、写在最后

开源代表了敞开和同享,2023年Sermant活跃拥抱社区,以各种方法为咱们传递咱们的开源理念和技能堆集。Sermant开源社区每一个人的付出才铸就了现在稳定的结构底座才能、丰富的服务办理才能以及越来越敞开和昌盛的社区生态。未来咱们将持续把Sermant打构成更易用、功用更好、才能更强的开源项目,也真诚地欢迎越来越多的开发者和用户参加到咱们的行列!


Sermant作为专注于服务办理范畴的字节码增强结构,致力于供给高功用、可扩展、易接入、功用丰富的服务办理体会,并会在每个版别中做好功用、功用、体会的关照,广泛欢迎咱们的参加。

Sermant官网:sermant.io

GitHub仓库地址:github.com/huaweicloud…

扫码参加 Sermant 社区交流群

正式发布后的一年,咱们都做了什么? | Sermant 2023年度总结