Macmillan is a global trade publishing company, owned by Verlagsgruppe Georg von Holtzbrinck, with imprints in the United States, Germany, the United Kingdom, Australia, South Africa, and around the world.
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 their applications, Macmillan decided to host their applications in Microsoft’s Windows Azure cloud, which has data centers in all the major areas that Macmillan serves. By hosting identical versions of the online learning applications in each data center, Macmillan can ensure that students in India and Singapore have the same user experience as those in the United Kingdom.
Unfortunately, however, because the architecture of Macmillan’s .NET applications is 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 are designed to run in the Windows Azure environment. Of those, he found that AppDynamics offered the best solution for monitoring a complex, distributed .NET application in Windows Azure. “AppDynamics 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 said. Within a few hours of getting the license keys, Macmillan’s developers were able to identify a problem that they had been searching for 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 AppDynamics, Graham said, “we wouldn’t have been able to work that out.”
Another area in which AppDynamics has helped is providing 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.”
Graham initially used AppDynamics primarily as a troubleshooting tool, but today he uses it more often for performance optimizations and even some capacity planning. “Every month we look at the data we get from AppDynamics 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 users to 500,000 students. It helps us plan what resources we’ll need in the future.”
“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 been very helpful in helping us improve the end user experience for our students.”
Learn more about Macmillan at www.macmillanenglish.com.