視野 OpenSearch,雲廠商的新選擇?

2022-09-09 13:51:29 字數 4108 閱讀 5014

王奇 顧問軟體工程師

目前從事 paas 中介軟體服務(redis / mongodb / elk 等)開發工作,對 nosql 資料庫有深入的研究以及豐富的二次開發經驗,熱衷對 nosql 資料庫領域內的最新技術動態的學習,能夠把握行業技術發展趨勢。

elasticsearch 是一款廣泛使用的開源分布式全文搜尋引擎,源於 apache lucene[1],許可證為 apache 2.0。由於出色的搜尋引擎、高擴充套件性和豐富的統計分析能力,深受使用者喜愛。

基於 lucene 的 elasticsearch

2010 年開源的 elasticsearch 隨著全球搜尋引擎業務的飛速發展,也變得更加流行。在國內外積累了大量的核心使用者並受到社群的強烈歡迎。根據 db-engines[2] **對於 search engine 類資料庫的流行度趨勢統計,2016 年至今 elasticsearch 始終保持第一。

search engine 流行趨勢

elastic 成立於 2012 年,是很多來自矽谷的開源軟體獨角獸公司之一。elasticsearch 的成功離不開 elastic 公司的成功運營。隨著雲計算技術的不斷發展壯大,以 aws 為首的雲廠商saas 模式趨於火熱,越來越多的使用者願意接受 saas 模式。部分雲廠商將開源產品以服務的方式發布並盈利,但並未回饋開源。

elastic 公司在這樣的背景下,決定有針對性的修改了許可授權,各大雲廠商們面臨在非授權的情況下,將無法繼續更新 elasticsearch 版本的困境(舊版本不影響)。

elasticsearch 版本協議說明

aws 沒有選擇與 elastic 合作,而是在 2019 年開始嘗試新的可能。2021 年 aws 正式開源了基於 elasticsearch 的 opensearch 專案,並在 aws 商店正式推出了 opensearch[3] 服務來取代原有的 elasticsearch 服務。

這一系列事件,對全球雲廠商對開源軟體的使用也許會產生深遠的影響。接下來我們梳理一下整個事件的時間線。

2010 年 2 月

elastic 發布了 elasticsearch,源於 apache lucene,許可證為 apache 2.0。

2018 - 2019 年

elastic 修改了 kibana(配套視覺化工具) 和 elasticsearch 的開源協議( alv2 -> sspl & elastic 雙授權),意味著 7.10.2 版本後不再提供開源版本。

2019 年 3 月

aws 推出 open distro for elasticsearch(opensearch 的前身),乙個 100% 的開源發行版。

2021 年 4 月

aws 宣布推出 opensearch 專案,基於 7.10.2 版本建立分支,並重構了所有 odfe 外掛程式與 opensearch 配合使用,odfe 在 1.13 版本結束。

2021 年 9 月

aws 將 aws electicsearch service 服務更新為 aws opensearch service。

事件中,以 elastic 公司修改開源協議為重要轉折點。

elv2:由 elastic 制定的源**許可。該協議適用於 elastic 的分發版以及 elasticsearch 和 kibana 所有免費和付費功能的源**。elv2 的目標是在盡可能寬鬆的情況下防止濫用。該許可允許免費使用、修改、建立衍生作品和重新分發,但有三個基本的限制條件:

sspl:由 mongodb 制定的源**許可。針對雲服務提供商做出了限制,即要求雲服務提供商在未對專案做出貢獻的情況下,不得發布自己的開源產品即服務。sspl 允許使用者以自由且不受限制的方式使用並修改**成果,唯一的要求是:如果將產品以作為一種服務進行交付,那麼必須同時公開發布所有關於修改及 sspl 之下管理層的源**。

elastic 公司決定修改開源協議,並不會對個人使用者使用造成影響,只會限制雲服務廠商將開源產品轉化為軟體即服務的形式。對於沒有獲得授權的雲廠商來說,除了提供到最後乙個開源版本的 elasticsearch 服務之外,就需要開始考慮其他替代方案了。

