MOSN Contributor 采访|开源可以是做力所能及的事

蚂蚁金服开源 MOSN 核心概念解析 前言 MOSN 是一款使用 Go 语言开发的 Service Mesh 数据平面代理,2018 年 7 月由蚂蚁金服开源,开源地址 ,MOSN 旨在为服务提供分布式、模块化、可观察和智能化的代理能力。MOSN 是 Modular Observable Smart Network 的简称。MOSN 可以与任何支持 xDS API 的 Service Mesh 集成,亦可以作为独立的四、七层负载均衡使... 阅读详情

f8ff15a484fc3343a6e2e7cd612e7ea0.gif

随着 MOSN 进入 1.0 稳定版本,社区也涌进了一些新鲜的血液 ,有开源经验丰富的大四同学、热门开源项目的负责人和渴求找到合适自己开源项目的开发者,大家都在社区一边学习一边贡献,从兴趣出发,沉迷于热爱。

我们共同的目标是社区共建,大家基于开源的方式协作,把产品做大做强。

0218b44b4e9e3cde7e7391616d804f6a.png

35ca5ac05957b1f74a72a5878efcc5d4.png

以下三位是 MOSN 社区的新晋 Contributor,听听他们说怎么看待开源、走近开源,又是为什么选择 MOSN 社区的呢?

 ● 大四学生,把开源融入成长和工作

冷酷.(蚂蚁实习生)

贡献内容:

Bolt 协议新增 GoAway 实现,具备协议级 proxy 配置开关;

发现并修复 MOSN 多协议 proxy 配置 bug。

0fa3f5ea943cdd232835e93f6e2d1cde.png

我接触开源比较早,大二的时候和朋友一起写过一个小开源项目,攒了百来个 star;暑假参加了阿里巴巴开源之夏;现在经常使用 GitHub 上的小工具,给在用的项目提交 issue 和 PR 是一件顺手的事情。

追溯起我和 MOSN 的渊源,在大二的时候就给 MOSN 提交过代码,当时是做项目需要参考,就顺手修了一个简单的 Readme 里的链接显示的 bug。我建议大家一开始可以通过这种任务熟悉 PR 流程,从 fix typo 到真的去发现或者修一些 bug,甚至是做一些 feature 还是有挺长的路要走。

这次给 MOSN 提交代码,也是因为我们的项目需要用其中的功能。对我而言,之前参与开源困难的点在于代码能力差,项目里的概念不了解,甚至都不知道项目的功能,就很难看懂代码,以及参与进去。

从使用一个产品的角度熟悉项目,才能更好得参与开发。所以不必要从很知名的大型开源项目入手,功能多、代码复杂,贡献起来也会很困难。

每次贡献不一定非要是了不起的功能实现,从一些自己常用的 GitHub 上的各种小工具更容易入手,把贡献看作是自己力所能及的事情就简单很多了。

 ● 跨行业自学代码,开源门槛也没那么高 

志彬.(火线安全后端开发)

贡献内容:

为 MOSN 新增/version API,为 Holmes 支持了外部 logger 等特性,以及很多 bugfix 的工作。

0897f04b1cfe3fffa72bcf982c377084.png

作为一个非专科、转行自学,目前是一个 star 12.9k 开源项目( gin-vue-admin )的负责人,其中的辛酸血泪史也是足够艰辛的。

志彬自称是 B 站大学毕业的,看某教育的课程自学 python ,跟着 q1mi 老师的博客和视频学习,期间也开源自己的一些 demo 项目,慢慢参与到一些开源项目,抱着学习的心态来参加贡献(呃... 说实话就是找找哪些地方可以 cv 到我的工作模块里)。

志彬某次夜读听曹春辉大佬有介绍 MOSN,对存储比较感兴趣,想要集成到自己的工作模块里。参与 Holmes 的时候还没有发版,源码也不多,功能也比较少,志彬就看准时间参与到了其中的开发贡献。

谈起自己团队的 gin-vue-admin 项目,志彬的语气里透露着自豪:“我们的项目技术门槛不高,可以自动生成代码,省去一些 curd 的工作。社区成员都是一些小白,所以社区氛围很活跃。虽然对贡献者的数量从没在意过,但是‘自流水’也是源源不短,这些都是用户对我们的认可。

