AWS 从 Elastic“抢”来的开源替代品 OpenSearch,成功了吗?


2021 年初,开源搜索和数据分析引擎 Elasticsearch 背后的母公司——Elastic 宣布变更 Elasticsearch 和 Kibana 的开源许可证,将原本的 Apache License 2.0 变更为双授权许可,即 Server Side Public License (SSPL) + Elastic License,两者都不是符合 OSI 定义的开源 License。

SSPL 是 MongoDB 设计的许可证,它基于 GPLv3,被认为是 Copyleft License,其核心条款是 “如果将程序的功能或修改后的版本作为服务提供给第三方,那么必须免费公开提供服务源代码”。

Elastic License 是非商业许可证,核心条款是如果将产品作为 SaaS 使用则需要获得商业授权。

当时 Elastic 公司称此举主要是限制云服务提供商(如 AWS)在没有回馈的情况下将 Elasticsearch 和 Kibana 作为一项服务提供给他人使用,以保护 Elastic 在开发免费和开放产品方面的持续投资。但变更许可证也意味着 Elasticsearch 和 Kibana 不再是真正的“开源软件”(OSI 定义的开源)。

145324_tHsk_2720166.png

随后,AWS 宣布创建了一个自称真正开源的 Elasticsearch 分支——OpenSearch,并获得了包括红帽、SAP、Capital One 和 Logz.io 等在内的多个组织和厂商的支持。

135104_sTkQ_2720166.png

OpenSearch 是一个由社区驱动的开源搜索和分析套件,包括企业安全、异常检测、告警、机器学习、SQL、索引状态管理等功能,fork 自 Apache License 2.0 许可的 Elasticsearch 7.10.2 和 Kibana 7.10.2。它由一个搜索引擎守护程序 (OpenSearch)、一个可视化和用户界面 (OpenSearch Dashboards) 以及 Open Distro for Elasticsearch 的高级功能组成。

AWS 介绍称,他们推出的 OpenSearch 删除了 Elasticsearch 中受 Elastic 商业许可证限制的功能、代码和商标,以兼容 Apache License 2.0,自称这是每个人都可以构建和创新的基础,任何人无需签署 CLA (Contributor License Agreement) 即可为项目贡献代码。

当时有人认为 AWS 的行为是在赤裸裸地 “抢劫” 开源项目,但也有人认为 Elastic 从最初的变更开源协议,到后面限制用户正常使用客户端,不仅违背了开源精神,更是有拿用户当做筹码的意味。

现在距 OpenSearch 诞生已经两年了,这个基于 Elasticsearch 的开源分支取得了怎样的成绩?

根据 OpenSearch 年初发布的年度报告,截至 2022 年底,OpenSearch、OpenSearch Dashboards 和客户端库的总计下载量已突破 1 亿,共有 496 名贡献者提交了 8760 次 PR。

BigData 博客近日也对 OpenSearch 和 Elasticsearch 进行了详细的对比,对比项包括 repo 的提交数量、功能、许可证和限制等

他们计算了自 2021 年 4 月 22 日以来两者在 master/main 分支上所做的提交(统计数据于 2023 年 4 月收集)。统计结果显示,Elasticsearch 仓库有将近 2 万次提交,其中 6 千次提交到 Elasticsearch 核心("server"文件夹),还有一些提交到附属模块。

# total commits in repo since fork
➜elasticsearch git:(master) git log --oneline --all --since='Apr 22 2021' | wc -l
19527
# total commits to the main codebase (server folder) since fork
➜elasticsearch git:(master) git log --oneline --all --since='Apr 22 2021' -- server/ | wc -l
6130
# total commits to main modules (various surrounding functionality not under x-pack) since fork
# https://github.com/elastic/elasticsearch/tree/main/modules
➜elasticsearch git:(master) git log --oneline --all --since='Apr 22 2021' -- modules/ | wc -l
1437
# just as means of comparison, the amount of work made on x-pack features is not negligible
➜elasticsearch git:(master) git log --oneline --all --since='Apr 22 2021' -- x-pack/ | wc -l
7294

对比 OpenSearch,它提交到核心的代码量少 3 倍以上,重要模块则减少约 14 倍,这些模块包括脚本语言、重新索引功能、提取管道处理器等。

➜OpenSearch git:(main) git log --oneline --all --since='Apr 22 2021' | wc -l 
3727
➜OpenSearch git:(main) git log --oneline --all --since='Apr 22 2021' -- server/ | wc -l
1966
# total commits to main modules (surrounding functionality not under x-pack) since fork
# https://github.com/opensearch-project/OpenSearch/tree/main/modules
➜OpenSearch git:(main) git log --oneline --all --since='Apr 22 2021' -- modules/ | wc -l
470

因此,与 Elasticsearch 发布的版本(主要和次要)相比,OpenSearch 发布的版本更少。

功能方面,OpenSearch 和 Elasticsearch 在基本功能和性能上没有太大的差异。虽然 Elasticsearch 提供了更丰富的功能,但需要客户额外付费,某些类似功能 Elasticsearch 收费 OpenSearch 则免费提供。

企业采用方面,Adobe 决定在 Adobe Commerce 套件中用 OpenSearch 取代 Elasticsearch。此外,OpenSearch 已进入 DB-Engines 数据库流行度排名前五十。

因此有观点认为,基于 Elasticsearch 的开源分支 OpenSearch 在某种意义上取得了成功。


