Elastic 开发者上个月向 elasticsearch-py 提交了一个 PR(已被合并),旨在修改 Elasticsearch Python 客户端连接到 Elasticsearch 的验证逻辑。根据 PR 的描述,修改后的客户端将无法连接到由 AWS 维护的 Elasticsearch 分支 OpenSearch,以及一些版本较低的 Elasticsearch 开源发行版,或是托管到 AWS Elasticsearch Service 的 Elasticsearch。
AWS 对此表示:“Elastic 维护的开源客户端库为多种编程语言提供了方便的高级接口。但在过去的几周里,Elastic 向多个不同语言版本的客户端增加了上述的新逻辑。虽然 Elasticsearch 的客户端仍然开源,不过只允许连接到 Elastic 的商业产品。”
AWS 认为被广泛采用的开源项目通常强调灵活性和包容性,这是为了避免被限制在单一项目上,所以 Elastic 这种行为具有破坏性,并给开发者带去了阻碍。因此它决定从 Elasticsearch 的所有客户端 fork 出新分支,并保证这些分支可以轻松连接到任何 OpenSearch 或 Elasticsearch 集群。AWS 计划 fork 的客户端包括:
- elasticsearch-py
- elasticsearch-java
- elasticsearch-net
- go-elasticsearch
- elasticsearch-js
- elasticsearch-ruby
- eland
- elasticsearch-php
- elasticsearch-rs
- elasticsearch-perl
- elasticsearch-specification
- elasticsearch-hadoop
AWS 表示,开发者只需对其应用程序的代码进行细小的改动,即可像以前一样正常连接到 Elasticsearch 以及相关的衍生版本。它还建议开发者不要将任何由 Elastic 维护的客户端升级到最新版本,因为这可能会导致应用程序中断。
自 Elasticsearch 变更开源协议以来,AWS 和 Elastic 这两家公司就开始逐渐“脱钩”。AWS 先是创建了一个自称真正开源的 Elasticsearch 分支,并获得了不少厂商的支持。现在,Elastic 修改 Elasticsearch 的客户端,以阻止连接到 AWS 的 OpenSearch。双方彼此都不想产生任何关联。
有人认为 AWS 的行为是在赤裸裸地“抢劫”开源项目,也有人认为 Elastic 从最初的变更开源协议,到现在限制用户正常使用客户端,不仅违背了开源精神,更是有拿用户当做筹码的意味。
猜你喜欢: