蚂蚁技术人聊开源:这并不只是用爱发电

简介: 蚂蚁技术人聊开源:这并不只是用爱发电

近年来,中国开发者已经成为全球开源体系中的重要力量。据不完全统计,中国的代码在全球开源社区的比重已占40%左右目前全球6000多万开发者中,至少有2000多万来自中国

 

开源是一个公司技术影响力的表现之一,走向社区与其他生态合作,拓宽技术的应用领域,为外部需求贡献的同时也能让自身技术走向成熟。

 

过去的2021年,蚂蚁的技术同学和全球各地的开发者们,共同参与到开源社区的建设和维护。2021CNCF中国区TOP10的贡献者中,有4位来自蚂蚁集团,这四位技术同学主要参与了Dragonfly和Nydus这两个互相关联的开源项目。

Dragonfly是一个开源云原生镜像分发系统,主要解决以  Kubernetes  为核心的分布式应用编排系统的镜像分发问题,2020年晋级为全球著名开源社区CNCF(云原生基金会)孵化项目。Nydus是蚂蚁集团发起的Lazy  load原理的镜像加速项目,配合Dragonfly 做 P2P  加速,能够极大缩短镜像下载时间、提升效率,并提供端到端的镜像数据一致性校验,从而让用户能够更安全快捷地启动容器应用,目前是 Dragonfly  的一个子项目。

 

小编与这四位同学,以及他们所在团队负责人,聊了聊他们眼中的开源。

@百蓦  参与Dragonfly开源项目一年,目前在做项目2.0升级

 

image.png

源本身就是一种值得追求的奉献精神

我是2020年开始接触Dragonfly项目的,现在主要参与项目整体2.0升级。我们这个项目的维护者来自不同公司、不同团体,比如阿里云、字节跳动、去哪儿、Intel以及上海交通大学等。我认为项目开发过程中的首要工作就是制定标准,标准制定好了,结果就更容易达成一致。尽管大家来自不同公司,不论技术如何,对代码的理解有何分歧,最终目的都是对项目质量负责,是一个合作和协作的关系。

 

目前来看,我认为开源在国内的情况大部分是偏使用,需要更多有奉献精神的程序员参与到开源工作当中。当然近几年国内也涌现了很多技术创业公司,开始投入到开源项目中,而非仅靠程序员自己的兴趣,利用业余时间投入。

我做程序员的初衷是希望凭借自己的能力去改变一些事情,做开源也一样需要有一些技术信念。因为开源是个无偿的工作,不是商业化的东西,而是希望从中找到可以突破的技术点。

就像我个人非常喜欢的一位程序员David  Heinemeier Hansson(DHH)说过的 “Writing open source software and giving it  away for free has without a doubt been my most professional rewarding  endeavor yet”,开源本身就是一种值得追求的奉献精神。

 

其实做开源的人都比较包容,做事也比较单纯,都是为了把一件事做好。有的程序员比较理想主义,看到有问题的部分,就一定要指出并改掉。比如我自己,对瑕疵的东西看不惯,绝对会坚持正确的事情。当然写代码不是  0 和 1,要看具体场景,具体需求,没有绝对完美的答案,但是要时刻督促自己接近完美。

 

2021年9月9日,Dragonfly  2.0 正式发布,这是我第一个从 0 到 1  完整参与的开源项目,比较有成就感,也很有感情。虽然从开发到第一个版本发布持续了一年时间,过程中遇到问题也会争论不休,但真正发布的那天大家都非常开心和激动。我们同学们都比较给力,我们会一直坚持把项目维护下去,打造云原生场景基于  P2P 镜像和文件分发标准解决方案。我个人的短期目标是希望把 Dragonfly 做到 CNCF  毕业,后期会继续关注云原生场景镜像和文件分发还有哪些可以解决的问题,深入去研究。当然,毕业意味着会有更多的人使用,项目才真正开始。

@严松  从前端转做底层容器的技术人,参与 Nydus开源项目1年

image.png

 

“中国开发者参与开源需要更加开放,多多解决别人的痛点”

 

Nydus   容器镜像加速项目是我第一个真正深度参与的企业级开源项目。在这之前我做过几年的前端研发,也在业余时间做过一些个人开源项目,这个项目偶尔还能看到其他人包括一些国外开发者在使用和贡献,觉得做开源也是一件让人很开心的事。投入容器领域后,我认识到它相比前端更需关注底层,以及极致的系统优化,在这里能做的事很多,发挥的空间也更大。

 

我们做开源,会考虑能给所在领域带来什么价值,比如金融安全,Nydus 容器镜像做了端到端的数据的校验,在考虑构建、分发、运行时数据如何不被篡改,如何加密,OCI v1 镜像对这部分探索不多,但对于金融级基础设施乃至公有云来说都是必要的能力。

 

