公司: Plivo
行业: 电信、CPaaS
Plivo 是一个现代化的全球电信平台,每月通过超过 190 个国家/地区提供超过 10 亿个 API 请求。该公司成立于 2011 年,为依赖语音和消息传递与客户更有效地互动的企业提供企业级可靠性。
Plivo 的流式微服务架构支持大量的小型、高频数据写入。 如果 Amazon ElastiCache 区域发生故障,则无法跟上该数据量并保持跨区域的数据一致性。 Plivo 的工程师需要构建自定义故障转移。
经过测试表明 Redis Cloud 可以满足其 Voice API 平台的要求后,Plivo 选择了 Redis Cloud。 因为他们正在从开源 Redis 背后的公司迁移到托管解决方案,所以几乎不需要更改任何代码。 初始迁移在几分钟内成功完成,整个迁移在一个月内完成。
数据完整性立即得到改善。 此外,Plivo 的工程师还能够发现其他优势,以优化跨区域的服务。 Active-Active 是 Redis Enterprise 独有的功能,使他们能够最有效地利用所有区域的基础设施,从而最大限度地提高整个架构的投资。
并非所有数据库都能满足每个用例的性能要求。 对于领先的基于云的通信平台 (CPaaS)Plivo 来说,它可帮助企业与其客户进行互动和沟通,低延迟的读取和写入对其 Voice API 平台至关重要。
Plivo 的语音平台软件开发工程师兼架构师 Manish Chand Kaushik 表示:“Postgres 和其他关系数据库模型在处理高频数据写入方面做得不好。 我们已将所有缓存用例迁移到 Redis,因为事实证明关系数据库对于我们的应用程序来说并非最佳选择。”
Plivo 的 Voice API 团队转向 Redis,以实现其低延迟性能,尤其是数据写入。 Plivo 的用例包括在给定的时间段内限制呼叫速率、对呼叫状态(振铃、执行、挂断等)进行排队,以及按区域维护呼叫队列(延迟仅为 1-2 毫秒)。 数据存储为哈希和键,排序集用于速率限制。
由于 Plivo 尽可能利用托管服务,因此他们最初在其系统中需要低延迟性能的地方部署了 Amazon ElastiCache。 事实证明,这对于 Plivo 来说并不是理想的托管 Redis 服务,因为如果某个区域发生故障,ElastiCache 不提供开箱即用的回退功能。
API 工程总监 Rajat Dwivedi 表示:“我们希望确保能够通过 Active-Active Redis 满足正常运行时间和可扩展性要求。 我们尝试使用 Amazon ElastiCache 模拟这些功能,但意识到这是我们不想自己解决的问题。 我们选择了 Redis Cloud,它在完全托管的解决方案中提供了此功能。”
由于 Plivo 迁移的初始数据已有 24 小时,因此迁移设置为使用 Amazon ElastiCache 作为主系统,Redis Cloud 作为辅助系统,并且所有写入都将写入到这两个系统。 如果出现任何问题,该过程可以回滚到主系统并重新启动。 Plivo 在计划的维护窗口内进行了移动,并声明在此窗口中可能会丢失写入,因此如果该过程中出现错误,他们可以轻松地启动回滚。
当发生一个小问题时,这种有条不紊的计划最终成为了预言,其中一组旧数据被忽略并导致数据流断开。 Plivo 的工程师发现了问题,清理了系统,并在短短八分钟内回滚以重新启动该过程。
最终,迁移到 Redis Cloud 大约在一个月内完成。
“Active-Active Redis 帮助我们保护了跨区域的延迟,但我们发现它在优化系统基础设施的方式中增加了价值。 我们永远不会浪费资源,而且我们永远不会未充分利用我们的资产,”Kaushik 说。
Plivo 工程师尝试充分利用所有系统资源和组件。 借助 Active-Active Redis,即使具有非凡的线性可扩展性,不仅一切都按预期运行,而且整个环境也以最高的效率运行。
Active-Active Redis 的部署几乎是很普通的。 在清晰、书面良好的文档的帮助下,Redis 的解决方案架构师在初始阶段为 Plivo 工程师提供了帮助。 并且好处几乎立即显现。
部署后不久,一个完整区域遭受了通信中断。 由于系统只是以智能方式重新分配资源,因此没有发出重大警报,因此 Plivo 的客户几乎没有受到任何影响。 在整个区域关闭的一个小时内,没有出现重大性能问题。
Kaushik 指出,这次中断的非凡之处在于,“Active-Active Redis 只是工作。 我们的系统仍在工作,客户几乎没有注意到任何连接问题,而且我们无需进行任何损害控制。 整个 60 分钟的事件几乎是无关紧要的。”
Redis Cloud 的第一次真正测试证明了它的价值,并让 Plivo 安心,因为他们的许多数据都需要为分布式架构中的复杂用例进行同步。
Dwivedi 指出,Plivo 系统进一步迁移到 Redis Cloud 的路线图已计划好,其中一个已经在进行中,用于财务数据系统。 将在全年进行评估,以迁移他们的大部分缓存和低延迟用例,“因为我们可以放心地使用 Active-Active Redis。”