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 在某種意義上取得了成功。

那麼問題來了,你選擇OpenSearch 還是Elasticsearch?

#AWS #從Elastic搶來的開源替代品OpenSearch成功了嗎 #程式开发

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *