天天看點

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

王奇 顧問軟體工程師 目前從事 PaaS 中間件服務(Redis / MongoDB / ELK 等)開發工作,對 NoSQL 資料庫有深入的研究以及豐富的二次開發經驗,熱衷對 NoSQL 資料庫領域内的最新技術動态的學習,能夠把握行業技術發展趨勢。

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

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

基于 Lucene 的 Elasticsearch

2010 年開源的 Elasticsearch 随着全球搜尋引擎業務的飛速發展,也變得更加流行。在國内外積累了大量的核心使用者并受到社群的強烈歡迎。根據 DB-Engines[2] 網站對于 Search Engine 類資料庫的流行度趨勢統計,2016 年至今 Elasticsearch 始終保持第一。

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

Search Engine 流行趨勢

Elastic 成立于 2012 年,是很多來自矽谷的開源軟體獨角獸公司之一。Elasticsearch 的成功離不開 Elastic 公司的成功營運。随着雲計算技術的不斷發展壯大,以 AWS 為首的雲廠商 SaaS 模式 趨于火熱,越來越多的使用者願意接受 SaaS 模式。部分雲廠商将開源産品以服務的方式釋出并盈利,但并未回饋開源。

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

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

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)版本,并嘗試尋找新的替代方案。

目前為止,與 Elastic 達成合作的雲服務供應商:Microsoft、Google、阿裡巴巴、騰訊、Clever Cloud 等。

OpenSearch 是一個社群驅動的開源搜尋和分析套件,源自 Apache 2.0 許可的 Elasticsearch 7.10.2 和 Kibana 7.10.2。它由一個搜尋引擎守護程序 OpenSearch 和一個可視化和使用者界面 OpenSearch Dashboards 組成。OpenSearch 使人們能夠輕松攝取、保護、搜尋、聚合、檢視和分析資料。

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

OpenSearch 官網

項目早期,Open Distro 的核心仍然是普通的 Elasticsearch。Amazon 對 Open Distro 所做的是為 Elasticsearch 和 Kibana 添加功能。

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

OpenSearch 實際上是 Elasticsearch 的一個分支。

一方面 OpenSearch 正在從開源 Elasticsearch 停止的地方開始,代碼中任何有 Elasticsearch 或 Kibana 引用的地方,最後都會更改為 OpenSearch 。另一方面 Open Distro 所有功能都将添加到 OpenSearch,OpenSearch 後續将緻力于保持其分支開源,并得到 AWS 的支援。

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

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

從方案的角度講,兩者都提供了大資料解決方案,且底層實作一緻。

從功能的角度講,OpenSearch 覆寫了開源版 Elasticsearch 的所有功能,并為其提供媲美 Elasticsearch X-Pack 的商業能力。

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

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

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

添加碎片級後壓架構,以提高 OpenSearch 索引的可靠性。

添加許多新的可觀測功能,以幫助您分析跟蹤和日志資料。

OpenSearch 的 k-NN 插件将為更新的FAISS算法增加支援,以提高性能。

異常檢測将增加信号導緻特定異常的可見性。

擴叢集複制同步能力。

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

什麼是 OpenSearch 項目?

為什麼 OpenSearch 項目 fork 是從 Elasticsearch 和 Kibana 建立的?

Amazon OpenSearch Service 是否具有 Elasticsearch 中沒有的任何功能?

在雲廠商們各自的生态環境下,開發者将采用不同的模式來完成産品的疊代,從不同的産品視角來滿足不同的使用者需求。

可預見在未來很長一段時間裡, Elasticsearch 仍然會繼續引領潮流,占據該領域的霸主地位。而 OpenSearch 依托于 AWS ,相信也會成為一個優秀的搜尋引擎解決方案。

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

[1]. Apache Lucene:http://lucene.apache.org

[2]. DB-Engines:https://db-engines.com

[3]. OpenSearch:https://opensearch.org

[4]. What is opensearch: https://www.elastic.co/what-is/opensearch

盤點 | 主流雲原生資料庫技術方案

高可用 | Xenon:後 MHA 時代的選擇