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