开源如何在云上存活?
在过去十年中,从 Linux 和 MySQL 到 Kubernetes、Spark、Presto 和 MongoDB,开源一直是云的创新支柱。但最近的一些事态发展为开源背后的商业模式带来了阴霾,业界现在必须采取行动,以避免扼杀其最大的创新来源之一。
作为 Apache Hive 项目的共同创始人和前负责人,我知道激励对于开源生态系统的蓬勃发展至关重要。独立开发者需要激励他们为开源项目贡献自己的时间和技能,而那些具有创业思维的人需要激励他们围绕这些项目建立公司以帮助它们蓬勃发展。
公有云可能会破坏这些激励因素,因为它改变了开源的形态。大型云服务商很容易将开源项目拿来,并将其作为托管服务提供个客户。如果它是在没有回馈社区的情况下这样做的,它就是从别人的工作中获得不公平的利润,从而破坏了开源所需要的蓬勃发展的动力。
我们在围绕 AWS 的当前讨论中已经看到了这一点,AWS 被指责 将开源项目作为服务而提供,并对这些开源项目进行品牌重塑,却不总是回馈这些开源社区。这促使包括 Confluent、 Redis Labs 和 MongoDB 在内的开源软件供应商使用了新的许可证,以阻止大型商业云服务商将其代码作为托管服务提供。
我不认为这是一种正确的方法。这些新的许可证尚未得到 开源推进组织 (OSI)的认可,并且它们有可能会混淆开源软件的使用权。正如 软件自由保护协会 主席 Bradley M. Kuhn 所说,软件自由应该“对所有人来说都是平等的,无论他们是否是商业行为者。”开源之所以蓬勃发展,是因为这个原则一直受到尊重,任何模糊不清的地方都可能会阻止人们加入社区。
我同情那些寻求保护其业务的开源公司。尽管独立开发人员付出了很多的努力,但开源项目需要公司的资源和管理工作才能被视为足够稳定,才足以供企业广泛使用。Linux 在企业领域中起飞,是因为 Red Hat 和 IBM 全力支持它。Kubernetes 的发展是如此的快,也是因为它得到了谷歌的支持。当然也有例外,但如果一个开源项目背后有一家公司,那么这个开源项目更有可能在大型企业中取得成功。
我需要说明一下我的利益相关立场。我的公司提供了一个基于云的数据分析平台,该平台严重依赖 Spark、Presto 和 Hive 等开源组件。与此同时,我们通过两个项目回馈社区,成为优秀的开源公民:Sparklens,一个提高 Spark 应用程序性能的框架;以及 RubiX,一个提升 Presto 和 Spark 性能的缓存框架。
在云中提供开源软件有助于这些项目吸引更多用户和开发人员。但是,如果商业云服务商获利不公平,则会对下一代企业家程序员们构建开源公司和投资者支持他们产生抑制作用。
因此,如果新的许可证不是解决方案,那么什么是呢?
部分要靠大型云服务商的公平竞争。我不认为 AWS 是“邪恶的”,他们的行为是他们认为最符合他们商业利益的行为。但他们需要认识到,从长远来看,破坏开源对他们的伤害会像对其它人的伤害一样。开源倡导者应该继续提高对这个问题的认识,并对云服务商施加公众压力,以便让他们采取负责任的行动。我们已经看到证据表明这种压力可行。
我们还需要一个开源的“ 道德规范 ”,由社区(贡献者、项目负责人)和开源组织(如 OSI 和 Apache)创建。一个企业的行为即便是 100% 符合开源许可证,但仍然能够以损害社区的方式行事。这个道德规范能够指出一个广泛认可的道德准则,列出了不可接受的做法,这将使公司和个人对他们的行为负责。
最终的推动力来自于竞争。确实,大型云服务商在吸引客户方面具有优势;它们被 CIO 们视为“简单”和“安全”之选。但客户也可以选择最好的软件和支持。如果开源公司能够为他们自己的发布版本提供更好的功能和更好的支持,他们可以说服客户选择他们自己的产品。
我已经概述了社区可以采取的改善这种情况的行动,但我们每个人也都可以以个人身份采取行动。通过让云服务商了解我们的担忧,我们能够对市场产生一定的影响。要求他们通过反馈表和产品论坛向社区提供特定功能,这是让你发出自己的声音的一种方式。这些云服务商的开发人员也在开源论坛中闲逛,并希望成为开源社区的一员;让这些要求引起他们的注意会促使这种改变。
我们所面临的这个挑战并没有简单的解决方案,但我们需要认真对待。开源模式并不脆弱,不会在一夜之间崩坏。但是,如果商业云服务商继续利用开源项目而不给予回馈,那么他们就会削弱帮助开源成功的激励措施。杀死产下金蛋的鸡并不符合他们的利益,这肯定也不符合开发者和客户的利益。
via: https://venturebeat.com/2019/04/14/how-open-source-can-survive-the-cloud/
作者:Ashish Thusoo 译者:wxy 校对:wxy
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive