为何免费开源?

免费开源是我们社区和业务的一大优势,同时也是我们从事所有工作的核心所在。下面就是原因。

从寥寥几百次跃升到数以亿计

根据 DB-Engines 的排名数据,Elasticsearch 从 2010 年寥寥数百次的下载量一跃成为如今市场上最受欢迎的搜索引擎,究其原因,开源功不可没。由于 Elasticsearch 免费开源,这就降低了用户的准入门槛,采用率也实现了飞跃式增长。

然而,免费开源不仅仅是分发软件的一种有效方式,还是开发优秀产品的有效方式。每一次下载都是项目得以改进和发展的机会。由于用户会仔细研读代码,所以安全性随之得到了大幅提升。因为产品需要在各种各样的架构和环境中经历严苛测试,所以可靠性和弹性也越来越高。随着用户尝试新用例,并构建各种集成、附加组件、插件和框架来扩展这一项目的应用范围,产品的可扩展性也得以提升。

如果不采用免费开源方式,而是藏着掖着,直到代码完善后才推出产品,那么像 Elasticsearch 这样的项目定不能取得如今的成就。我们之所以能够成功,是因为我们将产品放到免费开源的孵化器中,并让产品随着每一次的下载自然演化。

有利于社区和协作

开发软件固然很好,然而如果能围绕软件创建一个社区,岂不更进一步。通过提供免费开源软件,人们就在第一次下载中形成了社区。随着第一次下载,开发人员和用户通过论坛或 IRC 也就有了首次直接交流,接下来难免会产生疑问或者有所发现,然后就有了第一个公开问题,随后就提交了第一个拉取请求,最终就产生了第一个改进或增强版本。通过所有人的努力,他们可能修复了一个漏洞,或者更正了文档中的一个错别字。无论贡献大小,由于大家的通力合作,软件正在变得越来越好。现在,不妨设想一下在数百万次的下载之后,这一过程会产生怎样的丰硕成果。

由于所有人使用的都是相同的代码,所以我们的产品通过类似物竞天择的方式实现成长,也就是某些人所说的 BDFL(终身仁慈独裁者)方法。当然,在社区内可能会出现某个功能的多个版本,不过别担心,只有一个精心遴选的小组可以对采纳哪些内容作出最终决定。这意味着我们的功能并不是随便添加的,只有那些可让产品更稳健、更卓越的功能,我们才会将其纳入。

现在,维护一个如此大规模的社区所需的工作量豪不逊色于维护代码的工作量。多年以来,我们也从中受益匪浅。我们学习到了创建一个友好和谐社区的重要性,务必要真诚地对待每位新加入的成员。而且,我们还学到了必须真正倾听每个人的声音(即使有些请求极端对立,我们也必须同等对待)。我们依然在且行且学。

取得全新成就

在最初阶段,人们普遍认为 Elasticsearch 虽然是一个很好的搜索引擎,但却只适用于企业搜索。但是由于我们免费开源,所以用户可以轻松地将产品应用引领到一个新的方向。

举个例子,Jordan Sissel 和 Rashid Khan 都是系统管理员,虽然这两位之间隔着美国的好几个州,但他们却在想着同一个问题:如果将日志文件发送到 Elasticsearch 并尝试对日志文件进行可视化,结果会怎样呢。思想的火花在交流中碰撞出了数据采集管道 Logstash,以及可作为可视化引擎的 Kibana,而且还开始出现了新用例(日志),之后更是发展成了优于单独产品的软件堆栈。

尽管 Monica Sarbu 和 Tudor Golubenco 远隔重洋,但都在思考如何将网络包数据从边缘机器发送到 Elasticsearch。然后二人开发了恰恰可以实现此功能的 Packetbeat。这也启发我们之后开发了一系列适用于多种数据类型的轻量型数据采集器,即 Beats。

而且这一模式还在继续,出现了众多由社区开发以及灵感汲取自社区的功能、扩展、插件、附加组件和用例。从 Machine Learning 到自然语言处理、应用程序性能指标和色彩分类、安全事件和博客 KPI,无所不包。

还没有来得及想象如果一千个人基于同一个代码库进行创新的话,结果会怎样,我们就已经看到结果了。

我们的免费开源模式

在免费开源的基础上发展业务有其独特的挑战,我们也从其他公司的发展中吸取了经验教训。

有些开源公司采取只提供支持服务这一业务模式来进行创收。我们认为这种方法会将公司利益和用户利益置于完全对立的位置,一方的成功建立在了另一方的痛苦之上。这种方法缺乏相应的激励机制来鼓励公司开发易于使用的产品或赋能客户取得成功,因为公司的创收源于客户不断遇到问题并寻求支持。

有些开源公司则在原始开源项目的基础上提供商用(或“企业”)产品。我们认为这一业务模式会让项目代码和社区走向分化,而且也会逐渐削弱社区的信任感,限制产品测试,进而降低产品质量,并最终影响到早期通过开源软件实现的业务效率。

所以,我们公司采用的运营模式截然不同。我们的目标是,通过单一的开源软件堆栈在免费开源和商用代码之间取得健康平衡,此外还会提供支持和服务。我们要通过我们的所有产品为用户创造巨大价值,这样他们才有充分的理由投资于我们的产品和服务。因此,我们能够开发出方便易用且性能可靠的产品,让用户获得熟练技能和广博知识,同时我们能成长为一家成功的公司。

我们的成长战略是“开发优先”,而不是“单纯开发”

通过这种方式,我们的代码能够实现有机进化,产品在企业内的采用率也会取得有机增长。通常情况下,首先会有一个“零号开发人员”,在尝试过我们产品后,感觉很不错。然后会有越来越多的同事使用我们的产品,很快就将小型的概念验证项目转化为大型部署项目,为任务关键型系统提供支持。

最后,决策者或高管注意到了这一点,并作出是否需要正式投资于 Elastic 的决定。他们购买工具时会考虑诸多因素,首先工具必须能够创造价值,有助于业务更高效地运营,而且恰好也是组织内的所有技术开发人员都希望使用的工具。

价值才是决定性因素。尽管开源是最初促使客户采用产品的原因,但只有价值才是吸引他们投资的动力。Elastic 正是由于做到了这一点,才能从单一的应用程序搜索项目不断扩展,能够用于处理日志用例、威胁猎捕项目或应用程序性能监测项目,等等。

OFL:终生开源

我们坚信免费开源的力量,并会在这一领域一如既往地持续投入。很多企业在业务规模变大之后会变得趋于封闭,而我们不会如此。我们已经做出明确的选择,要继续保持更加积极开放的模式,让我们的业务激励机制与开源社区结合的更加紧密。

正因为如此,我们开放了专有 Elastic Stack 功能的源码(之前以 X-Pack 的名称组合在一起)。将开源项目做到如此程度,可消除多余的开销及复杂性,加快开发速度,并提高整个社区范围内的参与度。

这也是我们对 Elasticsearch 和 Kibana 采用双重授权许可(即 SSPL + Elastic 许可证)的原因。这就使得我们在全力投入创新的同时,也能够保障用户和客户以免费开源的方式访问我们的代码。

免费开源之路并不会一帆风顺。但我们坚信这是开发软件的最佳途径,更是确保我们的产品、公司和社区持续取得成功的不竭动力。

深入了解 Elastic

探索 Elastic 的方方面面,了解我们开发的产品,我们恪守的价值观,以及我们如何致力于社区的整体发展。

我们的客户

我们的客户

了解这些公司在日常工作中如何使用 Elastic。

我们的企业文化

我们的企业文化

获悉我们的最新动态。

我们的产品

我们的产品

查看我们开发的产品。