Olo 借助 Grafana k6 实现更快的测试和更好的协作
关键要点
- k6 已成为 Olo CI/CD 流水线的重要组成部分,帮助团队在性能回退达到生产环境之前检测出来。
- k6 基于 JavaScript,因此各团队可以轻松协作进行负载测试过程,并且 PR 审查不再包含大型 XML 文件的更改。
- 有了 k6,性能测试已成为一种普遍实践,使得 Olo 团队能够持续改进平台,并为按需餐饮客户提供流畅愉快的体验。
-–
Olo 是一个领先的按需商务平台,为餐饮业的数字化转型提供动力。每天有数百万订单在 Olo 的企业 SaaS 引擎上运行,使品牌能够最大限度地实现数字运营与实体运营的融合。Olo 平台提供基础设施,用于捕获需求并管理来自各个渠道的消费者订单。通过与 100 多家技术合作伙伴集成,Olo 客户可以利用市场上最大、最灵活的餐饮商务生态系统构建数字体验。超过 400 个餐饮品牌使用 Olo 来增加数字销售、最大化盈利能力并维护直接消费者关系。
挑战
Olo 的负载测试主要涉及两个技术团队——测试软件工程师 (SET) 和软件工程师 (SWE)。几年来,Olo 的团队使用包含 JMeter 创建测试脚本和 CI/CD 流水线来协调一切的负载测试栈。团队使用 CI/CD 流水线以及 NodeJS 通过一家知名的云负载测试提供商运行脚本。
在为一家新的餐饮品牌提供入驻服务时,Olo 团队注意到该品牌在其端使用 k6 进行集成测试,工程师们与他们分享了脚本。Olo 团队发现,与他们现有的工具相比,k6 CLI 在云端自动化和触发负载测试方面显著更容易。
SET 团队发现,在基于 Javascript 的 k6 解决方案中编写负载测试比在基于 Java 的 JMeter 应用程序中编写更愉快。一个 JavaScript 解决方案意味着 PR 审查将不再包含大型 XML 文件的更改,使他们能够重用模块并将负载测试代码视为一个真正的测试套件。
在进一步了解 k6 后,团队意识到他们现有的负载测试工作流不如他们所需的那样快速、高效和协作。
解决方案
团队将 k6 Cloud 集成到他们现有的 CI/CD 流水线中,用于测试公共和私有 Olo HTTP API。对于私有 API,团队从他们自己的测试网络运行测试。然后他们将结果发送到 k6 Cloud,以便在其 UI 中进行审查。k6 在 Olo 的 CI/CD 流水线中扮演着至关重要的角色,帮助团队在性能回退达到生产环境之前检测出来。
我们平台的性能和可靠性对 Olo、我们的品牌和我们的合作伙伴至关重要。因此,k6 已成为我们测试栈不可或缺的一部分。k6 帮助我们快速尝试新想法并验证发布版本是否已准备好投入生产。
Jake Travisano,Olo 测试部门资深软件工程师
团队使用 k6 的 阈值 功能作为发布准备就绪的通过/失败指示器。他们使用阈值测试各种组件,例如响应时间、CPU 利用率和数据库查询延迟。如果任何阈值失败,CI/CD 作业将向团队发出告警。在大多数情况下,SET 团队只需在 k6 的 UI 中快速审查结果即可找到问题。
团队将 可视化和分析 功能作为协作的重点,经常参考详细的图表和报告来讨论测试结果和行动计划。团队在协作过程中自然地分享技术知识、领域知识和平台想法。随着越来越多的工程师获得 k6 的经验,性能测试已成为团队的日常活动——无论是每天运行测试,还是将性能测试计划纳入新功能和项目的开发中。
结果
有了 k6,各工程团队可以快速编写、修改和执行负载测试脚本,这有助于性能测试在 Olo 成为一种普遍实践。这种普遍实践使得团队能够持续改进 Olo 的平台,并为餐饮客户提供流畅愉快的体验。
我们对 k6 的使用在帮助我们将系统推向极限、识别其崩溃点以及探索在意外情况下的行为方式方面发挥了关键作用。k6 也已成为试验性能优化的宝贵工具。
Justin Rusbatch,Olo 资深软件工程师
团队之间的协作显著改善——SET、SWE 和数据库管理员 (DBA) 定期结对规划和运行测试,然后讨论和分析结果。此外,SET 还通过 k6 扩展了协作努力。他们有时会与现场可靠性工程 (SRE) 团队协作使用 k6,以帮助培训新的事件响应人员。
随着对性能测试的共同理念和团队之间更好的协作,Olo 团队对生产部署的信心显著增强。