ElasticSearch 继续与 Amazon AWS 的开源分叉作斗争

2021-08-08 00:07:07

OpenSearch 项目是对安全、高质量、Apache-2.0 许可搜索和分析套件的长期投资,具有丰富的创新功能路线图。 OpenSearch 旨在提供与 Elasticsearch 7.10.2 的开源发行版的连线兼容性,Elasticsearch 7.10.2 是从中派生的软件。这使开发人员可以轻松地将他们的应用程序迁移到 OpenSearch:现有客户端、连接器以及低级和高级 API 将正常工作。我们在 AWS 的经验是,开发人员发现更新他们已经部署的应用程序以使用新版本的服务器软件很痛苦,因此客户端和 API 的向后兼容性在我们的设计中占很大比重。许多在其应用程序中使用 Elasticsearch 和 OpenSearch 的开发人员也使用 Elastic 维护的开源客户端库,这些库为几种流行的编程语言提供了方便的高级接口。在过去的几周里,Elastic 向其中几个客户端添加了新逻辑,这些客户端拒绝连接到 OpenSearch 集群或运行 Elasticsearch 7 开源发行版的集群,甚至那些由 Elastic 自己提供的集群。虽然客户端库仍然是开源的,但它们现在只允许应用程序连接到 Elastic 的商业产品。最广泛采用的开源项目通常强调灵活性、包容性和避免锁定。开发人员在选择要使用的依赖项时通常依赖于这种对互操作性的期望,因此这样的更改具有破坏性。事实上,我们从开发人员那里听说这些变化正在给他们带来挑战。这包括依赖这些客户端并运行开源版本 Elasticsearch、Open Distro for Elasticsearch、OpenSearch 和 Amazon Elasticsearch Service 客户的任何人,以及希望支持最广泛搜索后端的开发人员和开源项目维护人员他们的应用程序和项目。为了给这些用户一条清晰的前进道路,OpenSearch 项目将添加一组新的开源客户端,以便于将应用程序连接到任何 OpenSearch 或 Elasticsearch 集群。在添加产品检查之前,这些客户端将源自相应 Elastic 维护客户端的最新兼容版本。本着开放性和互操作性的精神,我们将尽合理努力保持与所有 Elasticsearch 发行版的兼容性,即使是那些由 Elastic 生产的发行版。这些客户端将允许开发人员继续运行其当前版本的 OpenSearch 或 Elasticsearch,而对其应用程序代码进行最少的更改。新客户端将提供他们今天使用的相同 API 和功能。我们将创建分叉的客户端列表包括: 同时,对于使用上述 OpenSearch 或 Elasticsearch 发行版之一的任何人,我们不建议更新到任何由 Elastic 维护的客户端的最新版本,因为这可能会导致应用程序休息。任何已更新其客户端并遇到问题的人都可以使用 OpenSearch 文档中概述的任何客户端版本来解决这些问题。伟大的开源软件是由不同的贡献者社区共同构建的。开源开发让利益相关者有机会通过直接参与和担任领导者来塑造项目的方向。作为该计划的一部分,我们正在为这些新的客户端库中的每一个寻找社区共同维护者。维护人员将在图书馆中处于领导地位,并将在确定其方向和优先事项方面发挥关键作用。如果您有兴趣参与这些客户端库的任何级别的开发和路线图,请访问 OpenSearch 网站了解详细信息。在接下来的几周内,我们预计在 OpenSearch GitHub 组织中为每个新的客户端库开放存储库。然后,我们将迅速将客户端发布到所有相应的包管理器和存储库。我们将共同确保开发人员可以轻松访问支持良好的开源 Elasticsearch、Open Distro for Elasticsearch 和 OpenSearch 客户端库。