BuyerQuest brings the eCommerce shopping experience to employees of enterprise businesses, so procurers can make informed buying decisions and enjoy faster, more streamlined relationships with suppliers. BuyerQuest’s procure-to-pay solution powers sophisticated procurement systems that support some of the world’s largest organizations. Their software simplifies and enhances complicated corporate buying processes, and BuyerQuest’s users benefit from increased user adoption, contract compliance, and cost savings. BuyerQuest lets users create custom marketplaces and manage online requisitions, purchase orders, receiving, and invoicing.
A Sophisticated Solution for a Complex Data Tier
BuyerQuest keeps their solution running smoothly thanks to the combined efforts of their operations team. On a daily basis, the team provides first-tier support—what Justin Spies, Director of IT Operations, described for us as, “Keeping the lights on and troubleshooting.” The team’s focus areas include web servers, databases, and “anything that has a monitor attached,” as Justin put it. The team is a mix of Unix experts, programmers, and infrastructure specialists.
"We've had a couple of issues that we were able to spot before they became outages. We saw what was going on thanks to VividCortex, and within minutes we pinpointed what we needed to do."
- Justin Spies, Director of IT Operations
Without a dedicated DBA, the team shares responsibility for the database’s health and performance. This sort of cooperative environment emphasizes DevOps principles across a variety of users—an ideal environment for VividCortex, which provides real-time, intuitive visibility into database metrics and internals. With VividCortex, performance analysis is intuitive and accessible, meaning that even the non-DBAs at BuyerQuest can investigate any database issues and maintain high performance. The team categorizes their tasks as either long-term projects or more immediate, daily efforts—the former include securing the system for future growth and scalability, and the latter involve quickly spotting and resolving any performance issues that appear in the course of normal development. In both cases, VividCortex gives BuyerQuest the kind of deep, on-demand visibility that meets the team's standards for maintaining smart, safe operations.
The BuyerQuest solution is entirely PHP; the team uses MySQL, MongoDB, Redis and Memcache for caching, and Solr for search. Even as BuyerQuest delivers a seamless, focused service to its users, the team uses a blend of diverse technologies. This combination produces excellent performance and functionality—but it also means BuyerQuest's data tier is complex, with visibility and performance challenges. This requires a specialized database monitoring solution, designed for a distributed system. BuyerQuest software runs in AWS EC2 with the standard Amazon monitoring tools, New Relic for the application tier, and VividCortex for the data tier.
An EKG for Their Systems
Before using VividCortex, Justin and his team found that while standard performance monitoring tools could reveal a cursory view of the system's underlying components (disk utilization, CPU), they could not monitor important details of what was happening deep inside MySQL.
Justin described what he needed as "an EKG, to see what’s really going on inside, to understand the heartbeat of the database.” With standard MySQL tools, the team had some visibility into the database, but it was limited. Conventional tools couldn't surface what was really happening when the database reached the limits of key resources like CPU, memory, and disk I/O. Though the team could clearly see that resources were taxed, the details of the workloads, causing these issues, were extremely difficult to pin down. VividCortex resolved these visibility gaps, with its performance-centric focus and capture of every transaction in the data tier. With intuitive visualizations and readouts, and deep drill down capabilities, VividCortex provides the database EKG Justin asked for—not just for a single, specialized user, but for a variety of team members.
"VividCortex's fine-grained details around specific queries are invaluable. If I click on one, it shows exactly what's happening with that query."
- Justin Spies, Director of IT Operations
Getting Everyone Involved
As a nimble team with shared responsibilities, BuyerQuest aims to equip many users with DevOps solutions. They found implementation of VividCortex to be a snap. In the past, in order to use conventional monitoring systems, each team member had to connect to the VPN, connect to the database instance, and then run a set of commands to see basic performance data. Now, with VividCortex's secure SaaS setup and unlimited user provisioning, team members can log into the app instantly, use the Profiler page to see key metrics like top queries and top processes, or turn to the Charts page and view automatically generated visualizations for resources such as CPU and Disk.
“You just look at it all in one place, and you can see what’s happening in your system,” Justin commented. “I can have team members with a little less database expertise go in and say, ‘Look there’s a pattern here,' which points us toward the issues.” Justin also rolled out VividCortex beyond the support team, first to architects and then developers. “We share VividCortex charts across the organization, which helps educate everyone, including non-technical employees. They can interpret what they're seeing and isolate issues very quickly,” Justin said.
"With VividCortex, I can have team members with a little less database expertise go in and say, ‘Look there’s a pattern here,' which points us toward the issues."
- Justin Spies
Better Visibility Means Quicker Responses
Even with proactive monitoring, the BuyerQuest team knows that issues will inevitably arise, and the team will need to act quickly. Justin recalled a recent incident that the team resolved with VividCortex: the team saw a spike in CPU utilization, caused by a surge in database reads—which previously would not have been visible—and quickly identified that the chain reaction had begun in an issue with lock contention.
Justin commented, “On its own, MySQL doesn't give you any visual stats, historical performance metrics, or context—just stats for the present, in non-visual form. With VividCortex, we get detailed charts, and I can zoom out and—for example—see that our average usually runs at x, but right now it’s at 500x. Something is going on. Let’s figure out what it is.” With more powerful analytics, his team can now drill down into the system and see which queries are running. If there's poor performance, they pinpoint the problem in minutes. In the past it would have taken two to three times longer—enough time for a slow system to collapse into an outage. With better visibility, Justin and his team can prevent an issue from resulting in serious downtime impacting customers.
Read the full case study here: