写点什么

专访骨灰级开源爱好者吴晟:开源没有黑魔法,两年后泡沫将会破灭

2021 年 3 月 04 日

专访骨灰级开源爱好者吴晟:开源没有黑魔法,两年后泡沫将会破灭

在刚结束的 2020 年,国内先后有超过 11 家开源软件领域企业获得了新一轮的资本助力,融资纪录创下近年来开源赛道最高。开源的热潮,已然兴起。然而,当越来越多的资本、企业等产业界人士开始越来越关注开源之时,一些隐藏在开源光鲜外衣背面的阴暗,也随之而来。

 

1 月 下旬,Elasticsearch CEO Shay Banon 通过公司官网发布了将 Elasticsearch 开源协议由 Apache 2.0 变更为 SSPL 和 Elastic License 的消息,而这样做的原因,主要是因为被 AWS 免费抄袭代码,最终无奈之下做出选择。而在此之前,MongoDB 同样也因为被 AWS 等头部云厂商免费集成代码最终被迫选择更改协议。

 

在国内,开源软件侵权的事件也屡见不鲜,甚至于有过之而无不及。“工程师文化的缺失,导致了本土工程师创新创造能力的匮乏,因此往往也缺乏相应的知识产权保护能力与意识。”在亲历了两次开源侵权的维权之后,SkyWalking  创始人兼项目 VP 吴晟如此评价。

 

作为一名骨灰级开源爱好者,吴晟所创建并担任项目 VP 的分布式程序监测软件 SkyWalking 是国内唯一一款由个人开源成为 Apache 基金会的顶级开源项目。除此之外,其本人还是 Apache ShardingSphere 项目联合创始人,并且担任 Apache 基金会旗下 APISIX 、ECharts、DolphinScheduler 等多个顶级开源项目 PMC 成员与孵化器指导者。

 

长期从事开源的实践积累,使得吴晟对于开源领域的认知更加地深刻而清醒。在其看来,目前国内开源生态侵权严重的现象,主要是由于大多数工程师对于开源协议认知薄弱,以至于不懂得如何遵守协议并保护开源软件知识产权,而这样的文化氛围,正在破坏着本土开源生态的健康发展。

 

在开源日趋火热的当下,国内开源社区治理及行业发展正面临的挑战还有哪些?下一步国内开源社区的发展还缺乏什么?近日,InfoQ 记者就相关问题对吴晟进行了采访。

SkyWalking 的诞生

2012 年至 2013 年间,当时吴晟所在的亚信科技与另外七家 IT 技术厂商共同为中国联通做一个大型项目,由于项目过于庞大且牵扯的技术提供商过多,各提供商的代码在相互调用后,往往会出现多应用间代码问题定位难、协作效率低下等问题,并最终导致工程队伍之间推诿扯皮现象严重。

 

出于项目发展需要,当时吴晟等人便尝试在项目中引入并运用了应用性能监控技术(APM)。随后到了 2015 年初,为了通过实际做项目的方式帮助新员工培训编程技能,吴晟便将当时帮助中国联通做项目时用到的 APM 程序放到了 GitHub 之上,希望通过开源的方式鼓励参与者认真写好代码。

 

经过 5 年时间的发展,如今的 SkyWalking 已经发展成为了一款集收集,分析,聚合和可视化来自服务和云原生架构数据的开源观察平台,能够让工程师能够清晰地认识自己的分布式系统。

 

在技术架构方面,SkyWalking 主要由提供给相关人员操作使用的 UI 界面、底层存储、探针以及可观测分析平台四部分组成。其技术架构图如下:



架构图的左下方是目前(v8.4.0),SkyWalking 支持的数据源,包括多语言探针,浏览器,Service Mesh 生态和主流的 Prometheus、Spring Sleuth 等多种数据源,并随着版本升级,更多的数据源也会很快被加入进来,比如 Filebeat,Fluentd,OpenTelemetry 等等。从传输协议上,SkyWalking 常用 gRPC 和 HTTP,针对场景支持推和拉两种数据上行模式,并在特定场景下,支持 Kafka 这样的 MQ 来做为数据传输管道。

 

