Profit.co 使用 Elasticsearch 扩展搜索和日志管理来提供卓越的用户体验

illustration-scalability-gear-1680x980_(1).jpg

Profit.co 构建的 OKR 管理软件可帮助领导者执行和衡量进度。Profit.co 的平台面向各个品牌,从初创公司到《财富》500 强公司,为客户提供用于管理业务目标、资源和绩效的统一视图,让客户能够实现期望的成果。

Profit.co 是如何帮助提高客户的工作效率并提供各项功能来推动参与度的呢?该公司需要一个可扩展的全文本搜索解决方案。所以 Profit.co 选择了 Elasticsearch,这是 Elastic 产品和解决方案所依托的强大引擎。Profit.co 成功地大幅改善了搜索体验。在搜索方面取得初步成功后,Profit.co 团队又将其集中式日志管理迁移到了 Elasticsearch。

如今,Profit.co 使用 Elasticsearch 打造积极的搜索体验并简化日志管理,从而不断优化性能以满足最终用户的需求。下面来详细了解 Elastic 是如何解决 Profit.co 所面临的挑战的。

Postgres 未见成效

一开始,Profit.co 使用过多种解决方案。Profit.co 的副总裁兼工程主管 Kumar Devarakonda 说:“我们最初使用的是 MySQL,后来又用过 Postgres,因为它相对于 MySQL 有一些额外的功能。”

但是 Postgres 很难扩展。Profit.co 的用户需要在多个字段中进行搜索,更快地获得结果,并根据相关性对结果进行排序。为了帮助用户,Profit.co 意识到自己需要一个全文本搜索解决方案。Devarakonda 解释说:“我们过去在每个要查询的表上都使用了 Postgres。当我们存储对象时,会从所有字段捕获所有数据,然后将其存储在单个列中。但是操作速度非常慢。这无法提供准确的结果,比如相关性评分。”

在 Profit.co 团队的寻觅过程中,他们发现大多数解决方案的速度非常慢,并且缺乏 Profit.co 客户所需的准确性。在探索解决方案时,他们偶然间发现了 Elasticsearch,并在 2014 年开始使用。

“Elastic 在应用程序的可扩展性方面对我们很有帮助。”Devarakonda 说。向 Elastic 的过渡非常缓慢。他继续说道:“我们首先推出了全文本搜索,过去我们在 Postgres 和 Elasticsearch 中保持了双重存储。我们将记录存储在 Postgres 中,然后将数据推送到 Elasticsearch。”

后来,Devarakonda 意识到:“我们为什么要保持双重存储呢?为什么不能直接存储在 Elasticsearch 中?” 通过将所有内容存储在 Elasticsearch 中,Profit.co 得以提高速度,不但简化了最终用户的体验,也让内部团队的工作变得轻松很多。

对速度的需求

速度是改换工具的主要原因。但 Devarakonda 表示:“我们开始寻找一种能够提供相关性评分的解决方案。” 他继续说道:“如果没有 Elastic,我们显然会继续让沮丧的客户不停地搜索信息,最终无法获得准确的信息。”

使用 Postgres 时,速度缓慢,一连串地影响了所有资源。用户一直在等待。工程团队在尝试实施更改时也遭遇了延迟。但使用 Elastic 后,速度明显提高。使用传统数据库进行搜索查询需要 10 秒以上的时间。在团队使用 Elastic 后,复杂查询(在多个字段上进行搜索)的响应时间低于 100 毫秒。

无力扩展

改用 Elastic 之后,不仅改善了搜索体验,还帮助 Profit.co 实现了扩展。Devarakonda 说:“我们在使用 Postgres 时遇到了连接数量受限的问题。Elastic 的水平可扩展性允许任意数量的客户端连接,这是基于基础架构资源的可用性,而不是基于预定的连接数。”

现在,Profit.co 可以有多个集群,不必担心将用户分隔为多个集群。Elastic 还支持嵌套字段。Profit.co 可以将任何数据存储在文档中,甚至是大型文档。对于 Devarakonda 的团队来说,“我们不必在存储之前先分析数据。” 这节省了宝贵的开发时间,使团队能够专注于更高价值的任务。

为什么选择 Elastic

除了速度和可扩展性之外,还有什么原因让 Profit.co 选择了 Elastic?Devarakonda 需要某些功能来帮助他的团队脱颖而出。他说:“在嵌套字段上查询也是我们选择 Elastic 的一个原因。再加上对集成的支持,这是我们最终选择 Elastic 的原因。”

对于团队成员来说,这是一个简单的切换。“从开发人员的角度来看,Elastic 易于学习。上手非常快。”Devarakonda 解释道。此外,Elastic 的安全性不仅达到了预期,还超出了预期。Elastic 让 Devarakonda 在编码方面可以严格控制,不像常规 SQL 那样。他继续说道:“我们不需要编写任何自定义查询。一切都可以作为 API 使用,这可以减少编码过程中的错误。” 错误减少,意味着功能更出色,用户能获得更积极的体验。

集中化日志管理

Profit.co 开始将 Elastic 用于搜索之后,团队立即就意识到它给组织带来的好处不止这些。Elastic 与 Google Cloud 相结合,帮助他们简化了日志监测功能。“在我们迁移到 Google Cloud 之前,我们一直在寻找一个集中式日志记录系统。” Devarakonda 继续说道:“有了 Elastic,我们可以轻松地通过自动化脚本进行检查,找到任何需要进行调试的日志文件,等等。”

Profit.co 的首席执行官兼创始人 Bastin Gerald 也看到了巨大的价值。“所有出站和入站的数据都记录在一个单独的 Elastic 集群的数据库中,我们用它来进行检查。” 现在,团队可以使用 Elastic 在每天约 200 万个请求中识别数据丢失、防御等问题。使用 Elasticsearch 还可以使 Profit.co 团队节省大约 90% 的总成本。从所有应用程序节点和微服务中采集的日志每天仅占用 5GB 的存储空间。

Gerald 解释说:“在监测发出和收到的请求和响应方面,我们将它们全部记录在一个单独的集群中。如果某个特定客户的性能不佳,或者数据量很大,这些就是我们要分析的请求。” 如果能够全面了解性能,将有助于消除客户的疑虑,防止问题变得更加严重。

Profit.co 的未来

Profit.co 目前大约有 500 家客户。随着客户群体的不断扩大,Elastic 将一起扩展。

详细了解 Elasticsearch,只需几分钟就可以将其部署到你选择的云上。您可以免费试用 Elasticsearch 14 天。立即注册。