每当用户在社区里说这个项目为他们省去了时间和人力的消耗,都会让我们振奋很久。”

多年经验,总结出判断优秀开源社区的标准:1. 足够稳定 2. 社区氛围够活跃 3. 代码质量(架构结构、模块划分组织比较好)。

“MOSN 社区完全符合以上标准,但是和我们是不同的风格,技术门槛会比较高,是对进阶技术人员的新挑战。之前 MOSN 在飞速发展的阶段,改动会比较频繁,可以接触最前沿的技术,但是稍有不注意就会跟不上步伐。MOSN1.0 到来后,期待社区越来越好。”

 ● 合适的开源项目,是我“闲逛”来了 

骏龙. Shopee Digital Purchase

贡献内容:

针对 Holmes,实现了动态调整参数,抓取事件上报,抓取策略优化等功能,此外还写了新的 readme.md 和两篇使用教程;

对于 MOSN,实现了 stop 和 reload 命令行命令。

685052a8188b59e6e3d089b92e6f394c.png

开源的第一步,选择合适的项目就很让人头痛,在接触 MOSN 之前,骏龙完全没有开源经验,但是经常在 GitHub 上“闲逛”,但是认为大多数项目门槛比较高,苦于找不到合适的项目和机会去参与。

当时骏龙为了提高服务的稳定性以及降低排查资源问题的难度,需要找一套监控解决方案,偶然通过曹大的博文,发现了 Holmes。过了不久,Holmes 被集成到了 MOSN,便也就开始接触到社区。发现这个开源库功能基本齐全、扩展性也高,特别是 GCHeapDump 这个业界领先的功能,对解决内存升高的问题十分有用。成熟的社区加上刚建设的项目,这简直是为他量身定做。

初识 MOSN 社区,Holmes 还处于萌芽期,除了 Readme 之外的文档资料并不多。还有一些 Holmes 当时不支持的功能,比如动态配置调整与上报。但是自己对这方面很感兴趣兴趣,于是在 GitHub 上提了几个 Issue 讨论,社区回复的速度十分快。后续在社区前辈们的指导下提了 PR,也因此通过 Holmes 的代码设计学习到了很多关于开源组件的设计理念。因此,骏龙决定参与开源社区并贡献代码,以解决实际需求。

在参与贡献前,骏龙做了很多准备,才鼓起勇气提交了 issue:
1.阅读 issue 列表,确认是否真的感兴趣

2.阅读 contribution 文档

3.在 issue 下留言,表达自己的解决方案

4.进入用户交流群,和大家讨论解决方案

当骏龙战战兢兢的靠近开源圈时,MOSN 社区的人德就是助他一臂之力的那个人。“人德前辈给我分配了难度合适的 issue,并且十分细致的 review 了我的代码,细致到日志打印的程度,让一个开源小白很是感动。”

第一次正式参与开源,取得每一步进展的心情都是很激动的,看到 release note 上有自己的 ID 是最有成就感的时刻。

开源最需要和自己的惰性作斗争,带来的成就感也是无可取代的。除此之外,当看到自己的 PR 收到很多修改意见时,或许会让你一时沮丧。不要灰心,这可是摆脱 curd 的第一步!

MOSN 将来会探索集中力量去做更长远的事情,也希望更多感兴趣的朋友能够参与进来,和社区成员一起成长是我们愿意看到的状态。

51cd270ad5e15c7b3593568a469eae98.png

欢迎大家使用 MOSN,共同成长

点击“阅读原文”,更了解 MOSN

 了解更多...

MOSN Star 一下✨:
https://github.com/MOSN

也欢迎大家报名 SOFAStack、MOSN 社区 

2022 年的开源之夏项目✌️

   本周推荐阅读  

9082572cf49fc822b91603e41dc0a12e.png

【2022 开源之夏】欢迎报名SOFAStack 社区项目!

bc3704a0691cc195bfe25f28b8dd1ffe.png

【2022 开源之夏】欢迎报名 MOSN 社区项目!

88ff3901871372fb97e4d6bbe173f554.png

贡献黄章衡成为SOFAJRaft Committer !

2a906b213e0308661055206a4b3977f7.png

