过去十年间,从Linux和MySQL到Kubernetes、Spark、PrestoMongoDB,开源一直是云创新的支柱。但从最近的发展来看,开源的商业模式似乎蒙上了一层阴影。
开源生态若想繁荣,其中具有激励模式是相当重要的,独立开发者需要有动机才能为开源项目贡献自己的,而对于那些具有开创精神的开发者来说,他们也需要有足够的激励吸引力,从而聚集在公司的周围,以帮助他们蓬勃发展。
但公有云的存在可能会破坏这样的激励模式,因为他们改变了开源的态势。大型云供应商很容易将开源项目纳入自身体系中并将其作为一种托管服务产品,而如果这些大型供应商并没给社区进行相关的回馈,那么它们就会榨取其他的工作成果,并破坏开源繁荣所必须的激励机制。
在最近有关AWS的争议中,AWS被指责总是随意使用开源项目并对其进行重命名,但并不总是对社区进行回馈。这促使Confluent、Redis Labs和MongoDB等供应商开发新的许可证,以阻止大型商业云供应商的掠夺。
但似乎这并不是一个很正确的方式,因为这些新的许可证还没有被开源计划所承认,它们有可能使开源软件本身的使用权问题更加复杂化。正如软件自由保护协会(Software Freedom Conservancy)会长Bradley M. Kuhn所说,软件应该“对每个人都是平等的,不管他们是不是商业参与者”。“开源之所以蓬勃发展,是因为这一原则一直受到尊重,而任何困惑都可能阻止人们加入社区。
那些寻找自身业务保护方法的开源公司确实值得同情。但虽然独立开发人员尽了***的努力,要使开放源码项目足够稳定,并适合广泛的企业应用,依然还是需要大型公司的资源和管理。Linux在企业中获得了成功,因为Red Hat和IBM都支持它。借助谷歌的支持,Kubernetes迅速繁荣起来。当然也有例外,但是如果一个开源项目背后有一家公司的支持,那么它在大型企业中更有可能成功。
在这里,本文作者, 云数据分析平台 Qubole创始人兼CEO Ashish Thusoo也表达了自己的想法,他提到了他公司产品十分依赖于一些开源组件,如Spark、Presto和Hive。但同时Qubol也通过两个项目Sparklens和RubliX对社区进行回馈,前者是一个提供Spark应用程序性能的框架,后者是一个加速Presto和Spark性能的缓存框架。
当然,在云中提供开源软件可以帮助这些项目吸引到更多的用户和开发人员。但是,如果商业云提供商的利润不公平,就会阻碍下一代企业家程序员创建开源公司,并阻碍投资者支持这些公司。
那么,如果新的许可证不是解决方案,那么什么才是解决方案呢?
这在一定程度上取决于大型云供应商能否做到公平竞争。AWS并不见得是“邪恶的”,它的行为符合其认为的***商业利益。但是AWS也需要认识到,从长远来看,破坏开源对其自身其他公司一样有害。开源倡导者应该继续提高对这一问题的认识,并向云供应商施加公众压力,要求它们采取负责任的行动。有证据表明,这种压力能够奏效。
我们还需要一个开源的“道德准则”,其由社区贡献者、项目负责人以及开源组织(如OSI和Apache)创建。能够制定出一套得到广泛认可的道德准则,将使追究企业和个人的行为责任变得容易得多。
***的推动力是竞争。的确,大型云供应商在吸引客户方面具有优势,它们被CIO视为“简单”和“安全”选择。但是客户还会去选择***的软件和***的支持。如果开源公司能够为他们自己的发行版产品提供更好的特性和更好的支持,他们将说服客户选择他们自己的产品。
以上是一些社区可以采取的行动,但是我们作为个人,开源开发者也可以以个人去施加影响,他们可以通过反馈表单和产品论坛贡献自己的意见与想法,并让自己的声音为其他人所知。
尽管开源挑战没有简单的解决办法,但我们依然需要认真对待。开源模型并不脆弱,也不会在一夜之间被打破。但是,如果商业云供应商继续开发项目而不给予回报,他们就会削弱那些帮助开源取得如此成功的激励措施。杀鸡取卵不符合他们的利益,当然也不符合开发商和客户的利益。