挑战
如何在不使运营资源过载的情况下,跨不断增长的数据库提供高性能搜索?
解决方案
通过使用 Elastic Cloud(Elastic 托管和管理的 Elasticsearch 服务)向不断增长的 Docker 社区提供可扩展、无缝且高度可用的搜索和发现体验。
案例研究重点
- 轻松且经济高效地扩展搜索应用程序以满足不断增长的数据量
- 确保出色的搜索和发现体验
- 管理运营复杂性
- 使用 Elasticsearch 更快地提供更好的搜索结果
- 选择可确保稳定和持久搜索体验的托管服务
- 通过将 Elasticsearch 基础设施委派给 Elastic Cloud 来减少运营开销
Docker, Inc. 是 Docker 开源平台背后的公司,也是 Docker 生态系统的主要赞助商。Docker 被百度、BBC、eBay、高盛、ING、Spotify 和 Yelp 等数万个组织使用,它是一个用于分布式应用程序的开放平台,允许开发人员和 IT 管理员在任何地方构建、交付和运行应用程序。
Docker 社区以极快的速度为从负载均衡器到数据库到时间保持服务的各种内容产出容器。这些构建块可以轻松部署和排列,具有显着的安全性、性能和组织优势。
Elasticsearch 使我们对需要执行的查询具有更大的灵活性,允许我们指定可以在哪里提升字段、排序和评分文档。
问题:超出 RDBMS 的能力
Docker 的容器库需要可被发现,并且考虑到其庞大的数量,决定搜索是此功能最佳的用户体验。在传统的 RDBMS 上进行的初始搜索实现未能满足 Docker 所需的性能和质量要求。正如 Docker 开发人员 Ken Cochrane 指出的那样,“我们之前使用的是数据库,这非常有限。它给我们的数据库增加了负载,并且随着我们添加越来越多的数据而变得越来越慢。”
在决定放弃他们的 RDBMS 之后,Docker 评估了 Elasticsearch 和其他搜索技术。他们决定选择 Elasticsearch 作为他们的下一代平台。
在决定迁移到 Elasticsearch 后,Docker 接下来考虑了所需的运营工作。管理像 Elasticsearch 这样的分布式数据库会带来一些棘手的运营挑战,例如维护可行的仲裁、确保正确配置复制以实现高可用性以及存档/管理备份。鉴于这些和其他复杂性,决定将其 Elasticsearch 基础设施委派给完全托管的提供商。
Elastic Cloud 对服务和快速响应时间的重视有助于确保 Docker 的推出获得成功。支持非常及时……对我来说,它很完美!
解决方案:隔离关键问题
Docker 通过查看各种不同的标准来评估托管 Elasticsearch 的可用选项。根据 Docker 开发人员 John Costa 的说法:“我们评估了一些其他托管 Elasticsearch 供应商。在分析过程中,我们考虑了位置、索引数量(开发、暂存、生产)、可用资源(内存)、高可用性选项和价格。Elastic Cloud 是最佳选择。”
一致的性能和可靠性是 Docker 的关键考虑因素,这使得 Elastic Cloud 的专用 Elasticsearch 集群非常适合两个关键原因。首先,Elastic Cloud 基于具有保留内存和 CPU 的专用集群的托管模型使他们确信其应用程序将始终如一地运行。其次,Elastic Cloud 的高可用性选项让 Docker 更加确信,即使在整个数据中心发生中断的情况下,他们的搜索数据库仍将可用。
此外,Docker 的索引分配要求非常符合 Elastic Cloud 的架构。由于每个 Elastic Cloud 客户都被分配了一个专用的 Elasticsearch 集群,并且对其使用没有任何限制,因此他们可以自由地按照自己的意愿分配索引。
在评估了几家供应商后,我们认为 Elastic Cloud 在容错能力、快速响应的支持和易于操作方面最符合我们的需求。
Elastic Cloud 对服务和快速响应时间的重视有助于确保 Docker 的推出获得成功。支持非常及时……对我来说,它很完美!
优势:转向生产环境
在生产环境中使用 Elasticsearch 帮助 Docker 实现了他们期望的性能提升。其生产环境 RDBMS 的负载显著降低,搜索延迟和吞吐量得到大幅提升。此外,通过使用 Elasticsearch 的字段提升和函数评分查询来优先展示更受欢迎和相关的搜索结果,Docker 还能够显著提高搜索结果的质量。
在 Elastic Cloud 上部署 Docker Index 的准备工作快速而简单。正如 Docker 的 John Costa 指出:“转向生产环境很容易,只需要添加信用卡用于结算,然后获取生产设置即可。我们有一些关于索引、内存设置和可靠性设置的问题。Elastic Cloud 的支持人员响应迅速,并给出了详细的回复。”
借助新的基础设施,Docker 能够更快地提供更好的搜索结果。这意味着使用 Docker 平台的开发人员可以更轻松地使用。对于 Docker 来说,这一点至关重要;一个围绕提供强大功能和便利性而构建的工具,也必须拥有具备这些特性的支持服务。最终,事实证明 Elasticsearch 是该公司强大的工具,帮助他们实现了核心使命的重要组成部分:提供出色的开发者体验。