在过去的几十年里,开源一直在上升。从小型初创公司到大型企业,开源现已成为软件开发过程的重要组成部分。虽然开源通常被认为是专有软件的免费替代品,但它实际上远不止于此。
在本文中,我们将探讨开源如此成功的原因,它没有那么成功的领域,以及开源和免费软件层之间的差异,并更深入地了解数据基础设施行业。
开源如何蚕食软件
“开源”一词最早是由 开源促进会(OSI)于1998年创造的。从那时起,开源就占领了软件世界。Unix被Linux取代,Oracle DB被Postgres和MySQL取代,Bigkeeper被Git取代,甚至VS代码也已成为IDE标准。根据 Linux 基金会 2020 年的一份报告,开源软件增长如此之快,以至于超过 96% 的全球组织现在都在使用它,而且这个数字还在逐年增加。在 GitHub 2020 年的一项调查中,98% 的受访者表示他们使用开源软件,96% 的受访者表示他们为开源项目做出了贡献。
正如 a16z所说,随着软件吞噬世界,开源一直在吞噬软件。开源取得重大进展的最值得注意的领域之一是数据基础设施行业。 Hadoop, Spark, Kafka, Airflow, Grafana, Kibana, Metabase等工具已被公司和组织广泛采用,用于大数据处理和分析。
让我们深入解释开源成功背后的原因。
为什么开源如此成功
开源非常成功的原因有很多。
控制力、灵活性和敏捷性
主要原因之一是控制,这是指开源提供的 灵活性 和 敏捷 性
加速价值实现
开源软件通常比专有软件更容易启动和部署。它通常部署和托管在公司的服务器或虚拟私有云中,这使开发人员能够避免经历漫长而繁琐的安全合规流程。由于没有预算验证流程,这一点也得到了加强,因为开源软件不收费。
开发人员可以在发现技术的那一天就开始测试它。相比之下,由于这些安全合规性和预算验证障碍, 开发人员可能在几个月内无法访问专有软件。
更好的可靠性和安全性
开源软件往往更可靠、更安全有几个原因。
首先,它部署在公司的基础设施中。这意味着公司可以完全控制其数据。
然后,直接访问代码使团队能够直接查找任何潜在问题,而无需依赖优先级可能与其公司的优先级不一致的外部方。
最后但并非最不重要的一点是, 社区驱动的 开发模式允许更多的反馈、贡献,最重要的是信任。它允许多个参与者参与的快速迭代周期,并且一切都是版本控制和透明的。这提高了产品的质量和可靠性,因为问题可以更快地修复,功能添加得更快。
这使得开源软件比专有软件更可靠、更安全。
加速创新
开源软件往往看到更高的创新速度,这要归功于所有社区的贡献。这种速度的另一个原因实际上是一个经常被忽视的点:开源也 吸引了技术人才,因为 大多数工程师 更喜欢开源工作并重视开源理念。更强大的团队可以更快更好地创新。
无供应商锁定
推动开源采用的最后一个方面是,专有软件总是带有一些锁定方面,这使得公司在需求得不到满足的情况下很难从一种解决方案切换到另一种解决方案。使用开源,如果您对开源解决方案的付费版本不满意,您可以回到托管开源版本;您不会被锁定在该付费解决方案中。
开源不成功的地方
虽然有些行业开源已经成为常态,但有些行业还没有受到影响。以下是所有(尚未)使用它的行业共有的一些标准:
开源技术的用户不是技术人员
开源软件的采用主要是由被代码的可访问性和可见性所吸引的工程师推动的。 这解释了为什么在营销、销售和财务工具中缺乏开源的采用。
用例之间缺乏重叠,需要太多的可定制性
开源可能出现的另一个问题是所解决的用例需要太多的可定制性,这意味着每个公司都将该软件用于不同的用例。虽然开源非常适合满足自定义需求,但由于用户可以访问代码本身,缺乏共同点将难以构建有价值的一刀切的基础。
用户配置文件和贡献者配置文件之间没有重叠
开源面临的另一个挑战是开发人员社区和用户社区之间缺乏重叠。在许多情况下,开源软件的潜在贡献者与使用该软件的人不同。这限制了社区的贡献潜力。如果开发人员使用开源软件,他们就会非常积极地使开源软件工作。让该软件为他们的公司工作实际上成为他们工作的一部分。
有人可能会争辩说,这个标准更能表明一个项目的社区贡献潜力。
不是已知问题
最后,如果开源软件解决的问题不为人所知,它的采用率就会减少,因为它需要大量的市场教育才能取得成功。例如,物联网、边缘计算和许多其他领域的开源解决方案仍然相对较新,行业成熟和用户了解开源的好处需要时间。
另一方面,例如,生成和收集日志是一个非常古老的问题,这可能是OpenTelemetry成为 CNCF生态系统中速度第二高的项目的一个很好的原因。几乎任何公司都面临数据集成挑战,因此没有必要对这种开源解决方案提供的价值进行教育。
对于所有开源不成功的行业,我们看到了很多免费套餐的采用。在不考虑受众差异的情况下,让我们看看他们如何比较。
开源与免费套餐有何不同
开源软件通常被认为是专有软件的免费替代品,但重要的是要了解开源与免费层不同。如上所述,开源在几个关键方面提供的不仅仅是免费套餐:
- 控制和可定制性: 开源不仅可以免费使用,还可以免费修改、分发和共享。
- 参与社区以提高可靠性和创新速度: 开源社区比自由用户社区更具参与度。与免费套餐相比,这导致产品更加强大和稳定,免费套餐可能没有相同级别的支持和维护
免费套餐比开源更方便的一次是当主要关注的是 可访问性时,当不需要安全合规性时。
因此,决定是使用免费层还是开源解决方案将取决于项目的特定需求。
如果一家公司刚刚起步,想要在不签订长期合同的情况下测试一项技术,那么免费套餐可能是最佳选择。但是请记住,免费套餐 – 就其本质而言 – 旨在提供一组有限的功能,希望吸引您进入具有更大规模和灵活性的付费版本。
因此,如果一家公司需要更高级的功能集、更多的可定制性和来自大型开发人员社区的支持,开源可能是更好的选择。此外,如果公司有特定的安全性或合规性要求,开源解决方案可能更容易合规,因为代码是透明的并且可以进行审计。
重要的是要考虑每个解决方案的标准并权衡利弊,以确定哪一个最适合特定项目或用例。
数据基础设施行业呢?
在数据基础架构行业中,根据问题的不同,开源或免费层可能更适合。
数据仓库
例如,在 数据仓库方面,免费套餐可能是最佳选择。许多供应商免费提供其数据仓库的有限版本,这可能是入门和测试技术的好方法。这允许最终用户尝试不同的数据仓库解决方案,而无需签订长期合同或支付全功能版本的费用。
数据可视化
另一方面,在 数据可视化方面,免费套餐可能不是最佳选择。数据可视化通常是数据分析和决策的关键部分,免费版本可能不具备公司推动正确决策所需的所有特性和功能。在这种情况下, Apache 预设 等开源解决方案可能是更好的选择,因为它们提供了广泛的功能、灵活性和可定制性。
数据编排
业务流程用户通常非常需要自定义,因为他们可能希望触发自定义 Python 作业或其他第三方工具上的作业。有限的免费套餐会阻止用户获得 Airflow、Dagster 和 Prefect——都是开源的!
数据集成,特别是 ETL
虽然大多数连接器对许多公司来说都很常见,但大多数公司也有定制连接器需求。
此外,免费层很可能在数据量方面受到限制,您可能希望针对大型数据源(如数据库)测试解决方案,以了解该 ETL 解决方案在高容量下的性能。免费套餐无法帮助您解决这些问题。
这使得数据集成成为开源蓬勃发展的另一个行业。
结论
总之,开源不仅仅是一个免费层。虽然免费套餐是入门和测试新技术的好方法,但开源解决方案提供了更多的控制、灵活性和社区支持。它们也更有可能在可定制性和适应性很重要的领域采用,例如可视化、编排和 ELT 流程。在数据基础设施行业,只有数据仓库部分还没有被开源吃掉。