视野 | 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)

大家都在看

  • Socket 编码入门

    很多同行朋友大概率学过 socket 通信相关知识, send, recv, listen, connect, accept 等等组合, 变幻 无穷 … 相关的介绍书籍…

    数据库 2023年6月9日
    063
  • DDD(Domain Driver Design)领域驱动模型

    Domain Primitive(DP) DP概念DP 是 DDD 中的一个基础概念,是 DDD 中可以执行的一个最小单元,最直接的体现是,将业务相关的参数定义在一个特定的领域中(…

    数据库 2023年6月6日
    0119
  • 通过Python收集MySQL MHA 部署及运行状态信息的功能实现

    一. 背景介绍 当集团的MySQL数据库实例数达到2000+、MHA集群规模数百个时,对MHA的及时、高效管理是DBA必须面对的一个挑战。MHA 集群 节点信息 和 运行状态 是管…

    数据库 2023年6月16日
    0113
  • Redis学习

    Redis 因为没有指定配置文件 需配置 redis-server redis.windows.conf 之后自动启动 测试性能 redis-benchmark -p 6379 -…

    数据库 2023年6月16日
    075
  • 新建vue项目

    1、CMD中输入命令行 vue ui 打开一个创建项目的窗口 2、安装插件element ui 3、Idea 打开这个项目即可 4、Idea 运行vue项目 npm run ser…

    数据库 2023年6月9日
    0101
  • 数据库

    建库操作 #创建数据库(默认字符集编码) create database test20210420 #创建数据库的时候指定字符集编码以及字符校验规则 create database…

    数据库 2023年5月24日
    065
  • 为什么我选择MySQL Workbench・一

    一、官方 官方提供的工具必然有其优势。 MySQL Workbench有两个版本,社区版和商业版。社区版是免费的。 二、第一个选择 使用MySQL之前用的是SQL Server而微…

    数据库 2023年6月9日
    068
  • podman(无根用户管理podman)

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

    数据库 2023年6月14日
    089
  • Vmware 虚拟机连接外网和设置固定IP

    NAT 模式(地址转换模式) 在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,虚拟机借助NAT功能,通过…

    数据库 2023年6月14日
    0100
  • Maven编译出现“java.lang.OutOfMemoryError: Java heap space”问题的解决办法

    项目执行 mvn clean install 成功在idea 进行debug启动一直报错,报编译错: maven-resources-production:xxx java.nio…

    数据库 2023年6月6日
    0119
  • Git的常见命令

    Git 一、git环境安装 1.初始化本地仓库: git init 2.将本地仓库跟远程仓库建立连接:git remote add name path ​ git clone pa…

    数据库 2023年6月16日
    081
  • MYSQL/Oracle中常用函数总结

    记录在日常工作或者学习中中使用到的函数,以下是做一个备忘~ MySQL: 窗口函数: 原文地址:https://zhuanlan.zhihu.com/p/92654574 1、窗口…

    数据库 2023年6月14日
    0100
  • 希望腿上的伤快点好

    明天去星巴克泡一会儿想把一些课程关联到的课程学习一下 Original: https://www.cnblogs.com/ukzq/p/16747859.htmlAuthor: D…

    数据库 2023年6月11日
    089
  • MySQL多表查询

    多表查询 案列说明 笛卡尔积的理解 select id,department_name from employees,departments;#错的 select id,depar…

    数据库 2023年5月24日
    077
  • 05-ElasticSearch高级搜索

    * package com.coolman.hotel.test; import com.coolman.hotel.pojo.HotelDoc; import com.faste…

    数据库 2023年6月16日
    083
  • Mysql自序整理集

    mysql事务是用于处理操作量大、复杂性高的数据 原子性:确保每个事务都有已完成或未完成的操作,不能卡在中间;如果事务在执行过程中出现错误,将回滚到事务开始之前的状态。 [En] …

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