2022 年 5 月 21 日,Apache APISIX Summit ASIA 2022 开启第二天的议程。围绕“生态建设对开源项目的重要性”这一主题,王晔倞(API7.ai 合伙人兼技术副总裁,Apache APISIX Committer)担任主持人,与周小四(青云科技容器事业部负责人)、王宇博(亚马逊云科技开发者关系总监)、吴晟(Tetrate 创始工程师,Apache SkyWalking 创始人)三位嘉宾展开了一场圆桌讨论,讨论话题包括:“社区、用户、开发者对于开源项目的意义”、“完善的开源生态系统对于开发者和用户的意义”、“开源生态发展在国内大环境下的态势与挑战”。
以下是圆桌讨论的内容节选:
“社区”、“用户”、“开发者” 是不是开源项目的三大核心?什么是开源生态系统中最重要的组成部分?
吴晟:首先,我们很难给社区进行一个明确的定义。大家可能会参照 Apache 软件基金会看待 Apache 顶级项目 Community 的角度,或者参考 Community over Code 或 The Apache Way,但这个问题没有所谓的标准答案或正确答案,可以有更多元的想法。
至于如何做一个开源项目,我觉得用户是最重要的。通过开发并开源项目,大家希望把项目里沉淀的技术经验和思考分享出来,希望产生共情。如果一个开源项目有非常多的用户组、用户群体,那它就是一个非常好的开源项目。
最后回到开发者,开发者和社区是相辅相成的。开发者数量的实际意义取决于开发者对这个社区来说到底有什么价值。一个开源项目只要有大量的开发者,就有很好的生态,就具备成为优秀开源项目的最重要要素。
王宇博:在我看来,社区、用户、开发者组成了一个闭环,而这个闭环则构成了整个开发者生态系统。
首先,社区可以通过技术层面赋能,让开发者对开源项目有更深入的了解,同时提高开源项目在开发者当中的影响力。随着更多的开发者参与到开源项目,使用开源项目,他们会逐渐学习到开源项目更深入的使用方式与实践,从而进入更深的使用层次,更好地为开源项目做贡献。
其次开发者会接收到来自社区的反馈,反馈会帮助开发者持续改进开源项目。同时这些开发者和用户也可以代表开源项目,在更广泛的开发者群体中生成和输出技术内容,构建更加完善的开发者生态体系。
在整个过程中,社区始终扮演着非常重要的角色。在金字塔型的社区体系中,每一位开发者或者用户都可以更便捷地找到他们需要的知识,找到更好的交流途径,进一步在社区中找到自己的位置,明确自己的成长和发展路径。
周小四:一个开源项目如果有很多用户,它就是一个好项目,但社区和开发者同样重要。关键还是要看开源项目的性质和所处阶段。
在项目初期,我认为用户最重要。把项目做出来并开源,然后收获很多用户,这是该阶段的首要事情。到了之后的新阶段,可能就需要更多的开发者加入进来,参与共建。
有句话叫“良禽择木而栖”,社区同样重要,我们在选择开源项目时,都会提前进行一番调研。社区是不是健康?社区的生态好不好?社区会不会持续发展?这些都是我们会考虑的因素。
开源产品的生态发展和完善会给开发者和用户分别带来什么?
周小四:我们经常说“站在巨人的肩膀上做事情”,在开源界尤其如此。在完善的云原生生态里,开发者拥有更多更灵活的选择。通过集成现有产品或功能,更快速地交付合格标准的产品,完善的生态也使得用户的需求更容易得到满足。
吴晟:开源软件的生态可以说是开源软件的根基,很少有单个开源软件会做全所有功能,这不符合开源工程师做精、做深的原则。对有追求的开发者来说,如果想深究底层的东西,成为开源软件的开发者可能是唯一出路。因为开源软件已经应用到大部分场景,而且上层做的东西大多是漂亮的界面、更完善的权限管理功能和更好的集成。在开源项目里,你也可以跨越地域、文化、公司等边界找到志同道合的人,碰到非常多在某个领域有建树的技术大牛。对开发者来说,这个过程是非常有价值的。
在我看来,开源软件的用户是影子用户,有时连开发者都不知道这些软件用在哪或怎么用,往往是有商业公司背书的社区会发掘真正的用户案例,如果是比较离散的社区,可能就很难拿到这个数据。所以用户会有自己的圈子,用户和用户之间会有交流,而这些交流可能和原始的软件开发者有一定的距离,他们有各自不同的生态。用户会更关注如何极致地使用产品,他们会发挥想象力和集成能力,利用创新性把软件应用到更合适或对他们更有利的场景中。
王宇博:针对这个问题,我想和大家分享几组数据。来自 Linux 基金会的数据显示, 62% 的开发者认为如果他们有更多的有偿工作时间为开源项目做贡献,他们会获得更大的成功,87% 的开源人士表示了解开源、使用开源和开发开源软件可以促进职业生涯的发展。也就是说开发者在完善的生态系统中可以获得一系列的自我提升,比如获得更多动手实践、自由实践的机会,利用开源软件和开源生态寻求更多新的机会,甚至打造全新的个人品牌。
此外,开源开发者的自驱力一般比较强,在开源软件的开发过程中,他们可以达到更高的技术水平,同时目标感和自主性也会驱动他们为开源软件的生态做更多贡献,促进整个生态系统的建设。
基于质量和回报两个因素,有越来越多的用户使用开源软件。Google 发表了一份关于现代代码审查的研究报告,数据表明开源项目每周花费 6.4 个小时审查代码,是非开源项目的两倍,严格的代码审查会吸引更多用户选择高质量的开源软件。在南加州大学马歇尔商学院的数据中,如果开源对业务产生贡献,那么使用开源软件的比例每增加 1%,生产力的提升就会达到 87 万美元。由此可见,使用开源软件可以让企业用户获得更大的回报。
在国内大环境下,开源生态发展的态势和挑战分别是什么?
王宇博:从整个大环境来看,开源软件得到了越来越多的开发者、用户和企业的认可。如何把开源软件真正用起来,利用开源软件创造更多价值,实现降本增效?这是我们目前需要重点考虑的问题。
此外,如何把开源融入到企业的 IT 或者全盘战略与规划之中?企业的开发者、用户与项目如何使用开源进行进一步的战略整合,使得开源成为一个自上而下的企业意志行为,帮助企业抵消更多的不确定性,获得更好的成果、更高的收益?这也是一个值得考虑的问题。
周小四:因为有布道师在给企业做培训、大部分企业开始使用开源产品和技术、资本市场看好开源项目,再加上国家政策大力倡导开源,国内的开源环境整体在向好的方向发展。
但我认为国内的开源环境也面临着巨大的挑战。首先,开源文化在国内的普及度还不高,很多人不遵守开源规范。其次,国内开源项目的生态做得非常不好,开源本是为了提高效率,但国内同质化的开源产品比较多。再者,我们要关注开源项目的质量和可持续性,很多开源项目做一段时间就停止了,功利性色彩比较浓,这也是国内开源项目存在的问题之一。
此外,开源项目尽量还是全球化,大多数国内项目只面向国内,国内项目做全球化确实也有点难度。最大的问题还是商业化的问题,我们不能忌讳开源项目商业化,商业让开源持续可发展。但确实在国内做开源项目商业化,挑战会非常大。
吴晟:在我看来,中国开源在短期内不会有非常大的变化。中国的工程师普遍缺少工程师文化,绝大部分工程师把编码当成一个任务或者说是工作。目前有个主流逻辑是只要这个东西有人用,我就可以做个一模一样的东西。工程师在迎合这个逻辑的同时开始进行模仿,而不是创造。
我觉得这是我们心里最本质的一个困难。如果我们以这样的路径走下去,无论是做开源还是做商业化,都会面临一个极大的困难——即如何做价值解释。而且 99% 以上的项目同质化程度非常高,不光是内部同质,也有全球同质。我们在创新方面,在解决特定问题方面做得还不够。绝大部分团队也没有找到一个适合自己的协作方式,在中国想把两堆人轻耦合在一起合作,是一件非常困难的事。
总结
目前开源运动正在如火如荼地进行中,全球氛围下开源软件都散发出了独一无二的魅力。开源社区从一开始就不是一个单一元素的组成,而是汇集了开发者、用户与社区多角度交流的平台。有了多样化能力和人文的加持,才能使开源社区朝着更全球化与持续性的蓬勃发展。
点击链接了解更多峰会内容:https://apisix-summit.org/stage/main-stage