2013年,Cloudera联合创始人Mike Olson自信地(并且准确地)宣称了“企业基础设施领域的一个惊人且不可逆转的趋势”。什么趋势?“在过去10年里,没有一个主导的平台级软件基础设施以闭源、专有的形式出现。”
现在,有人说,基于云的企业数据平台Snowflake可能意味着这一进程的结束。
我们曾经有过Splunk,但正如Lightspeed的合作人Gaurav Gupta告诉笔者的那样,Spunk在开源找到立足点之前就过了炒作期。MySQL、ApacheHadoop、MongoDB、ApacheSpark……所有这些(至少最初)都是开源的。
现在有了Snowflake。它会是很快就销声匿迹的雪花吗?还是它意味着开源基础设施的时代即将结束?
在一定程度上,这个问题的答案取决于你怎么看。毕竟,不是所有“主导的平台级软件基础设施”都是开源的。这并不是要反驳Olson的观点,因为在过去10到20年中,大部分企业基础设施都趋向于开源,这是绝对正确的。
正如Gordon Haff所说:“你当然可以歌颂由开源驱动的基础设施,大多数NoSQL、Hadoop、Kafka、Spark、Ceph、Jupyter等。但是这个领域中的很多东西都不是很好:许多云服务、Tableau、Splunk等。” 当然还有Snowflake。
实际上,开发人员对开源的虔诚是情有可原的。这种“惊人”趋势的原因很简单,开源使开发人员更容易完成工作,这要归功于高质量、易于访问的开源数据基础设施。当然,还有其他的好处,比如经常伴随着开源项目的社区总是有着对软件栈更细粒度控制的渴望。最终开源还是赢了,因为它使开发人员能够“做成事”。
这就是为什么,你会发现开发人员乐于使用开源软件(如Apache Airflow)将数据加载到专有的Snowflake数据平台中。这不是认知失调。这是实用主义。
向托管服务的转变
谈到这种实用主义,Tom Barber认为,向托管云服务的转变在某种程度上否定了“人们对开源的兴趣。因为使用SaaS,你不需要为许可付费,而是为服务付费,这在一定程度上改变了人们的想法。”毕竟,他继续说,“开源意味着你不需要支付许可费,但是你仍然需要支付内部或外部人员的费用来安装、调优、运行它。大多数人都可以用apt/yum安装MySQL,但调优需要深入的知识。”
或者让我们用另一种方式来表达这一点,正如Redmonk分析师James Governor所说:“云是一种比开源更好的分发和打包机制。便利是杀手级应用。托管服务会赢。”
或者,正如Olson所说,“我仍然相信开源软件可以提供战略优势。但是‘消除摩擦’并不是十年前看起来的差异化优势。聪明的人学到了这一课。云中的专有基础设施非常易于获取和使用。”
这并不是说开源是无关紧要的。“开源不是一种商业模式,但它是建立软件、建立信任和培养社区的一种很好的方式。”Governor继续说道。
这种“构建软件的好方法”也适用于SaaS供应商,如Snowflake。虽然像Snowflake这样的服务可能不是开源的,但正如Gordon Haff表示的那样,他们在幕后积极使用开源。例如,Snowflake依赖开源基础数据库作为“我们架构的一个关键部分(因为它允许我们构建一些真正令人惊叹和与众不同的功能)”。
2019年的一项Whitesource分析发现,99%的软件包含开源——开源仍然很重要。
幕后的开源
但对于Snowflake等服务的潜在买家来说,开源可能不是主要的吸引力。正如Ken Horn所说,数据,而不是源代码,才是Snowflake这类事物最关键的部分。“一旦上云,整个开源软件就靠边站了。”
对于Snowflake和其他提供数据仓库和类似服务的供应商来说,并不会“靠边站”,因为开源为他们提供了一个机会,让他们可以在一个由开源基础构件块组成的丰富生态系统上做点什么。但对于潜在的买家来说,他们只需要“做成事”,这可能意味着他们不想做与开源相关的基础工作。
那么,Olson2013年的宣言是错的吗?没错,但也许我们可以换个说法:在过去10到20年中,没有任何主流的平台级软件基础设施以闭源、专有的形式出现——既不是开源软件,也没有严重依赖开源软件。