As the largest consumer technology company headquartered in Denver, CO, Ibotta (“I bought a…”) is transforming the shopping experience by making it easy for consumers to earn cash back on everyday purchases through a single smartphone app. Ibotta is the premier destination for rewarded shopping on mobile, and has paid out more than $200 million in cash back to its users.
Launched in 2012, Ibotta has nearly 22 million downloads, and is one of the most frequently used shopping apps in the United States. Smart shopping starts with Ibotta.
CI/CD Before Harness
Ibotta performs up to 16 production deployments a day.
Developers in the past would often spend up to 45 minutes per deployment context switching across branches, consoles, tools, and log files.
Teams would manually verify production deployments, and spend an additional 45 minutes analyzing New Relic, Datadog, and Sumo Logic data manually. Detecting performance anomalies and regressions post-deployment was difficult and sometimes impossible due to the amount of data and events being collected.
As Ibotta scaled up its microservices deployments, the current CI/CD process became challenging and unscalable as most deployments were done in an ad-hoc fashion directly from the developer’s laptop. The need to formalize and automate this process was paramount, as was the need to move away from blue/green deployments to canary deployments to mitigate risk and business impact to end users.
The Compelling Event
Ibotta embarked on a project to migrate away from their legacy Ruby on Rails monolithic architecture to a cloud-native microservices Kubernetes architecture running in Amazon Web Services (AWS). As part of this transition, Ibotta required a new approach to deployments and Continuous Delivery.
Harness was evaluated within Ibotta’s staging environment for a few weeks. Harness successfully integrated with Ibotta’s technology and tools consisting of:
- Travis CI for Continuous Integration
- Docker artifacts and Kubernetes container orchestration
- AWS for Cloud compute
- New Relic and Datadog for APM and Infrastructure monitoring
- Sumo Logic for application log analytics
- Slack for notifications
Harness helped Ibotta build deployment pipelines in just a few hours and also automated their entire deployment verification (a.k.a. health check) process using machine learning. Harness was also able to demonstrate a wide range of out-of-the-box deployment patterns such as Kubernetes, Helm, Blue/Green, and Canary. It also allowed Ibotta to extend these patterns and processes using custom logic.
Key Harness Benefits
Harness provided the following benefits for Ibotta:
- Single pane of glass minimizes context switching for developers and reduces noise
- Canary Deployments for all deployments, mitigating risk (2% users vs. 100% users)
- Reusable deployment patterns and templates for all dev teams
- Provides a real-time read-only view of production
- Machine learning automates health checks using New Relic, Datadog, and Sumo Logic data
- Automated Rollback
- Secret and key management across deployment pipelines
Rapid engineering and customer support by Harness meant many of Ibotta’s feature requests were introduced into the Harness platform in a matter of weeks. The Harness customer success team also dedicated a project lead to assist with on-boarding for free, in addition to training and adoption for the Ibotta development teams.
The Harness ROI
Ibotta is now able to support hundreds of microservice deployments per day with no added headcount. Harness has been able to automate and formalize the deployment and verification of microservice deployments across dev, QA, and production.
In the first few months of adoption, Ibotta has seen deployment time and effort reduced by 90%, and rollback time reduced by 78% from 45 minutes to just 10 minutes. This level of automation will save Ibotta approximately 25 hours of engineering resource per day (125 hours per week), which is the equivalent of 3 FTE engineers or $600,000 in productivity savings for engineering.