目前各大雲廠商主要採取的如下兩種方案:

plana -與 elastic 達成商業授權協議,深度合作。

planb -未獲得商業授權的雲廠商,繼續使用基於 alv2 協議下的 elasticsearch 的開源(oss)版本,並嘗試尋找新的替代方案。

opensearch 是乙個社群驅動的開源搜尋和分析套件,源自 apache 2.0 許可的 elasticsearch 7.10.2 和 kibana 7.10.2。它由乙個搜尋引擎守護程序 opensearch 和乙個視覺化和使用者介面 opensearch dashboards 組成。opensearch 使人們能夠輕鬆攝取、保護、搜尋、聚合、檢視和分析資料。

opensearch 官網專案早期,open distro 的核心仍然是普通的 elasticsearch。amazon 對 open distro 所做的是為 elasticsearch 和 kibana 新增功能。

opensearch 實際上是 elasticsearch 的乙個分支。

一方面 opensearch 正在從開源 elasticsearch 停止的地方開始,**中任何有 elasticsearch 或 kibana 引用的地方,最後都會更改為 opensearch 。另一方面 open distro 所有功能都將新增到 opensearch,opensearch 後續將致力於保持其分支開源,並得到 aws 的支援。

如果說 elasticsearch 提供了非常棒的能力,利用它的大資料工具來幫助進行全棧監控、自動化、資料重新平衡、ip 過濾等的各種規模的組織,那麼 opensearch 就是致力於聚合、檢視和分析資料的企業的洞察引擎解決方案。

無論 elasticsearch 還是 opensearch,使用者的核心需求是搜尋、安全、監控、告警、跨集群同步等集群服務,後者也可以完全滿足需求。

從 2021 年 4 月 12 日推出 opensearch 專案以來,截止到現在已更新至 1.1.0 版本,雖然該版本已媲美 x-pack 部分功能。但是目前實踐上還需要更多的驗證。

隨著 1.1.0 的推出,opensearch 已經在向自己的方向前進。有許多已推出的功能和增強功能,包括:

在 opensearch 服務推出後,elastic 官網也對該服務為使用者提出了一些熱門問題[4],並做出了自己的詮釋。

在雲廠商們各自的生態環境下,開發者將採用不同的模式來完成產品的迭代,從不同的產品視角來滿足不同的使用者需求。

可預見在未來很長一段時間裡, elasticsearch 仍然會繼續引領潮流,佔據該領域的霸主地位。而 opensearch 依託於 aws ,相信也會成為乙個優秀的搜尋引擎解決方案。

許可協議限制了在雲廠商的使用,開源則提供了更多的可能。當雲廠商無法使用 elasticsearch 後續版本的時候,或許可以考慮 opensearch。

[1]. apache lucene:

[2]. db-engines:

[3]. opensearch:

[4]. what is opensearch:

阿里雲開放搜尋案例(opensearch )

第一步,阿里雲配置opensearch服務,建立對應的索引庫 第二步,操作例項 引入阿里雲opensearch api檔案 require once base data path.api opensearch cloudsearchclient.php require once base data ...

阿里雲OpenSearch開放搜尋功能特性

阿里雲opensearch開放搜尋是什麼?開放搜尋 opensearch 是阿里巴巴自主研發的搜尋引擎平台,用來為企業提供高搜尋質量的一站式內容智慧型搜尋服務。雲吞鋪子分享開放搜尋 opensearch 的的功能和特性 開放搜尋 opensearch 是阿里巴巴自主研發的大規模分布式搜尋引擎平台,其...

公有雲廠商服務內容對比

服務 awsazure rackspace google gcp ibm softlayer 華為雲阿里雲 支援地域 計算ec2 虛擬機器virtual cloud servers compute engine 虛擬伺服器 彈性雲伺服器ecs 雲伺服器 ecs 雲伺服器cvm 雲伺服器bcc 物件儲...