Rappi 使用 Istio 应对增长带来的挑战

1500 deployments per day, 50+ clusters, 30,000 containers

Rappi 连接企业、消费者和配送人员,其使命是为用户提供更多空闲时间。他们的应用程序使用户能够订购各种商品和服务。它是第一个拉丁美洲超级应用程序,业务遍布九个国家/地区和 250 多个城市。自 2015 年公司成立以来,该应用程序的下载量已超过 1 亿次。

巨大的成功也带来了快速增长的挑战,而 Rappi 一直在不断发展。在过去的几年里,该公司价值从 1 亿美元增长到 80 亿美元。他们的技术必须跟上业务的步伐,这就是他们选择在 Kubernetes 上部署和管理其应用程序的原因。Kubernetes 继续成为其基础设施惊人增长的推动力。

然而,即使有了 Kubernetes,Rappi 的基础设施也面临着巨大的挑战。他们如何将规模扩展到 50 多个 Kubernetes 集群,其中最大的集群运行超过 20,000 个容器?

挑战:成功的冲击

尽管 Rappi 团队成功地将其基础设施迁移到 Kubernetes,但他们仍在努力应对增长带来的挑战。他们需要作为一家科技公司发展,以跟上业务的步伐。为了帮助管理不断扩展的基础设施,他们开发了一个内部服务网格。不幸的是,这需要过多的维护,并且难以跟上他们所看到的增长。

“我记得 Lyft 使用 Envoy 的故事,我决定在我们的环境中测试一下,”Rappi 的高级 DevOps 工程师 Ezequiel Arielli 说。

解决方案:Istio 驰援

Rappi 团队决定部署 Istio,它使用 Envoy sidecar。这是一个绝佳的匹配。在他们承担这个新项目时,他们发现文档提供了极好的支持,并且 Istio API 既简洁又高效。Istio 是解决他们增长烦恼的方案。

随着 Istio 初始部署成功的消息在整个组织中传播,越来越多的 Rappi DevOps 团队开始迁移到 Istio。最初,只有 30 人的团队使用 Istio,但如今这个数字已增长到 1500 多名开发人员。

Istio 使 Rappi 的 DevOps 团队能够灵活地为不同的服务设置不同的规范。他们能够自定义速率限制、断路器、连接池、超时和其他关键参数。

他们发现 Istio 还提供了非常有用的安全和合规性功能。例如,服务网格可以分割垂直流量并限制不同端点之间的通信。

“Istio 使我们能够灵活地为不同的服务设置不同的规范,”Rappi 的 DevOps 技术主管 Juan Franco Cusa 说。“它还提供了非常有用的安全和合规性功能,这对于高安全环境非常方便。”

“当我们之前的解决方案达到其极限时,我们能够使用 Istio 重构我们的监控堆栈,”Arielli 解释道。“Istio 使我们的团队能够无缝监控任何规模的服务。”

随着他们的基础设施超过 30,000 个容器,这变得至关重要。

成果:基础设施持续增长

开发团队构建了一个自动化、可用于生产环境的 Kubernetes 和 Istio 集群部署。他们构建的内部 API 构建在 Kubernetes 集群之上,使他们能够跨每个集群管理微服务。此外,每个微服务在部署期间都会自动创建和分配流量资源。得益于此系统,他们能够每天管理超过 1500 次部署。

The Rappi Istio deployment covers multiple clusters.

“我们的配置使我们的 Kubernetes 使用和基础设施能够持续增长,”Arielli 说。“我们现在管理着 50 多个 Kubernetes 集群,最大的集群包含超过 20,000 个容器。我们的环境在不断变化,Istio 有助于确保所有这些环境之间的通信高效、可扩展且安全。”

Istio 管理着最关键集群上 1500 多个应用程序之间的流量,并且由于其强大的功能集,他们能够在需要时选择不同的部署策略。Istio 控制平面可以轻松地重新平衡连接,即使流量持续增加。

Rappi 的下一步计划

Istio 采用背后的 DevOps 团队仍在继续改进基础设施。

“将来,我们希望能够在网格级别实现多集群支持,”Arielli 说。“有了此功能,应用程序运行的位置无关紧要。所有应用程序都能够跨集群相互访问。”

结论:使用 Istio 成功扩展

借助 Istio 服务网格,Rappi 已经能够根据市场需求发展壮大。他们可以轻松处理新集群的部署以及在更多市场和城市中启用服务。

“感谢 Istio,我们相信 Rappi 将能够部署更多服务和更多应用程序以满足不断增长的需求,”Arielli 说。

这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!