对于中国开发者参与开源,我希望可以更加开放,避免出现不合作的状态,更不要为了 KPI 消耗自己的热情。不能只考虑自己的内部需求,需要多看看如何反哺应用到其他场景。对于一个优秀的开源项目来说,代码质量、文档以及社区运营都很重要。

 

@川朗  做Nydus开源一年,commit来自发现需求

image.png

 

“做开源不只是靠兴趣,也需要把我们的思考和工作凝聚到技术圈”

 

过去一年我参与比较多的是Dragonfly的子项目Nydus,能产生这么多commit,还是因为需求,比如产品还需要丰富特性,能被用户使用,所以在不断地优化打磨。

 

我们用upstream(即上游)模式来进行开源工作,一方面把蚂蚁内部的需求开放出去变成upstream,社区的用户觉得可以改进或增加,就能形成需求。另外与别的项目合作也会产生需求,也就是开发一个上游,基于上游的仓库来做代码开发,把共性的东西作为基础,添加需求形成我们的仓库或者产品。

 

这种模式的好处是,能够把内部的需求和社区进行联动,形成一个双向的优化整合。产品迭代、优化的过程产生开源需求,这并意味着代码不够完美,而是比较活跃,对中间产生的需求和问题进行反馈,朝着积极的方向变化演进。

 

开源并不只是“用爱发电”。很多人做开源都是利用自己的业余时间来做,对我而言,如果是纯个人兴趣,可能不会持续太久,如果能把我们的思考和工作凝聚到技术圈子,使用到项目当中去,帮助行业在他们的业务场景内加持,会走得更长。

 

做开源的人比较热情,愿意和别人讨论,接受意见。我也希望中国开发者积极参加开源社区活动,用自己的方案,和社区进行讨论,证明自己的需求变更是必要和合理。

 

@ Jim  参与Dragonfly 一年,开源社区活跃分子

 

image.png

“打造开源项目的全球影响力,需要标准化和行业共建”

 

我日常参与的开源工作其实还挺多的,比如功能研发、优化项目性能、提高兼容性和稳定性、代码优化。在项目中我也比较活跃,会经常在社区参与线上讨论,也会花很多时间和精力在Dragonfly开发者群、线上社区,帮别人解答问题。

参与开源,不是说使用就算参与了,而是要更积极地反馈一些问题,尽力地让它朝着好的方向持续发展,比如说一个项目帮你解决了一个项目问题,但项目自己又有一些问题没有覆盖到,这个时候,不应该置之不理,或者说没有涉及到你的使用覆盖面就不管,而是需要我们及时去社区反馈问题,这样的反馈能让产品越来越好,也能为开源做更多的贡献。特别是公司内部使用的项目,有些改进不合到上游社区,是没有办法让社区享受到开源的红利。

 

要形成开源工作的影响力,标准化是非常值得重视的。一项技术如果不能作为一项标准,那么很难往外推广,获得行业认同。同时也需要参与度,只有业界伙伴能使用、参与共建,那么技术才能获得认同。推进标准和参与,才能让项目茁壮成长起来。比如Google想把K8s推成业界一个标准的容器编排平台,花了大量的努力做了一个很好的标准实践,让业界共同参与或者认同,最终才形成CNCF社区。“人人为我,我为人人”才能促进开源社区的正向循环。

 

我也希望中国的开源项目,能在社区运营上更上一层楼,让更多的人使用,创造更多的交流,推向更多的人。我也希望通过自己的努力把Dragonfly项目推成毕业项目,结合其他项目做一些更有意义的事。

 

@王旭  蚂蚁开源项目Nydus所在团队负责人,10余年开源经验,OIF项目Kata Containers联合发起人,木兰开源社区TOC成员

image.png

“开源团队管理应避免将目标捆绑在某些数据上,以防赢了commit输了社区”

我觉得作为一个团队管理者,管理好开源,最大的挑战恐怕不是业务压力,而是自身的勇气。总有人会问我一个问题——怎样平衡开源和业务。我的思路是upstream first,也就是上游优先。

 

把自己按照上游的要求来工作之后,你会在任何时候都考虑为相关合作方留出空间和接口,会把项目的核心功能和扩展功能做合适的解耦,会理智地进行妥协和权衡,但不会对风险置之不理。在采用upstream  first 的工作方式后,业务支持和开源之间是不会有不可调和的冲突的,否则就要谨慎地考虑是不是选错项目了。

 

从目标设定来说,我确实有提升开源影响力和培养新人的目标,但在考察的时候,我们侧重的是这一年的工作成果是不是真的提升了开源的质量,而非分解到commit 排名再去比较。参与开源的工作,更重要的不是考核数量,而是激发参与者的创新。

 