架构图的中部和右上,展现了 SkyWalking 集群中节点的两种角色以及分布式聚合的流计算引擎。同时支持 ElasticSearch,mysql, TiDB, H2, InfluxDB 等多种存储引擎。在未来的 2021 年底,更是会迎来 SkyWalking 的 APM 专用数据库 BanyanDB。

 

左侧,用户可以通过常用的 GUI 和 CLI,基于 GraphQL 查询协议读取和展现监控数据;而右侧展示了提供告警和数据导出这种典型的对外系统集成模式。

 

总体上,SkyWalking 提供了全面的数据接入方式,以及针对 Trace、Metrics 和 Log 三大维度的分析处理和展现能力,这也是他成为 Observability Analysis Platform(OAP)的原因。

做开源最核心的是具备产品思维

从最初的源码开源,到成功从 Apache 基金会毕业并发展至今天的技术架构,这一过程中,SkyWalking 先后经历了四次几乎重头开始重写代码的大型版本迭代,最终才取得了如今的成绩。

 

“开源最核心的是要具备产品思维。”将产品思维融入到做开源项目的过程中,这成为了吴晟将 SkyWalking 打造成国内唯一一款由个人开源成为 Apache 基金会顶级开源项目之后,如今回头反思时最为看重的经验。

 

“在某种角度上,社区  Leader 一定要是一个非常懂技术的人。但从另外一个角度上看,社区  Leader 更重要的还是要把开源项目看作一个产品或者能够售卖的商品。”吴晟表示。

 

从 SkyWalking 所处的 APM 行业现状来看,目前业内绝大部分的 APM 厂商喜欢用大数据技术、Hbase、spark 甚至于 Storm 这一类技术来实现自己所需的功能,但 Skywalking 与这些产品的区别却是,他是一款完全自研的 APM 技术。

 

在吴晟看来,APM  作为一个应用性能监控的维护型工具,本质上属于一个二三线级别的系统,这样的情况下,最好的解决方案就是保证自身的结构尽可能地简单和稳定,而不是因为过于复杂反而要让用户去担心它出了问题还要花费精力去维护。

 

通过自己去写一些轻量级的计算引擎,以满足自身需要解决的问题,SkyWalking 的通用性或许没那么强,但是却获得了针对一个项目最大的灵活性和能够最好满足项目需求的能力,而且部署起来也更加地简单方便。

 

“站在监控这个产品上,APM 产品是去监控别人的,但是如果最后你变成了这个系统里边最复杂的,还需要运维人员返回去监控你,那么你的价值何在呢?”吴晟表示。

 

在其介绍中,早期 SkyWalking  在发展的时候也采用过大数据、Hbase、spark 等技术,但是最后的选择是全部推翻重写,而目的就是为了向使用者提供一套简单易用的轻量级 APM 产品。

开源没有黑魔法,解决实际问题才最关键

由于同时在 Apache、CNCF 等国际顶尖的开源基金会都有任职,跨基金会的经历,让吴晟见证了更多国际上成功的开源项目,因此,他也更加地懂得了工程师文化对于一个开源项目能否成功的重要性。

 

而正是有了这种工程师文化理念的支撑,也才有了 SkyWalking 围绕 APM 业务需求出发的四次完整的代码重写。

 

伴随着 2020 年开源赛道投融资事件的骤然提升,业界对于开源的热情一度高涨,越来越多的企业竞相推出了自家的开源项目,但是当大家在谈开源的时候,说得最多的往往是宣传策略、品牌设立等话题。但在吴晟看来,这些虽然重要,但却不必要。

 

“国内从来不缺有品牌营销能力的资源团队,但是国内成功的开源项目还是非常少的。”吴晟表示。当前业界对开放源码的热情高涨,需要警惕危机,过分追求热点,最终陷入困境。

 

事实上,由于代码开源的原因,绝大多数的开源产品在新功能出来之后,很快地就能够被别人学习和借鉴,这导致的结果是,开源本身不应该将快速发展和微创新的领域做为核心竞争力,并因此就开辟独立的开源项目。

 

