With 13,500 undergraduates and 6,000 graduate students, Cornell University is the largest Ivy League school. Its campus includes 14 colleges and schools: seven undergraduate units and four graduate and professional units in Ithaca, NY; two medical graduate and professional units in New York City, and one in Doha, Qatar. Cornell is a major research university and a land-grant institution dedicated to its mission of accessibility and opportunity, outreach, and public service.
Three months ago, Cornell deployed the Kuali Financial System (KFS), a community-sourced enterprise financial services application. This application is used by the school’s financial services department to set up billing and accounting, make purchases, and fill purchase orders. Many of the school’s employees depend 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. Many of the most important transactions, such as making a purchase, required multiple levels of review and approval, and these complex transactions 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 is where the KFS Team needed visibility. “Fixing something in dev doesn’t mean fixing something in prod. Neither of our tools provided the visibility and low overhead that AppDynamics does in production,” said Kevin Kronenbitter, KFS Technical Lead.
Ultimately, Cornell decided to purchase AppDynamics to gain insight into their production application. They chose AppDynamics at the recommendation of Kuali consultants and other partner schools using KFS. AppDynamics’ long history with Kuali applications gave them confidence in the product.
“We found the biggest benefit from the outlier request snapshots with our payment request transactions,” Kronenbitter said. Not all transactions in their application are the same – some are larger and take more processing time. With AppDynamics, 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.
With AppDynamics, Hutchinson and his team have been able to reduce the amount of time it takes 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.”
The best part about AppDynamics for Kronenbitter is its request snapshots. They not only allow him to troubleshoot performance problems faster – they also allow him to perfect his code. “AppDynamics 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.”