上文提到了对 Elasticsearch 和 OpenSearch 各自 repo 的提交数量进行对比,该数值从某种程度上反映了项目的活跃情况,但整体来看比较片面。

下面是通过 OSS Compass 对 Elasticsearch 和 OpenSearch 进行对比的结果,数据范围选择了最近 2 年。

开源指南针 OSS Compass 是一个开源生态健康评估平台,它提供了公开的 SaaS 服务,只需输入 GitHub 或 Gitee 托管平台上的仓库名称或社区名称,即可全面展示该仓库或项目的健康状态,使用简单,高效便捷。

OSS Compass 目前构建了一个包括生产力、稳健性、创新力三个维度,涵盖 14 个指标模型在内的开源生态评估体系。

可以看到,OpenSearch 和 Elasticsearch 的协作开发指数非常接近,这说明双方的贡献者数量和代码提交频率不相上下。但对于社区服务与支撑、项目活跃度以及组织活跃度这些评估指标,OpenSearch 明显落后于 Elasticsearch。

点此查看 OSS Compass 的完整对比结果

最后问题来了,你选择 OpenSearch 还是 Elasticsearch?


相關推薦

2022-09-01

Ubuntu 开发商 Canonical 宣布已加入 OpenSearch 社区。 OpenSearch 是 AWS 主导的 Elasticsearch 分支,采用了 Apache License 2.0。AWS 介绍称,他们推出的 OpenSearch 删除了 Elasticsearch 中受 Elastic 商业许可证限制的功能、代码和商标,以兼容 Apache Li

2023-03-04

OpenSearch 2.6 已正式发布。此版本新增了按照 OpenTelemetry 标准构建的数据模式 (data schema),为分析和可观察性用例的未来功能进行了铺垫。此外还升级了索引管理、改进了安全分析工作负载的威胁检测,并为可视化工具、机器学习

2022-06-04

OpenSearch 2.0 现已正式发布!此版本融合了来自整个 OpenSearch 社区的用户反馈和贡献,以提供大量新功能和性能增强。我们非常感谢社区为构建分布式搜索和分析工具集而做出的协作努力,这些工具集具有开发人员可以依赖的功能

2023-05-07

OpenSearch 2.7.0 已准备好下载!最新版本的 OpenSearch 为搜索、分析、可观测性和安全性应用程序提供了一系列新功能,并对管理和可用性进行了重大增强。此版本还标志着之前作为实验性发布的几个主要功能的正式发布 — 我们希

2022-05-26

剪贴板,甚至从页面中删除链接或图像。 高级搜索与 OpenSearch 兼容 OpenSearch 是一个开源的 Elasticsearch 分支。在 GitLab 15.0 之前,高级搜索与 OpenSearch 不兼容。如果你使用 AWS 托管服务,则必须使用旧版本的 Elasticsearch;现在则

2022-10-10

ouse duckdb/duckdb elastic/elasticsearch eventql/eventql greenplum-db/gpdb opensearch-project/OpenSearch prestodb/presto StarRocks/starrocks trinodb/trino uber/aresdb 数据存储 apache/avro apache/bookkeeper apache/carbondata apache/hadoop-hdfs apache/hudi apache/iceberg apache/incubat

2022-07-01

各位 Elasticsearch 用户,如果你使用的 Elasticsearch 是直接从官方下载,并且是 6.3 之后的版本,那么按照 Elastic License 的条款,你很可能已经违反了使用许可,Elastic 公司会保留追究权利。  2021 年 1 月,Elastic 公司宣布将采用 Ap

2024-08-14

类似。如果希望将搜索产品扩展为 RAG 产品,那么 ES 和 OpenSearch 是最佳选择之一。   在这方面,火山引擎云搜索服务提供了兼容 Elasticsearch/OpenSearch 的托管在线分布式搜索解决方案。早在 2022 年 4 月上线时,这项服务就

2022-11-02

今天,最新版 Elastic 8.5 正式上线,为 Elastic Search Platform 及其三个内置解决方案(Elastic 企业搜索、Elastic 可观测性和 Elastic 安全)引入了一系列新功能。 新增功能 Elastic 企业搜索是通过 Elasticsearch 实现强大的现代搜索和发现

2022-05-27

Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 基于 Java 开发,并在 SSPL + Elastic License 双重授权许可下作为开源软件发布。 Elasticsea

2022-03-19

AlmaLinux OS Foundation 了四名新成员的加入,包括 Sine Nomine Associates、BlackHOST、Knownhost 以及最引人注目的 AMD。 新成员对 AlmaLinux 的发展方向有发言权,可以投票支持其他成员并被其他成员投票选入董事会。“新成员提供的资源使 Alm

2023-11-15

Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 基于 Java 开发,并在 SSPL + Elastic License 双重授权许可下作为开源软件发布。 Elasticse

2022-09-16

OpenSearch 2.3 已正式发布。公告写道,此版本在性能、数据持久性和可用性方面获得了显著改进。 OpenSearch 项目由 OpenSearch (fork Elasticsearch 7.10.2) 和 OpenSearch Dashboards (fork Kibana 7.10.2) 组成,包括企业安全、告警、机器学习、SQL、

2022-11-17

OpenSearch 2.4.0 已正式发布。公告写道,此版本带来了对 Windows 的支持、安全分析、新的地理空间功能,以及针对搜索、分析和可观测性用例的多项升级。 OpenSearch 2.4.0 是 2022 年的最后一个次要更新版本,它扩展了 OpenSearch 项目工