Macmillan chooses AppDynamics to monitor Windows Azure applications
Macmillan Publishing Group is a global trade publishing company, owned by Verlagsgruppe Georg von Holtzbrinck. Holtzbrinck is one of the world's leading media companies focused on print and electronic media, providing information, disseminating knowledge, and serving the needs of educational, professional and general readership markets.
Headquartered in Stuttgart, Germany, it owns about 40 companies including book, magazine and newspaper publishers, and new media firms.
Part of Macmillan’s publishing business includes top-of-the-line textbooks, which Macmillan provides to thousands of students around the world. In addition to paper textbooks, Macmillan also offers online course materials and activities to supplement students’ learning. Macmillan’s application teams in the UK are responsible for building, maintaining and supporting applications that are fast and scalable, no matter where in the world its users are.
In order to achieve the global scale required of its applications, Macmillan decided to host them in Microsoft's Windows Azure cloud, with data centers in all of the major areas the company served. By hosting identical versions of the online learning applications in each data center, Macmillan could ensure that students had the same user experience, no matter their location.
Since the architecture of Macmillan's .NET applications was fairly complex, it was difficult to identify performance bottlenecks with the monitoring tools available in Windows Azure. “The monitoring reports in Windows Azure are very high-level,” said James Graham, Project Manager at Macmillan. “We had difficulty determining whether issues were arising in the application or the network, let alone which service they were coming from.” So Graham's team began to look for an application performance management (APM) tool that could give them deeper visibility into their applications in Windows Azure.
Graham's search was limited by the fact that very few APM tools were designed to run in the Windows Azure environment. Of those, he found that the AppDynamics platform offered the best solution for monitoring a complex, distributed .NET application structure in Windows Azure. “AppDynamics APM shows us how the different services interact, and allows us to sort through the data to fix the real problems,” Graham said.
“It was very easy to plug in and deploy on Windows Azure,” Graham added. Within a few hours of getting the license keys, Macmillan's developers were able to identify a problem they had been trying to locate for over a month. “We realized that one of our database queries was pulling back a large amount of data from the database, but only serving a small amount,” said Graham. “This was causing unnecessary overhead, and slowing down the application for the end user.” Without the AppDynamics solution, Graham said, “we wouldn't have been able to work that out.”
Graham initially used the AppDynamics platform as a troubleshooting tool, but has shifted to performance optimizations and even some capacity planning. “Every month we look at the data we get from AppDynamics APM and figure out what code needs to be refactored, or what optimizations need to be done in the database, to improve performance,” Graham said.
“We can also take that data and figure out how our application would perform if we plan on scaling the application?say, from 80,000 to 500,000 students. It helps us plan what resources we'll need in the future.”
The AppDynamics platform also helped Macmillan gain visibility into third party service calls. “Now we're able to go back to third party companies that our application interacts with and show them where the problems are. We've worked with some of our partners to optimize their services, which has resulted in high gains for us. Some end user calls that used to take 10-15 seconds now only take 2-3.”
“AppDynamics gives us a much better visualization of what's going on under the hood in our applications,” said Graham. “It shows you the difference between what you think you're doing in the code and what's actually being executed in the application runtime. Ultimately, that's helped us improve the end-user experience for our students.”