SOFAServerless 体系助力业务极速研发

acc65050fe04f73f999f7aca0ee9ee9b.png

如何成为一名优质的 Contributor 关于本文  本文主要是为了,记录给 Druid-io / Apache Eagle / Apache Flink / Apache HBase / Apache Kafka / Apache Superset / Apache Zookeeper / TensorFlow 开源社区贡献代码,尽自己一点绵薄之力的过程  文章最后一节,是一些经验之谈,期冀能帮助到 同样热爱开源、也想成为 Cont... 阅读详情

相关推荐

GBASE南大通用GBase 8s数据库-从零开始的手动安装与实例配置指南

本文详细介绍了GBASE南大通用GBase 8s数据库的手动安装与实例配置全过程,包括环境准备、用户创建、安装包准备、实例创建、环境变量配置等关键步骤。通过实战经验分享和常见问题解决方案,帮助用户快速掌握GBase 8s数据库的安装与配置技巧,确保数据库稳定运行。

weixin_29209825的博客 455

Go 服务进行自动采样性能分析的方案设计与实现

线上服务的性能分析,一直以来都是比较难的点,主要是难在无法在性能出现异常的当时捕捉到现场信息。有人可能会说,这有什么难的,直接用 Go 工具集里的 pprof 访问一下,进行采样拿下来分析...

kevin_tech的博客,微信搜「网管叨bi叨」 543

raw_count、tpm、fpkm、rpkm如何选择

转录组测序中常见的数据类型有:raw_count、tpm、fpkm、rpkm。本文进行简单辨析: 一、概念 1 raw_count RNA-seq数据中,raw_count一般是指mapped到基因外显子区域的reads数目。比如说htseq,STAR,或者RSEM等NGS分析流程计算产生的counts值。其中RSEM(RNA-Seq by Expectation-Maximization),考虑到一条read 可能会匹配多个exon位置,故而其产生的为expected_count。 2 TPM

weixin_59289660的博客 1万+

如何参与github开源项目,成为contributor

参与github开源项目教学指南

随便写写 3390

从零到一:基于Blazor和Elsa Workflows的工作流系统开发实战

本文详细介绍了如何利用Blazor和Elsa Workflows构建高效的工作流系统,从技术选型到生产环境部署,涵盖动态工作流建模、Blazor前端集成及性能优化等核心内容。通过实战案例,展示如何实现订单处理系统的自动化与灵活性,提升企业流程效率。

weixin_26875109的博客 428

GIS常用坐标系简介

EPSG:4326是基于WGS 84的地理坐标系,使用经纬度表示,适用于全局定位和地理数据表示。它的缺点是在进行距离、面积计算等地理分析时不够准确。EPSG:3857是投影坐标系,使用平面米坐标表示,适用于在线地图展示,特别适合 Web 地图应用。虽然它在地图展示中很高效,但由于投影引起的变形问题,它不适合高精度地理测量和计算。

weixin_59096287的博客 1976

SOFA Weekly | MOSN & SOFARPC 发布、MOSN 社区活动报名

SOFA WEEKLY | 每周精选,筛选每周精华问答同步开源进展,欢迎留言互动SOFAStack(ScalableOpenFinancialArchitecture Stack)...

金融级分布式架构 373

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

AI+全栈,AI+应用,实操落地,前沿技术 3807

社区文章|MOSN 社区性能分析利器——Holmes 原理浅析

文|Junlong LiuShopee Digital Purchase & Local Services Engineering本文1743字 阅读6分钟贡献者前言MOSN我是在开发工作过程中了解到 Holmes的,为了保障系统稳定性需要一个性能排查工具,因此也需要一个保留现场的性能监控工具。当我在网上查询该方面的开源库时,发现可用的并不多。后续找到 ...

金融级分布式架构 821

Protobuf NDK以及QNX交叉编译

Protobuf 用处很广,尤其是通讯数据序列化,反序列化。TODO。

静虚待令,有物混成 1560

DAC8568实战指南:如何用STM32实现8通道DAC精准控制(附代码)

本文提供DAC8568与STM32结合的实战指南,详细解析8通道16位DAC的精准控制方法。内容涵盖硬件连接、SPI配置、驱动层构建、时序调试及多通道同步输出等关键步骤,并附有经过验证的HAL库驱动代码,帮助工程师快速解决实际项目中的通信与输出稳定性问题。

