Olo is a leading on-demand commerce platform powering the restaurant industry’s digital transformation. Millions of orders per day run on Olo’s enterprise SaaS engine, enabling brands to maximize the convergence of digital and brick-and-mortar operations. The Olo platform provides the infrastructure to capture demand and manage consumer orders from every channel. With integrations to over 100 technology partners, Olo customers can build digital experiences with the largest and most flexible restaurant commerce ecosystem on the market. Over 400 restaurant brands use Olo to grow digital sales, maximize profitability, and preserve direct consumer relationships.www.olo.com
Load testing at Olo primarily involves two technical teams—software engineers in test (SETs) and software engineers (SWEs). For several years, the teams at Olo used a load testing stack that included JMeter to create test scripts and a CI/CD pipeline to orchestrate everything. The teams used the CI/CD pipeline along with NodeJS to run scripts via a well-known cloud load testing provider.
While onboarding a new restaurant brand, the Olo team noticed the brand was using k6 to test the integration on their end, and the engineers shared their scripts with them. The Olo teams discovered that the k6 CLI was significantly easier to automate and trigger load tests in the cloud than their current tool.
After learning more about k6, the teams realized that their existing load testing workflow wasn’t as fast, efficient, and collaborative as they needed.
Performance and reliability of our platform are of the utmost importance for Olo, our brands, and our partners. As a result, k6 has become an integral part of our test stack. k6 helps us quickly experiment with new ideas and verify that releases are production-ready.
The teams plugged k6 Cloud into their existing CI/CD pipeline, using it to test both public and private Olo HTTP APIs. For the private APIs, the teams run the tests from their own test networks. Then they send the results to k6 Cloud so that they can review them in its UI. k6 plays a vital role in Olo’s CI/CD pipeline by helping the teams detect performance regressions before they reach production.
The teams use the k6 thresholds feature as a pass/fail indicator for release readiness. They test a wide range of components with thresholds, such as response times, CPU utilization, and database query latency. If any thresholds fail, the CI/CD jobs will alert the teams. In most cases, the SET team only needs to do a quick review of the results in k6’s UI to find the problem.
The teams use the visualization and analysis features as a focal point for collaboration, often referring to detailed charts and reports to discuss test results and action plans. The teams naturally share technical knowledge, domain knowledge, and platform ideas while collaborating. As more engineers gain experience with k6, performance testing has become a regular activity for teams—whether running tests daily or working a performance testing plan into the development of new features and projects.
With k6, various engineering teams can quickly write, modify, and execute load testing scripts, which has helped performance testing become a common practice at Olo. This common practice has allowed the teams to continuously improve Olo’s platform and provide restaurant customers a seamless and enjoyable experience.
Collaboration among teams has improved significantly— SETs, SWEs, and database administrators (DBAs) regularly pair up to plan and run tests then discuss and analyze results. In addition, SETs have expanded collaboration efforts through k6. They use k6 on occasion in collaboration with their site reliability engineering (SRE) team to help train new incident responders.
With a shared philosophy around performance testing and better collaboration among teams, confidence in production deployments has increased significantly among Olo’s teams.
Our usage of k6 has played a critical role in helping us to push our system to its limits, identify its breaking points, and explore how it would behave in unexpected circumstances. k6 has also become an invaluable tool for experimenting with performance optimizations.