“开源最忌惮的就是比拼快和性能,如果你一味地追求快,这导致的结果是,你的功能出来后,别人也可以通过某种优化,快速地追赶上来,这就会导致你丧失掉生存的空间。”在吴晟看来,做开源只有持续地保持创新,才能不断地走下去。而这个过程中,如果一味地靠 KPI 以及营销带来的数据指标指导开源项目发展,而不是回归开源项目需要解决的问题本身,这将会成为开源项目发展的灾难。

 

“ SkyWalking  从第一个版本到现在经历了四次几乎是完全重写代码的版本升级,如果是一开始就采用这种比较急功近利的方式推进,SkyWalking  不可能走到今天。”吴晟表示。

 

在其看来,开源其实并没有太多的黑魔法,它只是一种以开源分布式协作的方式解决一部分人真实生活问题的朴素方式。无论是大名鼎鼎的  Linux  系统,还是其他任意一个开源项目,他们最终获得成功的原因,往往都是解决了某种客观存在的问题。

国内开发者需要敢于进行开源维权

在  Elasticsearch CEO Shay Banon 宣布公司将开源协议由 Apache 2.0 变更为 SSPL 和 Elastic License 之后,业界对于开源软件侵权事件的关注,上升到了新的高度。而在参与了两次有关于 SkyWalking  侵权事件的维权之后,吴晟对于国内开源生态的发展及维权事件的处理有了更加深刻的认知。

 

虽然近几年国内的知识产权保护制度一直都在改进,但是与西方国家相比,国内仍然还有非常大的差距,开源项目保护机制匮乏,使用者自觉遵守开源协议意识薄弱等方面的问题层出不穷。如果这些问题长期得不到解决,就将一直损害着国内开源贡献者的个人利益。

 

“绝大多数中国的程序员往往并不知道如何基于不同类型的开源协议,去遵守与之对应的程序规范。他们甚至于都不知道选择不同的开源协议对于开源软件意味着什么,更不知道什么样的 License 是合理的。”大多数工程师在使用开源软件时的不规范行为,正不断地破坏着开源项目。

 

在吴晟看来,国内开源领域面临的这些挑战,本质上是一种工程师文化缺失的表现。“国外许多的工程师其实跟艺术家都有着某种共同的特性,他们都在通过自己的创造性能力和创新精神,进行着自己的实践。但是在国内,工程师的这种精神是不被认可的,他们绝大部分的工作是在完成一些重复、标准化的工作,并没有太多的技术创新过程。”吴晟表示。

 

工程师文化的缺失,直接导致了大多数工程师对于其他人的劳动成果同样缺乏尊重,甚至于对于开源协议遵守规约的认知和遵守意识都极其薄弱。

 

在另一方面,除了工程师对于开源协议遵守意识薄弱之外,国内开源领域许多开源项目的创始人或维护者往往因为碍于面子或找不到途径等问题,很少就开源侵权事件进行维权反击。这导致了国内的开源生态愈发难以发展出一个健康的发展环境。

 

事实上,对于许多大公司而言,他们的高层领导对于开源侵权事件的重视度是非常高的,只要你能联系上他们,他们也会非常积极地配合你解决问题,更多的侵权问题往往是底层员工使用不规范导致的。

 

“国内的开源项目维护者们需要敢于积极参与维权。”吴晟表示。在其看来,开源和理想和高尚没有什么太大的关系,它只是一帮喜欢做技术的工程师,在跨实体、跨国家、跨语言文化背景下,共同解决一个全球通用问题的合作方式。勇于维权才是参与开源、保护开源的正当方式。

 

“我不希望大家把开源当作是一个理想主义。2020 年出现了许多开源项目,但是如果解决不了实际的问题和正当的运营维护手段,我相信在 21 年或者 22 年,大家很快就会发现,想在开源上成功并没有那么容易。”吴晟表示。

2021 年 3 月 04 日 08:084820

评论 4 条评论

