Instacart is an Internet-based home delivery service for groceries. Its mobile app and website enables consumers to leverage its service, which operates in 17 cities across the country. Customers order through the app, and Instacart’s personal shoppers fulfill those orders at local stores. Forbes magazine named Instacart the Most Promising Company of 2015, citing its growth since the company’s 2012 inception, notes Nick Elser, director of Engineering at Instacart.
DevOps touches critical business applications at Instacart, including the apps and APIs for both iOS and Android mobile operating systems. It also supports back-end systems such as processes rooted in machine learning that assign grocery lists to shoppers and a pipeline that retrieves retail partner product data about available grocery items nightly.
Key Mobile Development Challenges & Goals
The Instacart DevOps shop is tasked with maintaining infrastructure in software, expanding the current business apps through innovations, and scoping and building future software for the company and its services. “We needed better infrastructure-monitoring solutions in place to save time and help scale parts of the infrastructure as the company continued to grow,” says Elser.
Elser and his team looked at SolarWinds‘ capabilities, and were enticed by the Librato cloud-based monitoring tool’s potential to safeguard the performance and uptime of the company’s mobile APIs. “Our customers demand a high level of reliability from their consumer services,” says Elser. “Librato ensures the reliability of our mobile APIs by keeping a close eye on the health of our internal/external services.”
Instacart hoped to use SolarWinds to support its infrastructure-scaling efforts. By enabling Instacart to leverage aggregates of logging data and statistics reports, Elser and his team could focus on creating an increasingly innovative and fruitful grocery delivery service. “We wanted to concentrate on scaling our operations, fleet of shoppers and metropolitan presence, as well as identifying processes that would enable us to move faster as a team,” explains Elser.
Applying SolarWinds Tools
With the software libraries they needed already present in the programming languages and environments they had on hand, implementing the SolarWinds tools to serve Instacart’s intended goals was relatively pain-free. One tool, Papertrail, required only a minor adjustment to existing config files to forward log records.
Papertrail log management tool eased logging duties for the entire Instacart infrastructure. “I could have Papertrail on all my boxes, give it an endpoint and it would be aggregated into different buckets based on host names,” says Elser.
Instacart also added SolarWinds’ Pingdom solution to notify the team about website downtime issues. This enabled the team to gauge real-world user experiences with uptime and to assess synthetic transactions for issues that could concern customers. “Pingdom was the most flexible uptime monitoring tool my team could find,” says Elser.
Librato also proved worth the effort, thanks to its many value-adds. “We received a lot of free advantages with Librato because it came with Amazon CloudWatch integration,” says Elser. This made it fairly trivial to add instrumentation to our apps.”
Using Librato ultimately enabled Instacart to create graphs to identify correlations in event data—instances where some relationship exists but falls short of cause and effect. Instacart could then use that data to pinpoint and resolve security breaches. “We also use the Librato CloudWatch integration to monitor database loads, as these affect the infrastructure’s health,” says Elser.
By integrating Librato with Heroku and AWS CloudWatch and applying other SolarWinds apps, Instacart gained visualizations of important infrastructure elements and transparency into its entire software stack for monitoring stack health.
Instacart also uses other tools to help its DevOps, including Crashlytics mobile crash and usage tracking application, Urban Airship mobile push notification tool, Branch.io deep-linking application and the Rollbar exception tracking tool.