不久前,「一源初始,开放共创」开放原子开源基金会 2020 年度峰会于北京圆满落幕。峰会由开放原子开源基金会主办,阿里巴巴、百度、华为、趣链科技、SegmentFault 思否、招商银行等开源项目表明单位及开源社区协办,亦获得了全体理事单位的大力支持。程序员
会议中,Tetrate.io 创始工程师、Apache Member、Apache SkyWalking 创始人吴晟进行了主题分享,并参与了开源运营治理分论坛的圆桌讨论环节。在分享中,吴晟提出了对国内开源环境以及开源和商业间的思考。SegmentFault 思否的@阿遂对对吴晟进行了专访。segmentfault
开源在个人印象中,是一个技术工程师在跨商业实体间合做的平台与机会。在传统的开发模式中,工程师开发的软件只能在公司内部共享,而借助开源,能够和其余公司的人一块儿来开发、分享。对于工程师来讲,这样的开发模式会更有成就感,项目的质量要求相比以前也会高不少。工具
主要仍是一个工程师的角色。SkyWalking 最先就是我本身参与开发的项目,因此开发者的身份在个人平常当中占据很大的比例。布道、运营之类的工做也会有一些,但主要是在项目进入 Apache 基金会并顺利毕业以后,会有一些外部活动邀请进行相关的经验分享。组件化
其实就像一个软件公司,除了开发者以外也是包含不少其它角色的。好比宣传市场、售前售后等等,但不管是哪种身份,你们都是抱着同一个目的,在为同一个产品或开源项目在服务,在合做共建。学习
开源只是将这件事情放大了,把公司里由几我的干的事情进行更普遍的分工,找到更多擅长的人来一块儿完成。由于不可能一我的什么都会,须要有不一样身份的角色参与其中。ui
国内开源领域有一个现象,是你们如今看到了开源背后的更明确的商业价值,因此有点“一窝蜂式”的涌入。spa
这个现象的结果可能跟其它全部行业同样,在“一窝蜂”的涌入后,会在一个时间内变的很是繁荣,但到了下一个阶段,其中有一部分人可能会被淘汰掉。但泡沫老是会破灭的,能剩下的才是那些真正务实的项目和人。日志
开源项目的核心是为了解决一个具有通用性的问题。若是项目真的能解决一批人的问题,那无论泡沫破不破灭,它都会一步一个脚印的活下来。但若是单纯是靠造势、造泡沫发展起来,就会长得快破的也快,项目很快也会被你们忘掉。blog
我最近在和 PingCAP 的朋友聊天中,谈到一个颇有共性的思考。接口
之前的开源项目有几个发展阶段,最开始会是卖所谓的商业版产品,但这种方式在今天的成功率已经很低了。作开源项目的商业版,意味着会“藏”一些东西。但“藏”这个事情对于开源领域来讲是很反感的,用户会认为你只是开源了一个玩具,开源出来的项目自己就没有多少价值,也会和商业版产生竞争关系。
好比你将一些功能“藏”了起来,外部的项目贡献者为你提供了一个如出一辙的功能,你就须要考虑是否要将这项功能合并进来,若是不合并又须要用什么样的理由去拒绝。
因此如今最典型的开源模式就是像 RedHat 同样的全开源,项目功能所有都是开放的,只售卖咨询服务。全开源保留的只是“人”。写项目的人是个人,因此我在这个项目中最专业、最擅长。
第二种就是卖云服务。云服务应该是如今相对比较好挣钱的方式,但也有必定的门槛。好比说过小的开源项目或者太组件化的项目就很难售卖配套的云服务,而偏产品化的产品就相对比较好卖。
第三类在国内还相对较少,就相似于咱们在北美的那家公司同样,作的是一个商业产品,但产品 95% 以上的功能都是来自几个不一样的顶级开源项目。咱们把它们“捏”在一块儿为客户解决一个实际的场景需求,提供了一个完整的商业产品。
我以前接触过各类各样的企业,若是要细分的话,若是一家想要主导开源,或者想要新作一个开源项目的话,企业必定要具有“技术范儿”,是一个技术导向的企业。
咱们能够看到国内不少互联网企业开源的不少东西,可能过了两三年就没人管了。本质上开源的目的是由于内部须要,但很长时间没有进行改进,外部也只是拿走去用,而后开源项目的热度就慢慢降下去,没有人再使用了。这是一个最多见的状况。
另一种,若是只是参与开源,那门槛其实就没有那么高。只要是自身也须要这个领域的东西,不管是使用仍是贡献其实都是参与的一种方式。
没有找到商业化路径确定是缘由之一,没有利益驱动会致使后续再也不投入成本进行维护。
第二种常见的现象是国内互联网公司的一个特性。不少公司的员工从一个职级晋升到另外一个职级时,开源项目会是一个评估指标,因此不少工程师会利用工做时间和业余时间来完成这个指标。但随着两三年后的晋升成功,到了下一个级别的状况就不同了。国内不多有高职级的纯工程师,基本上华为 20 级以上、阿里 P8 以上的时候,很难会有沉下心来写代码的工程师。
到了这种级别就须要分出一部分精力参与项目合做、市场宣传、管理等等,而开源项目的发展必然就会受到影响,甚至死掉。
但其实不少所谓的“KPI 开源项目”都是好项目,也有不少人用,也能解决不少实际的问题。但问题就是缺少延续性,给你们一种感受就是国内没有“开源大项目”。没有历史悠久、在领域内耕耘多年、特别资深的项目,国内这样的项目确实是比较少的。
这个和基金会的运做模式有关系,也就是基金会模型的问题,比较典型的就是 CNCF 和 Apache 之间的区别。
若是一个项目捐献到 Apache,若是社区没有创建好,初始的人离开项目仍是很容易死掉的。CNCF 也相似,会要求 3-4 家公司成为项目的主要构建者,若是少了一家公司可能不会对项目形成太大的影响,若是再少一家公司,状况可能就不一样了。
基金会只是一种组织形式,可让你们放掉不少顾虑。不会出现一家公司影响项目生死的状况,但项目的具体发展,即便是在 Apache 或者 CNCF 这类基金会中也有不少不那么成功的项目,包括我本身在 CNCF 中有一个参与了的项目,就作的很不成功。虽然那个项目作了铺天盖地的广告宣传、有名厂站台,但项目自己不是很是被市场须要,并无预期中那么有用。
包括像咱们这种最先的项目参与者,认为这个东西好像挺有用的,能够解决不少的问题,但随着深刻,你们都以为这个产品彷佛并无那么好,事实上的效果也没有达到预期。
因此项目会起到决定性的因素,若是项目很差,哪怕是最顶尖的工程师来操刀、加入最顶尖的基金会,该作不起来仍是作不起来。
最关键的就是项目的主人或核心贡献者,他们最清楚项目的价值与优劣。
每每咱们在评价别人的开源项目时,会有不少空子能够钻。好比说 Star、Fork、Watch、Contributer、提交频率、issue 解决时间等等,这些都是有空子可钻的。尤为是对开发者来讲,各类接口都摆在那儿,找到规律以后甚至都不要人来具体执行。
因此评价项目是否是真的有价值的重点,是有没有那么多人或者厂商,真的基于本身的需求在不停的和项目之间进行沟通、相互提升。若是能在项目中看到这种状况,那么这个社区可能就是成功的。哪怕有很强的商业背景、很强的 KPI 背景,只要用户承认,认为这是一个好项目,贡献者也认为这个项目符合我解决特定问题的思路,咱们就会把这个事情干好。
咱们举个最简单的例子,好比一个知名厂商开源的系统能够在一晚上之间吸引到 1000 个工程师,吸引到 1000 个 contributer ,但另外一个项目可能只有两三百位贡献者,不过都是真正有需求的用户,这两个项目的社区活跃性、体系化和延续性,都有很大的差别。后者实际上要强大的多。
不一样的项目贡献者的数量确定也是不同的,若是是一个全套的 IT 系统,那么覆盖的人群就会很是广,而另外一个项目可能只是其中某一个很是具体化、细节化的需求,覆盖的人群就会相对少不少。因此不能单纯从数量来做比较,还要考虑一个市场占比的问题。
最重要的一点是你们真的须要这样的一个产品。SkyWalking 没有专职的 Marketing 同事,相对其余项目在宣传、包装之类的方面作得很是少。
咱们仍是但愿好好的作技术,和研发人员打成一片。只要真的愿意来贡献,咱们就能够深刻探讨如何将这个事情作好。
下一步的计划比较清晰,要涵盖监控领域绝大多数的场景。
最先的阶段 SkyWalking 只作追踪这一块的业务,后来增长了拓扑图分析、Metrics计算、API 监控、Service Mesh、日志监控等等。咱们会推出更全面的解决方案,也是由于看到一些贡献者有这样明显的倾向。
当初最难的问题咱们解决了,如今你们但愿的是将工具都能往这个上面来靠,将一些相对陈旧的东西迁移到最新的产品当中,保证平台的惟一性。
从项目自己来看,咱们在 Agent 和 Mesh 作的最好,最核心的重点确定会在这个方向,但从社区来看,是有这样的一个趋势。
主要的区别有两点。
第一点是参与者的专业性。国外有不少专业的“开源玩家”,在他们的职业生涯中可能碰到过 二、3 个成功的顶级开源社区或者开源项目,在作一个新的开源社区时会更加驾轻就熟,不会走弯路。
第二点是团队做战,这在国内是最难的一件事情。咱们的开源项目没有跨实体的集团作的,都是一两我的或者一家公司,在对抗国外多是五家十家全球顶级企业开发的项目,在对抗一个行业。
国外不少行业都有一种私下的“君子协定”,他们会在同一个航道中走,而若是想跳出这个航道或者作一个平行航道,那就会不在同一个水位线上,很容易被对方淹没。
咱们仍是举 SkyWalking 的例子。在最开始作这个项目的时候,绝大多数人对 API 都不太了解,但国外作的实际上是很是强的。咱们要考虑的几个点是本身能不能走得出去。
全球化社交对中国来讲是一个硬伤,这并不单纯是语言的问题,更多仍是一个大的生活习惯和文化环境致使的。咱们国家幅员辽阔,在你们的概念中出国永远都是一件“大事”,包括我以前所在的公司,出国参加一个会议,审批都要比国外多好几级。
但有些时候,出国甚至比国内出差在地理距离上还要近,好比去日韩、东南亚之类的,而且出国也很方便,但我国企业在这些地方发展的仍是颇有限。除了一些出海产品走出去了,但缩小到技术领域来看就更少了。
好比在东南亚和印尼,当地的技术活动是不少的,但中国没有机会去互相沟通、交流、推广开源解决方案等。咱们可能须要先把这个壁垒打破,技术反而不是第一个致命的问题。
如今的问题是咱们有好技术,但推不出去,是被迫在国内搞。而你们又会由于你的项目只在国内活跃,你们就会担心你的盘面会不会过小、不被国外企业厂商接受。
如今行业内有一个共识,就是不能只在国内市场发展。短时间能够,但可能不会作的太长久。
个人想法是“一上一下”。
你们都在讨论开发者 35 岁或者 40 岁会是一道鸿沟,我以为这在短时间内确实很难避免,毕竟这和国内不少企业实际的运营状况相关。“上”就是指 35 岁以上、40 岁如下的工程师能不能有更多的人留下来,企业给他们更大的空间去写代码?
我有一个感觉,在国内你们可能以为我是一个资深的工程师,但每次出国参加活动我都是最年轻的。国外有些工程师可能代码已经写了 40 年,头发都白了。之因此坚持下来,也许他挣得足够多,也许他只是单纯的喜欢,但那个环境给了他这样的一个机会。
咱们在平常的项目运营中,看到不少年轻工程师有精力、有一腔热血,但作事情很容易走错方向,由于行业经验太少了,是按照以往的经验来干活,不知道前面可能有一些什么样的坑在等着。
但假若有这种 40 岁以上的开发者能帮他们指出问题,就能够少走弯路。哪怕他们的代码量很少,但代码质量相对来讲必定会是很好的,而且更能沉得住气来解决问题,更能接受长线的运营项目,就像中国的第 N 个五年计划同样。我以为这是对高年龄程序员的一个定位。
我很是愿意看到有一天,当咱们在 coding 的时候既有年轻人,也有资深年长的程序员,
“一下”,指的是学生群体。如今不少老师已经作了不少工做,因此这部分的发展比上面的发展要好不少。我常常能看到不少新鲜血液,好比 SkyWalking 的群里就有高中生。虽然咱们的项目是个工业项目,不知道对他来讲会怎样使用,但能吸引年轻人的重视,是一件很好的事情。
如今你们都很重视年轻人,不管是媒体、政府仍是厂商,都很是重视对于学校的布道,只要咱们把该讲的讲对了,别布错了方向,那我以为这部分以后的发展,问题不大。
我以为要让咱们的学生更张扬一些。我喜欢如今的一些 90 后,能在文字的环境中表现出张扬的一面,但我但愿他们可以再张扬一些。
你要相信你的观点和观念,真有通过讨论和学习,确认别人的观点更好或者更准确的状况下,再去放弃本身的观点和观念。但不管如何,都要能站出来,持续的表达本身的观念。如今能看到不少大学生观念很强,但对于维护自身观念的坚持不够。
第二点就是须要给学生更多上台的机会。我国的教育常年形成的一个现象是没有人愿意站在台上讲,一上台就会跑掉一半的人。作卷子能够、写文章写邮件文字采访能够,但若是要上台讲个 10 分钟,那分享的东西可能就乱套了。
国外的学生由于教育的缘由,在个性方面相对会更加张扬,更能在公开场合坚持表达本身的观点。SkyWalking 有一个 90 后的贡献者,他就是那种知道本身经验不足但会坚持表达的人,这样才可能作出一些以前想不到的事情。好比他把 SkyWalking 集成到了 IDE 中,在源代码中就能够看到指标,这个思路就很特别。
这就是年轻人的独特价值,是 40 岁的开发者提供不了的。但 40 岁的开发者能够保障你的奇思妙想获得很好的、快速的实现,避免走偏路。
只有“上下”都发展起来,整个开源的队伍才能创建起来。如今开源领域大部分的开发者工做年限可能也就是 五、6 年,虽然也能在一些项目中看到一些 40+ 的开发者,但他们大部分都是没有开源经验的。国内这方面的发展可能确实还须要再熬一熬、等一等。
开放原子开源基金会在开源领域开了一个先例,咱们虽然不能期望有什么快速的产出,但他给了咱们一种可能性、一个靶子。给了咱们一个去作比较、去发现问题的方式。
基金会中第一批开源的项目,咱们不能下定义它们是否会成功,但不管结果如何,在发展的过程当中会有不少教育和借鉴的意义,这多是最有价值的地方。