视野 | 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 与 AWS 事件

Elastic 成立于 2012 年,是很多来自硅谷的开源软件独角兽公司之一。Elasticsearch 的成功离不开 Elastic 公司的成功运营。随着云计算技术的不断发展壮大,以 AWS 为首的云厂商 SaaS 模式 趋于火热,越来越多的用户愿意接受 SaaS 模式。部分云厂商将开源产品以服务的方式发布并盈利,但并未回馈开源。

Elastic 公司在这样的背景下,决定有针对性的修改了许可授权,各大云厂商们面临在非授权的情况下,将无法继续更新 Elasticsearch 版本的困境(旧版本不影响)。

视野 | OpenSearch,云厂商的新选择?

Elasticsearch 版本协议说明

AWS 没有选择与 Elastic 合作,而是在 2019 年开始尝试新的可能。2021 年 AWS 正式开源了基于 Elasticsearch 的 OpenSearch 项目,并在 AWS 商店正式推出了 OpenSearch[3] 服务来取代原有的 Elasticsearch 服务。

这一系列事件可能会对全球云厂商使用开源软件产生深刻影响。接下来,我们来梳理一下整个活动的时间线。

[En]

This series of events may have a profound impact on the use of open source software by cloud manufacturers around the world. Next, let’s comb through the timeline of the whole event.

时间线

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。

ELv2 与 SSPL 协议

事件中,以 Elastic 公司修改开源协议为重要转折点。

ELv2:由 Elastic 制定的源代码许可。该协议适用于 Elastic 的分发版以及 Elasticsearch 和 Kibana 所有免费和付费功能的源代码。ELv2 的目标是在尽可能宽松的情况下防止滥用。该许可允许免费使用、修改、创建衍生作品和重新分发,但有三个基本的限制条件:

  • 不得将产品作为托管服务提供给其他人
    [En]

    the product shall not be provided to others as a managed service*

  • 请勿绕过许可证密钥功能或删除/隐藏受许可证密钥保护的功能
    [En]

    do not circumvent the license key feature or delete / hide features protected by the license key*

  • 请勿删除或隐藏任何许可协议、版权或其他通知
    [En]

    do not delete or hide any license agreement, copyright or other notice*

SSPL:由 MongoDB 制定的源代码许可。针对云服务提供商做出了限制,即要求云服务提供商在未对项目做出贡献的情况下,不得发布自己的开源产品即服务。SSPL 允许用户以自由且不受限制的方式使用并修改代码成果,唯一的要求是: 如果将产品以作为一种服务进行交付,那么必须同时公开发布所有关于修改及 SSPL 之下管理层的源代码。

影响与选择

Elastic 公司决定修改开源协议,并不会对个人用户使用造成影响,只会限制云服务厂商将开源产品转化为软件即服务的形式。对于没有获得授权的云厂商来说,除了提供到最后一个开源版本的 Elasticsearch 服务之外,就需要开始考虑其他替代方案了。

目前,各大云厂商主要采用以下两种解决方案:

[En]

At present, the major cloud vendors mainly adopt the following two solutions:

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 就是致力于聚合、查看和分析数据的企业的洞察引擎解决方案。

  • 从解决方案来看,两者都提供大数据解决方案,底层实现一致。
    [En]

    from a solution point of view, both of them provide big data solution, and the underlying implementation is consistent.*

  • 从功能的角度讲,OpenSearch 覆盖了开源版 Elasticsearch 的所有功能,并为其提供媲美 Elasticsearch X-Pack 的商业能力。

无论 Elasticsearch 还是 OpenSearch,用户的核心需求是搜索、安全、监控、告警、跨集群同步等集群服务,后者也可以完全满足需求。

最新版本

从 2021 年 4 月 12 日推出 OpenSearch 项目以来,截止到现在已更新至 1.1.0 版本,虽然该版本已媲美 X-Pack 部分功能。但是目前实践上还需要更多的验证。

随着 1.1.0 的推出,OpenSearch 已经在向自己的方向前进。有许多已推出的功能和增强功能,包括:

  • 添加碎片级后压框架,以提高 OpenSearch 索引的可靠性。
  • 新增了许多可观察的功能,帮助您分析跟踪和日志数据。
    [En]

    add many new observable features to help you analyze trace and log data.*

  • OpenSearch 的 k-NN 插件将为更新的FAISS算法增加支持,以提高性能。
  • 异常检测提高了导致特定异常的信号的可见性。
    [En]

    anomaly detection increases the visibility of the signal that causes a specific exception.*

  • 扩集群复制同步能力。

Elastic 看 OpenSearch

在 OpenSearch 服务推出后,Elastic 官网也对该服务为用户提出了一些热门问题[4],并做出了自己的诠释。

  • 什么是 OpenSearch 项目?
  • 为什么 OpenSearch 项目 fork 是从 Elasticsearch 和 Kibana 创建的?
  • Amazon OpenSearch Service 是否具有 Elasticsearch 中没有的任何功能?

