谁动了开源软件公司的奶酪?
一直以来,因开源项目的丰富、易获得,在修改、使用方面有非常宽松的协议约定,因此在国内催生了大量基于开源软件进行二次开发,推出商业化解决方案的软件公司,但是这些享受免费午餐的公司,现在都面临着一个尴尬的处境,它们将与开源项目背后的商业公司展开直接的竞争。
我们都知道,开源也是一种商业模式,很多公司通过开源,快速提高市场知名度,获取用户群的同时也得到很多社区的反馈,完善其产品,最终目的是通过为开源使用者提供咨询和技术支持服务获利,或者以开源软件获取销售线索,通过售卖有更多功能的收费版获利。很多著名的开源软件都由国外的商业公司运营,当这些商业公司进入中国市场,国内基于这些开源软件进行二次开发的商业公司都成了它的竞争对手。基于开源软件二次开发从而与提供开源软件的商业公司竞争,这从商业逻辑上就讲不通。一些商业公司的开源软件的许可证写明开源软件不得用于商业用途,就是为了未来能够从自家的开源软件获取收入。
《纽约时报》近日的一篇文章报道, AWS“露天开采”开源软件惹众怒:7 家开源厂商准备诉讼 算是给国内利用开源软件二次开发的厂商敲响了警钟。文中提到亚马逊被指控利用开源公司提供的开源技术,推出该服务的自家版本。文中的七家开源公司(包括 Elastic、MongoDB、MariaDB、RedisLabs 等开源公司)在国内都有活跃的社区和大量的用户群。对于推出 Elasticsearch 自家版本(Open Distro for Elasticsearch)的理由,AWS方面声称,由于Apache 2.0 许可证,Elasticsearch 对于全球各地用户越来越重要,但从 2018 年 6 月以来,Elasticsearch 很多专用代码被混入代码库,且没有明确说明,客户可以使用哪些代码极其不明确,如果误使用了专用代码并做了更改,会导致违反许可证,因而丧失使用该软件的使用权利。
Elasticsearch 是一个开源项目,除了遵守 Apache 2.0 开源许可协议,它将部分特性的部分代码,声明为商业的 Elastic license 。但是这个声明只在源代码里,并不写到文档中,比如从 https://github.com/elastic/elasticsearch/tree/master/x-pack/plugin 里可以看到,Elasticsearch 这一两年来更新的重大功能,cross-cluster replica、enrich pipeline、frozen indices、transforms、index life management、rollup、SQL、voting only node、search profiler、S3 archiver、security、watcher、graph、monitoring等等,基本全都是声明为 Elastic license 的。这也就是 AWS 所提到的专用代码混入代码库的问题,这个问题对于使用 Elasticsearch 进行二次开发的厂商来说,如同达摩克利斯之剑,而剑柄就握在开源厂商的手里。可以说,这些厂商的产品和其用户随时面临着巨大的商业不确定性风险。
Elasticsearch 项目是由美国的一家开源公司 Elastic 发布的,其推出的 ELK Stack 组合,包括 Elasticsearch、Logstash、Kibana、Beats 等几个开源产品,都使用了双协议(Apache2.0和Elastic license)。ELK 在中国国内被大量用户用于日志分析场景,因此很多国内厂商基于 ELK 构建了日志分析产品及解决方案,并将其出售给客户。Elastic 已经在 2018 年上市,可能因其商业模式上的问题(很多公司用它开源的技术抢占它的目标市场),其今年的股价远落后于美股高科技指数,这反映了市场对其盈利能力的担忧,资本市场的倒逼势必加快 Elastic 商业化进程。上市后,Elastic 也加快了在中国市场的商业拓展,这对于基于 ELK 进行二次开发的厂商来说,绝对是个坏消息,ELK 的免费午餐还能持续多久?
很多厂商已意识到这个问题,并开始加强自主研发。早在 2015 年,日志易就看到了开源软件存在的这种不确定性风险,因而开始研发专门针对日志的搜索分析引擎 Beaver,并于 2018 年正式发布,目前已经做到自主可控。
事实上,使用开源软件的风险还远不止这些,在谷歌宣布对华为停止提供安卓系统的技术支持和服务后,开源代码托管平台 GitHub 和非赢利公司 Apache 基金会均声明受美国出口管制约束,国内各界开始重新审视开源项目的法律约束问题。
中国开放指令生态(RISC-V)联盟(英文缩写为 CRVA )曾发布权威报告《开源项目风险分析与对策建议》,其指出因为代码托管平台会受到出口管制,因此存在这些代码托管平台的开源项目仍然会受到出口管制的影响。我们知道 GitHub 是全球最大的开源代码托管平台(很多国内广泛使用的开源项目,其代码都存放在 GitHub 上,包括前文提到的 ELK ),因此企业在选择国外开源项目时,也需慎之又慎。
归根结底,提升自主研发能力,才是软件企业取得成功的必由之路,居安思危,与君共勉。