发布
用户头像
在我看来,自由软件被免费商用导致开发商不爽这种的事情,恰恰反映了开源派这种以商业模式来理解自由软件的思维存在根本缺陷,它本质上是社会化的、高度发达的生产方式与现有商业结构之间的矛盾。真正的解决方法不是去束缚自由软件,甚至修改协议让自由软件变成不自由软件(否则,照这样继续下去,连 SSPL 也迟早要让开发商不爽,然后他们又继续更换更不自由的协议),而是打破这个商业怪圈。当然,这仅靠自由软件运动自己是做不到的,它必然要是一场彻底改变整个社会的变革的一部分。
2021 年 03 月 28 日 04:13
回复
用户头像
开源软件需要有一个好的商业环境,国内这种知识产权意识,真不适合开源软件的发展。或许会有成功的,但肯定极少。什么时候,IT企业和程序员都有了付费意识,或许才是开源企业真正能活的轻松的时候。
2021 年 03 月 06 日 14:22
回复
用户头像
100%付费100%开源, 开源和商业并不冲突
2021 年 03 月 05 日 00:16
回复
用户头像
我觉得开源不应该当成一种文化去研究,而更是一种商业模式。大家不要总是把开源捧在神坛。
2021 年 03 月 05 日 00:10
回复
没有更多了
发现更多内容

阿里P8对Thread核心源码讲解

Java架构师迁哥

低代码开发不靠谱?看低代码开发在物联网APP开发中的应用

华为云开发者社区

技术 软件开发 代码

MySQL中特别实用的几种SQL语句送给大家

陈哈哈

SQL优化 实用SQl语句 高性能SQL

数字资产交易平台开发,场外交易所开发搭建

135深圳3055源中瑞8032

HTTP2协议及websocket协议总结

江龙

TCP梳理总结

江龙

我去!三面字节竟全败在Redis上,带薪摸鱼刷1949页进阶笔记

996小迁

Java redis 架构 面试 程序人生

NPC Follow

katichar

从技术到应用实践 揭秘京东区块链布局全景

京东科技开发者

区块链 区块链方案 供应链

华为发布5GtoB核心网建设白皮书

华为云开发者社区

5G 边缘技术

“软件教父”花费20年,教你如何在应用层混迹的风生水起

小Q

Java 学习 架构 面试 应用

USDT承兑支付系统开发技术,搭建商户USDT支付系统

135深圳3055源中瑞8032

ViewportFrame demo

katichar

Redis最常见的16道面试题与详解

Java架构师迁哥

http请求中get和post方法的区别

测试人生路

HTTP post GET

架構師訓練營第 1 期 - 第 07 周作業

Panda

架構師訓練營第 1 期

互联网审判中区块链存证技术的应用进路

CECBC区块链专委会

互联网 电子存证

谈谈敏捷开发概念和迭代开发方案

Philips

敏捷开发 快速开发

LeetCode题解:231. 2的幂,迭代,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

训练营第三周总结

大脸猫

极客大学架构师训练营

隐私计算S2赛季 谁是真正的王者?

hellompc

学习 隐私计算

字节跳动大神亲自总结SpringBoot手册,让你可以在简历上写精通SpringBoot!

Java架构追梦

Java 架构 面试 微服务 springboot

啥是数据库范式

Simon

MySQL 数据库 数据库设计

快快使用ModelArts,零基础小白也能玩转AI!

华为云开发者社区

人工智能 开发者 开发

区块链钱包APP开发服务商,数字货币钱包开发价格

135深圳3055源中瑞8032

诈骗?通证项目方的危局

CECBC区块链专委会

区块链 法律

25个小众的Java库

GuoYaxiang

Java 开发工具

“十三五”收官,区块链赋能能源电力路在何方?

CECBC区块链专委会

区块链 电力 能源

字节跳动HR:3年从4000人招到10万人,我经历了什么

Java架构师迁哥

架构师训练营 -week07-作业

大刘

极客大学架构师训练营

LeetCode题解:231. 2的幂,递归,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

4月17日 HarmonyOS 开发者日·上海站

4月17日 HarmonyOS 开发者日·上海站

专访骨灰级开源爱好者吴晟:开源没有黑魔法,两年后泡沫将会破灭-InfoQ