| 展望

在云厂商的生态环境中,开发者会用不同的模式来完成产品迭代,从不同的产品视角满足不同的用户需求。

[En]

In the ecological environment of cloud manufacturers, developers will use different models to complete product iterations and meet different user needs from different product perspectives.

可预见在未来很长一段时间里, 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

推荐阅读

Original: https://www.cnblogs.com/radondb/p/15566135.html
Author: RadonDB
Title: 视野 | OpenSearch,云厂商的新选择?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508034/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • boot issue

    Q:生产过程中不小心把 boot文件删除了 ,或者升级kenerl时发现版本不兼容,需要回退,此时没有快照备份情况如何操作? A:boot 主要文件是内核和grub引导文件 1.进…

    数据库 2023年6月14日
    072
  • Digester解析xml原理

    Tomcat内部是使用Digester来解析xml文件的,将xml转化为java对象。 digester底层是基于SAX+事件驱动+栈的方式来搭建实现的,SAX主要用来解析xml,…

    数据库 2023年6月16日
    076
  • java通过内存流去掉多行文本中的空行

    对于多行文本,你直接通过replace,replaceAll是不能将空行删除的,你需要遍历这些行,对每行文本进行操作,最后把返回新的文本才行。 public static Stri…

    数据库 2023年6月6日
    087
  • Mysql数据库语言学习的路线

    对于我们数据库的学习,不管是测试人员还是开发人员以及我们的DBA来说重点都是SQL;但是我们的SQL可以分多少类型,学习重点又是在哪里呢,本文仅仅针对测试人员来展开说明: SQL:…

    数据库 2023年5月24日
    067
  • MongoDB的CRUD操作(入门)

    MongoDB的简单介绍: 1:MongoDB是什么? mongodb是非关系数据库 但是是非关系数据库当中功能最丰富,最像关系数据库的 MongoDB是一个基于分布式文件存储的数…

    数据库 2023年6月6日
    0117
  • Linux系统下nginx的安装与卸载

    1.1 安装 准备依赖环境 1.安装 gcc 依赖库 yum install gcc-c++ 2.安装 PCRE pcre-devel 依赖库 yum install -y pcr…

    数据库 2023年6月11日
    088
  • mysql 事务 隔离性 锁

    1、四大特性 1.1 原子性(Atomicity) 事务是一个不可分割的最小工作单元。事务是一个不可分割的最小工作单元。 [En] A transaction is an indi…

    数据库 2023年5月24日
    074
  • Mysql 一主一从

    1. 主从原理 1.1 主从介绍 所谓 mysql 主从就是建立两个完全一样的数据库,其中一个为主要使用的数据库,另一个为次要的数据库,一般在企业中,存放比较重要的数据的数据库服务…

    数据库 2023年5月24日
    075
  • MySQL实战45讲 9

    09 | 普通索引和唯一索引,应该怎么选择? 每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的…

    数据库 2023年6月16日
    0107
  • 心态崩了,我怎么知道实际生产环境的 B+ 树索引有多少层?

    Q:在实际生产环境中,InnoDB 中一棵 B+ 树索引一般有多少层?可以存放多少行数据? 关于这个问题最近好像在牛客上经常看到,感觉没啥意义,可能主要考察的是对 B+ 索引的理解…

    数据库 2023年6月6日
    094
  • 你的 SQL 还在回表查询吗?快给它安排覆盖索引

    什么是回表查询 小伙伴们可以先看这篇文章了解下什么是聚集索引和辅助索引:Are You OK?主键、聚集索引、辅助索引,简单回顾下,聚集索引的叶子节点包含完整的行数据,而非聚集索引…

    数据库 2023年5月24日
    081
  • .NET nhibernate 添加新的表运行报is not mapped的问题

    最后在修改一个.NET nhibernate的项目,按照原来的表添加了一个实体和一个hbm.xml的配置文件,写好所有业务代码以后运行报以下错误 NoAuthorizationSi…

    数据库 2023年6月9日
    088
  • Java 面试题及答案整理(2021最新版)持续更新中~~~

    Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用…

    数据库 2023年6月9日
    089
  • Mybatis-Plus初步上手!!

    1.简介 1.1、特性 2.快速开始 3.配置日志 4.CRUD拓展 4.1、插入 4.2、更新 4.3、查询 4.4、删除 5.性能分析插件 6.条件构造器Wrapper 7.代…

    数据库 2023年6月16日
    076
  • 无根用户管理podman

    在允许没有root特权的用户运行Podman之前,管理员必须安装或构建Podman并完成以下配置 基础设置 cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资…

    数据库 2023年6月14日
    076
  • 用相对定位实现简单的图片边框阴影效果

    实现阴影效果方法有很多,一般复杂一点的外发光式的阴影都使用png作为背景图片来实现阴影,今天做的这个比较简单,阴影是纯色的,所以可以直接使用背景颜色,图片的位移一下就能使图片产生阴…

    数据库 2023年6月11日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球