因此,我眼中的开源团队管理(或者说团队开源管理)——从目标看,应该是更加偏向于“激发”的OKR方式,避免将目标绑死在某些数据上,以防赢了commit,输了社区;从过程看,要有持续的调整和辅导,帮助项目调整或坚定方向、提升团队开源社区参与能力;从工作方式上看,要有开源上游一样的对正确工作方式的追求,让开源社区工作和自身业务统一起来。

后记

 

在过去的一年,Nydus在自身建设以及和Dragonfly项目的合作之余,也保持了与其他项目间的互动。Nydus团队和其主导维护的KataContainers安全容器实现了无缝集成。除此之外,Nydus团队还和中国最早的CNCF项目、企业级开源镜像仓库项目Harbor合作,串联了云原生镜像的完整生命周期,之后又和NEC的国外开发者一起合作,共同推进OCIImage标准的演进。就在今年年初,NEC把Nydus为containerd写的snapshotter贡献到containerd  org里做了子项目。

 

开源社区里汇聚的各个开发者的不同需求和背景,会帮助代码释放它们的设计者在写下时都不能预见的潜能,开放协作正是开源的价值所在。

相关文章
|
7月前
|
人工智能 安全 搜索推荐
杭州AI开源生态大会·魔搭社区开发者嘉年华全回顾
11月22日,杭州AI开源生态大会暨“魔搭社区”开发者中心启用仪式在云谷中心举行。大会汇聚超3000名开发者,发布“两张清单”与AI开源政策包,启用首个线下开发者空间,推动开放、共建、共创的AI生态发展。
1211 10
|
7月前
|
运维 自然语言处理 监控
AIOps 实战:我用 LLM 辅助分析线上告警
本文分享AIOps实战中利用大型语言模型(LLM)智能分析线上告警的实践经验,解决告警洪流、关联性分析难等问题。通过语义理解与上下文感知,LLM实现告警分类、优先级排序与根因定位,显著提升运维效率与准确率,助力系统稳定运行。
832 5
|
4月前
|
人工智能 运维 供应链
对待 Skills,请理性祛魅
本文深度解析Anthropic推出的Agent Skills技术:剖析其“渐进式披露”原理、模块化设计及在降本、可维护性、跨模型迁移等方面的显著优势;同时警示26.1%高漏洞率带来的安全风险,呼吁开发者理性祛魅、平台筑牢安全护栏。
886 2
|
5月前
|
人工智能 监控 架构师
裁掉平庸的代码,留下AI agent指挥官:2026年架构师的生存手记
2026架构革命已来:67%架构师已引入AI Agent指挥官,代码量锐减90%,上线周期从6个月压缩至4周,维护成本降75%。AI Agent架构师成最稀缺岗位(供需比1:10),薪资高出40%。裁掉平庸代码,转向能力组装——这是架构师的生存必选项。
740 3
|
6月前
|
存储 人工智能 Cloud Native
云原生数据仓库 AnalyticDB Supabase 使用全攻略
云原生数据仓库 AnalyticDB PostgreSQL 版 Supabase 是基于开源 Supabase 深度增强的全托管平台,兼容 Supabase 生态,提供数据库、用户认证、边缘函数等核心能力,并集成通义千问等 AI 模型,支持 Vibe Coding 与智能应用快速开发。原生支持微信、支付宝 OAuth,具备企业级安全与全链路可观测性,助力开发者高效构建 AI 原生应用。
|
5月前
|
机器学习/深度学习 人工智能 监控
基于视觉大模型的实时监控系统技术实现解析
该AI视觉系统以视觉大模型为核心,实现货架商品缺货、错位等状态的实时智能监控。无需改造现有摄像头,兼容多种硬件,通过“采集-分析-决策”闭环流程,结合轻量化YOLO模型与动态阈值优化,提升识别精度与响应速度,支持快速部署与多SKU扩展,为零售场景提供低成本、高复用的视觉解决方案。
259 0
|
存储 Java Maven
SpringBoot整合Jest和Elasticsearch实践
SpringBoot整合Jest和Elasticsearch实践
657 1
|
SQL XML Java
ruoyi若依框架@DataScope注解使用以及碰到的一些问题
ruoyi若依框架@DataScope注解使用以及碰到的一些问题
6178 0
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
1357 1
|
机器学习/深度学习 人工智能 负载均衡
【AI大模型】分布式训练:深入探索与实践优化
在人工智能的浩瀚宇宙中,AI大模型以其惊人的性能和广泛的应用前景,正引领着技术创新的浪潮。然而,随着模型参数的指数级增长,传统的单机训练方式已难以满足需求。分布式训练作为应对这一挑战的关键技术,正逐渐成为AI研发中的标配。
991 5

热门文章

最新文章