System (KFS). The university's financial services department used the application to set up billing and accounting, make purchases and fill purchase orders. Many of Cornell's employees depended upon this system's uptime and availability to do their jobs.
However, the application could not always support the complex transactions that Cornell's employees needed. Some important transactions, such as making a purchase, required multiple levels of review and approval, and this complexity sometimes brought the application down. “We had issues with the system crashing or becoming non-responsive a few times a week,” said Bryan Hutchinson, former KFS Service Manager. “It was challenging trying to pinpoint the root cause of those issues.”
In order to find the bottlenecks that were causing performance problems, Hutchinson and his team used profilers and monitoring tools like YourKit and JavaMelody. These tools, however, incurred too much overhead to be of any use in production, which was where the KFS Team needed visibility. “Fixing something in development doesn't mean fixing something in production. Neither of our tools provided the visibility and low overhead that the AppDynamics platform does in production,” said Kevin Kronenbitter, KFS Technical Lead.
With the AppDynamics platform, Hutchinson and his team reduced the amount of time it took to respond to complaints from end users. “Now we're able to correlate the symptoms to the problem. It's reduced the turnaround time on complaints drastically,” Hutchinson said. “We've been able to turn around fixes within half a day.”
“We found the biggest benefit from the outlier request snapshots with our payment request transactions,” Kronenbitter said. Not all transactions in their application were the same?some were larger and took more processing time. With the AppDynamics platform, Kronenbitter could see how these transactions were performing relative to their respective baselines. “We were able to identify a bottleneck in the transaction that had many items on it, and we were able to refactor the code to eliminate the requests that weren't really necessary,” he said.
The platform's request snapshots capability was most beneficial for Kronenbitter. These snapshots not only allowed him to troubleshoot performance problems faster, but enabled him to perfect his code. “The AppDynamics platform allows us to see what is going on and identify the issues that could be refactored and made faster,” he said. “It lets us bridge the gap between anecdotes from users and actual, actionable information.”