网易数帆王佰平:我的 Envoy Maintainer 之路

网易杭研 网易杭研 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

受邀成为 Envoy 社区国内首位且唯一的 Maintainer,网易数帆资深架构师王佰平讲述个人四年开源贡献的心得体会。

数字化浪潮下,云原生底层核心技术趋于成熟。根据中国信通院《云计算白皮书(2021年》,2020年国内微服务架构采用率超过50%,服务注册发现与服务代理技术已进入成熟期,而作为新一代微服务架构的服务网格(Service Mesh),也即将从技术爆发期进入整合期。

网易数帆是国内云原生应用的先行者,率先实现了经典微服务框架与服务网格的整合、服务网格与 API 网关的整合,更实现了云原生架构与金融、制造等传统行业需求的整合,这些整合也获得了中国信通院以及银行、证券行业头部客户的认可。在这结果的背后,是云原生社区技术和生态不断成熟,更是网易数帆云原生团队坚持参与开源社区贡献。

本文所说的 Envoy,是云原生计算基金会(CNCF)第三个毕业项目,也是网易数帆轻舟服务网格及 API 网关的数据面选型,和重点贡献项目之一。目前轻舟团队已累计向 Envoy 社区贡献 60+ PR,超过 14000+ 新增代码,覆盖了 Envoy 的有状态会话保持、Tracing 能力增强、Lua script 的支持和 Dubbo 治理能力增强等核心功能。

Envoy(github.com/envoyproxy/envoy )是由 Lyft 开源的高性能数据和服务代理,以可观测性和高扩展性著称,可通过 L3/L4/L7 插件机制在各个层级实现功能扩展,从而为业务构建灵活易扩展、稳定高性能的服务网格、API 网关等基础设施。

近日,Envoy 社区邀请网易数帆云原生专家、资深架构师王佰平成为社区 Maintainer——这是国内首位且唯一的 Envoy Maintainer,同时也是 Dubbo Extension Senior Maintainer,表明了社区对网易数帆持续贡献的认可。在本文中,小编邀请王佰平分享了他从参与开源到成长为知名项目 Maintainer 的经验心得。

img

初识 Envoy:贡献始于 bugfix

2019 年,网易对服务网格技术应用的探索到了一个新阶段,网易数帆与网易严选基于 Istio 共建的第二代服务网格平台逐步成型,王佰平在这个时候加入网易数帆,从事和数据面 Envoy 相关的工作。秉承网易数帆坚持开源开放的技术路线,王佰平从那个时候起关注 Envoy 社区的一些动态。

此后,在轻舟微服务平台采用 Envoy 落地 API 网关、服务网格的过程中,王佰平偶然间发现了 Envoy 的一些小 bug ,就尝试把这些 bug 的修复贡献给 Envoy 开源社区,意料之中地被社区立即接受,这成为他 Envoy 开源贡献的良好开端。

高频贡献:缩减内部分支维护成本

随着网易数帆云原生实践的不断深入,轻舟微服务团队对 Envoy 的侵入性修改越来越多,维护内部单独的 Envoy 分支的成本也逐渐增加。为了避免后续和社区的分歧越来越大,也为了更好的借助社区的力量往后演进,团队开始投入较多的精力到开源社区当中,将内部的一些增强抽象化、通用化之后,贡献到开源社区。

整个过程下来,一方面,轻舟微服务团队的技术积累和对 Envoy 的理解程度提升了很多。因为社区有来自全球不同地区、风格习惯各异的贡献者,为了保证工程的长期健康,除了功能的完善,各种编码的约束和规范也细致得多,所以贡献给 Envoy 社区的代码,编写要更为小心谨慎,要求非常高,当然在此过程中也会获得很多社区大佬的帮助。另一方面,Envoy 社区也获得了更多有生力量的支撑,轻舟团队的贡献使得 Envoy 项目的优势得以充分发挥,也更适合国内大量 Dubbo 用户的需求。

“这是一个 win-win 的过程。”王佰平说。

成为 Maintainer:团队支持最关键

2021年,在网易集团的引导和鼓励下,网易数帆自主开源工作迎来了一个小高潮:一方面,在云原生领域一口气开源了4个项目,包括基于 Istio 和 Envoy 的服务网格管理器 Slime(github.com/slime-io/slime )和云原生 API 网关 Hango(github.com/hango-io/hango-gateway );另一方面,作为 Spark 生态的 Kyuubi 项目被纳入 Apache 基金会孵化器,Spark 和 Kyuubi 的负责人燕青成为 Apache Spark Committer,并入选 Databricks 灯塔。这些成果获得了管理层的肯定。

Hango架构图

在这背景下,王佰平也立下了一个小小的 flag——希望能在 2022 年成为 Envoy 社区 Maintainer。一方面,他向社区说明了自身成为 Maintainer 意愿。另一方面,除了创建 PR 向社区贡献之外,他开始在自己较为熟悉的领域做一些 PR review,帮助其他的贡献者完成他们的 PR。“开源社区其实很纯粹简单的。”他说。

付出终有收获,王佰平提前 8 个月达成了目标。谈到自己的感受,他这样说:

在成为 Maintainer 之前,我曾想过如果能成为 Maintainer,一定能给我乐疯了。实际上,高兴确实是高兴的,可是也没有那么激动,只是一种自己付出得到承认的舒心感。

对于 Envoy Maintainer 的角色,他表示,之前之后所做的事情其实差别并不大,包括日常的社区的相关 PR 的一些 review,问题解答,引导新人,做一些新的贡献。当然,责任是更重了一些。因为之前做 PR review、做贡献其实都是非强制的,而成为 Maintainer 之后,就有了相关的义务。

回顾之所以能成为 Envoy Maintainer,王佰平给出了三个关键因素:

第一个,是团队的支持。团队给予的角色定位让他有更多的机会去深入的研究 Envoy,也给了他充分的自由去投入到开源社区。这也是最关键的因素。

第二个,是持之以恒。做开源贡献是很需要耐心的。有时候,因为 reviewer 很忙,可能一个 PR 要挂在那里十几天,要适应这种节奏。

第三个,是 Envoy 社区提供了巨大的帮助,有很多大佬仔细地帮忙 review 方案和 PR,给出修改建议。

谈到为什么国内的 Envoy Maintainer 如此稀少,而 Istio 社区有更多的关注度和国内 Maintainer,王佰平认为这是一件很正常的事情。

他解释说,虽然服务网格很火,但是目前多数团队对于数据面 Envoy 还是停留在“使用”的阶段——Envoy 设计复杂,且采用 C++ 编写,性能更有保证,但在人均 Golang 的云原生社区颇显另类,较难驾驭,而借助 Service Mesh 或者说 Istio(国内 Mesh 基本就等价于 Istio 了)的封装,大家不用太关注 Envoy 的细节。这其实也是 Istio 存在的很重要的意义。

不过,他也希望后面会有越来越多的国人能够参与到 Envoy 社区当中。根据网易数帆的经验,Envoy 在更多业务的深度实践,必然对技术团队的 Envoy 关键基础组件掌握能力提出更高要求,如此才能保证团队对项目的理解和有效控制,保持云原生落地过程中微服务平台对业务需求的强力支撑。比如在一些金融领域场景中,就会存在私有协议代理或者复杂协议转换等需求,团队如果对数据面没有足够的把控,就很难覆盖此类需求。而参与开源社区显然是学习和掌握 Envoy 最快的方法。

开源心得:不要羞涩,多 ping 几次就好

对于参与开源社区贡献,王佰平总结了三个普遍的原则。

一是要保持谦虚。因为技术领域真的是人外有人,天外有天。而谦虚真诚的态度更容易获得他人的帮助。

二是要持续学习。在一个大开源社区当中,由于模块众多,领域划分很细,所以一个人很难一开始就能 cover 所有问题。这就需要参与者保持持续学习的精神,取长补短,逐步成长。

三是要遵守规则。任何开源社区都有一些基本的规范,作为社区的后来参与者,应该尊重社区前人构筑的规范。

这些原则可以在参与社区的过程中慢慢体悟。王佰平认为,最重要的其实还是第一步,就是主动去参与。

提出 issue 和建议也好,辅助代码 review 也好,做最简单的一些贡献也好,千里之行,迈出第一步是最重要的。

以 Envoy 而言,社区对新人还是非常友好的,大家会非常热情地提供新人需要的帮助。当然,考虑到很多社区成员不是全职做开源,Envoy 是国外团队发起的项目,交流时间不同步是正常的,所以可能有一些延迟响应的情况。“不要羞涩,多 ping 几次就好了。”王佰平说。

那么,非全职参与开源的情况下,商业化客户项目工作繁重,如何能做出想要的成绩?对此,王佰平的答案仍然是要迈出第一步并坚持。

他表示,首先,作为商业化团队,保障客户项目任务始终是第一位的。其次,假设项目任务当中,可以汲取出对于开源有价值的一些点,那是最好的。再者,相比于突击式开源,细水长流,持之以恒,可能更有价值。最后,万事开头难,虽然中间也难,结尾也难,但是开头尤其难,先走出第一步,然后坚持下去,加上适当的宣传,会有一个好结果的。

谈到团队自身开源的项目,王佰平表示,希望 Slime 能够成为服务网格落地的必不可少的标配组件,希望 Hango 可以成为开源云原生网关领域的领头羊。当然,目前这些项目在开源领域还是新人,还需要沉淀和积累更多的东西,也需要更多的来自用户和社区本身的意见。

他也意识到, Envoy 这样的项目很可能是不可复制的。

对于我个人来说,我们的开源项目只要能够为一部分用户或者社区成员带来价值,同时能够给团队带来正向反馈,那就算是成功了,路可以慢慢走嘛。

权威机构和头部客户的认可,以及 Envoy 社区的承认,让团队相信,自己是走在正确的道路上的。

嘉宾简介: 王佰平,网易数帆云原生专家、资深架构师,CNCF Envoy Maintainer,Hango/Slime Maintainer ,轻舟 API 网关与轻舟服务网格数据面负责人,通晓网关、负载均衡、服务网格等分布式技术原理,熟悉 Envoy 和 Istio,对于 API 网关、服务网格落地具有丰富的经验。

相关链接:

...全文

相关推荐

MATLAB代码用于我们题为《在端对端延迟约束下的节能任务卸载》论文的模拟.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

国央企创新负责人如何构建跨部门、跨单位的协同创新机制?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

基于Matlab的35KV三段式电流保护仿真设计

内容概要:本文围绕基于Matlab/Simulink平台的35KV三段式电流保护仿真设计展开,系统阐述了电力系统继电保护中电流速断、限时速断与过电流保护三段式保护机制的原理与建模方法。通过构建35KV输电线路仿真模型,设置不同类型短路故障点,实现对保护动作特性与时限配合的动态仿真分析,验证保护方案的准确性与可靠性。结合小波分析等信号处理技术,进一步提升故障电流检测精度,有效识别单相接地等典型故障并实现故障选线。项目配套完整的Simulink仿真模型、详细说明文档及演示PPT,涵盖整定计算、逻辑设计与仿真调试全过程,具有较强的工程实践指导意义。; 适合人群:电气工程及其自动化相关专业的本科高年级学生、研究生,以及从事电力系统继电保护设计与运维的初级工程师;要求具备一定的电力系统分析基础和Matlab/Simulink软件操作能力。; 使用场景及目标:①深入理解三段式电流保护的工作原理与整定计算流程;②掌握在Simulink中搭建继电保护系统的建模技巧;③分析不同故障类型下保护装置的动作行为与响应特性;④为课程设计、毕业设计或实际工程项目提供可复用的仿真模板与技术参考; 阅读建议:建议结合提供的仿真文件与说明文档循序渐进地操作,重点关注保护模块的逻辑构建与参数整定过程,通过手动设置不同故障条件进行仿真调试,强化对保护选择性、速动性、灵敏性和可靠性的理解,并可在此基础上拓展至更复杂的电网结构或多类型保护策略的研究。

wytm

【嵌入式音频处理】AC690N芯片蓝牙音频方案问题分析与优化:SDK版本兼容性及硬件功能调试指南

内容概要:本文档整理了AC690N系列蓝牙芯片在软件开发与应用过程中遇到的常见问题及其解决方案,涵盖蓝牙连接、音频处理、硬件控制、内存管理等多个方面。主要包括一拖二功能对蓝牙距离的影响、BLE与一拖二功能冲突、对箱连接时的资源同步延迟、开机关机噗声问题、录音与提示音播放导致的死机、红外丢码、PWM配置、串口DMA接收注意事项等技术难点,并提供了相应的代码修改建议或规避措施。此外,文档还涉及AAC播放补丁、EQ切换、点阵屏显示中文蓝牙名等功能实现方法。; 适合人群:嵌入式软件工程师、蓝牙音频产品开发人员、硬件调试技术人员,尤其是使用AC69系列芯片进行耳机或音频设备开发的研发人员。; 使用场景及目标:①解决AC690N/X芯片在实际项目开发中的典型软件bug;②优化蓝牙连接稳定性、音频播放质量及外设控制精度;③指导开发者正确配置SDK参数、调整中断优先级、管理内存与消息机制;④实现高级功能如中文蓝牙名称显示、通话音量同步调节、多设备切换提示音等; 阅读建议:此文档为问题导向型技术资料,建议结合实际开发环境对照查阅,重点关注与自身项目相关的条目,并在修改代码前充分理解上下文逻辑,避免引入新的稳定性问题。

玉阳

复现单相LCL并网逆变器电网电压全前馈抑制电网电压谐波电流畸变(Simulink仿真实现)

内容概要:本文围绕“【复现】单相LCL并网逆变器电网电压全前馈抑制电网电压谐波电流畸变(Simulink仿真实现)”展开,系统介绍了一种基于Simulink的单相LCL并网逆变器建模与控制方法,重点采用电网电压全前馈控制策略,有效抑制因电网电压谐波导致的并网电流畸变,提升电能质量。仿真模型涵盖主电路设计、LCL滤波器参数整定、锁相环(PLL)同步技术、电流双闭环控制及谐波前馈补偿机制,具备完整的控制逻辑与工程参考价值。文档还列举了多项相关仿真资源,如三相并网逆变器、MPC预测控制、不平衡电网处理、虚拟同步发电机(VSG)、中点电位平衡、孤岛检测等,构成一套面向新能源并网系统的综合性仿真体系,适用于科研与工程实践。; 适合人群:电气工程、自动化、新能源等相关专业的研究生、科研人员,以及从事光伏发电、储能系统、微电网等领域的研发工程师;需具备电力电子技术、自动控制理论及Simulink仿真基础的专业技术人员。; 使用场景及目标:①研究非理想电网条件下并网逆变器的运行特性与控制策略;②掌握LCL滤波器设计方法及有源/无源阻尼技术;③深入理解电网电压前馈、重复控制、准PR控制等先进电流控制算法的实现原理;④支撑毕业论文、科研课题或实际工程项目中的仿真验证与算法优化。; 阅读建议:建议结合提供的参考文献与说明文档,按照资源目录循序渐进地学习各仿真模型,优先掌握基础控制结构的搭建与调试,再逐步过渡到复杂工况与高级控制算法的应用,注重参数调节、波形观测与稳定性分析,全面提升建模能力与解决实际问题的水平。

wlz249
评论
收藏 已收藏
分享
返回顶部