weixin_29175469的博客 745

如何飞速成为开源贡献者(Contributor)

如何飞速成为开源贡献者(Contributor)

ith321的博客 6534

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

本文全面解析Modbus RTU通信协议,详细介绍其报文格式、功能码定义及典型应用场景,并手把手指导如何将FreeMODBUS协议栈移植到嵌入式平台。内容涵盖从底层硬件驱动配置、协议栈移植到主机/从机通信测试的全流程,重点讲解移植过程中的常见问题及解决方案。文章最后提供经过实测的完整项目源码,帮助开发者快速实现稳定的Modbus RTU通信功能。

Bit_Dong的博客 2926

开源之夏经验分享|MOSN 社区韦鑫:做自己认为很酷的事

韦鑫计算机科学与技术学院HTNN 社区贡献者就读于南京航空航天大学,是计算机科学与技术学院研三的同学,研究方向是分布式系统。本文3756字,预计阅读7分钟今天 SOFAStack 邀请到了开源之夏 2024 MOSN 社区的中选学生韦鑫同学!在本项目中,他负责将 Sentinel-golang 流量控制能力集成进 MoE(MOSN on Envoy)生态。希望他分享的这段经历,能让更多人...

金融级分布式架构 1400

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

顶级项目Committer、Contributor齐聚,数帆xIntel大数据技术沙龙等你来

数字化、智能化转型的背景下,数据作为企业核心生产资料,被寄望发挥更大的价值。从Hadoop、Spark到Flink,从Iceberg、ClickHouse到Kubeflow,与“4V”对抗的大数据技术不断更新,而受其推动的行业进步又带来了新的挑战。如何打造适应未来业务发展的技术体系,成为各大数据团队都在探索的课题。 6月19日,网易数帆、Intel联合举办的“升级!智能时代的大数据基石”数字+技术沙龙将于杭州网易园区拉开帷幕,汇聚大数据技术专家及从业者,旨在分享和探索大数据前沿技术、热门开源项目的实践心得与

NetEaseResearch的博客 630

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何让开源项目成为你的良师益友

开源项目不仅仅给公司带来巨大价值,同时也可以给使用者自身带来巨大价值。 现在大部分公司产品的基石都是开源项目,从开发包到产品本身。我甚至在想,没有开源项目的世界将会是一个什么样的世界。互联网的共享精神让互联网得以如此的快速的发展。 但是很多人仅仅局限于在用开源项目帮助公司快速的构建起平台,产品,其实开源项目还可以成为你的良师益友。 拓展你的社交关系 全...

allwefantasy的专栏 260

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

恭喜 MOSN 社区成为可信开源社区共同体成员

恭 喜|Congratulations!“2021 OSCAR 开源产业大会”MOSN 开源社区完成可信开源社区评估也成为可信开源社区共同体成员同时,金融级分布式架构SOFASta...

金融级分布式架构 1540

开源项目贡献者_如何认识您的开源项目贡献者并发展您的社区

开源项目贡献者by David Herron 大卫·赫伦(David Herron) 如何认识您的开源项目贡献者并发展您的社区 (How to recognize your open source project contributors and grow your community) There’s a truism — if a community is not growing, it ...

cumi7754的博客 970

如何成为github开源项目的贡献者contributor

如果你对某个开源项目非常感兴趣,其中的issue你发现你会解决,或者发现了遗留下来的问题,而且你也想参与进来去改进它,那么接下来的内容就是告诉你如何成为一个contributor。 1. 注册一个github帐号 进入github.com官网,点击右上角 Sign up按钮一顿猛操作就可以了,不多说了,相信你能搞定。 2. 将项目fork到自己帐号 这里以 arthas项目为例,进入项目页https://github.com/alibaba/arthas,点击Fork按钮,Fork到自己的帐号下面 fo

明月专栏 1万+

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 289

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 346

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 130

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 198

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 500

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 635
上一篇: 技术沙龙 Call 你来!畅聊云原生架构下的软硬一体化技术实践
下一篇: 蚂蚁集团 Service Mesh 进展回顾与展望
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值