Dr. Glinz COVIS GmbH provides enterprise-level custom CRM solutions. Their custom-built CRM applications are used across large organizations, from the service desk to production, consolidating all customer data in one UI. Customer concerns like complaints, orders, questions about products or contracts, and so forth are handled by the application and coupled with a BPM platform. The largest of these applications handles up to 200,000 transactions an hour during peak times, filing 14 million customer complaints and questions per year and servicing over 4,000 users within their customers’ organizations.
Covis is responsible for making sure not only that these applications are up and running, but that response times stay below one second even under heavy load. “With our distributed architecture, this means communication between the front-end, caches, database and services has to be robust, scalable and fast, as nearly every request touches more than one of these components,” said Kristof Berger, Chief Software Architect. “Furthermore, if our application is not meeting its SLAs, it’s important to us to be able to see which components are not meeting SLA criteria so we can troubleshoot quickly.”
Before they acquired AppDynamics, Covis relied on its developers to use trace tools to test and resolve performance issues before they reached production, where finding performance problems became “a nightmare.” These tools gave insight into a single component, but could not provide visibility across their entire distributed environment.
“The downsides of this method are obvious,” said Berger, “In development you always have a rather reduced perspective of what the application does. In production there usually is no application- or performance-centric monitoring, only infrastructure monitoring, which in most cases is misleading – a server in good health might still perform miserably due to miserable code.”
What Covis needed was a tool that could provide both wide visibility across a distributed application as well as deep visibility into the functioning of specific components, all in a live production environment. “Our vision of what we wanted was a tool that could monitor transactions across all our tiers, gathering and storing context information for later analysis, and also give us an application-centric perspective on how the application performs both in test and in production,” Berger said. “AppDynamics delivered just that: no-time installation, transaction detection, the possibility to leverage instrumentation with custom rules and a performance impact analysis that can easily be assigned a dollar value.”
According to Berger, AppDynamics was up and running in a matter of minutes. “The controller took 20 minutes, the agents took 5 minutes, and configuring the app agents took 20 seconds. Smaller environments can be done manually in less than half an hour, and for larger ones you can create custom rules pretty simply – your system can be fully configured within an hour.”
Covis also evaluated another APM solution, dynaTrace, before they selected AppDynamics. “We didn’t go too deep into dynaTrace, however, for a pretty simple reason: unlike AppDynamics, which invites you to work with it and profit from the data it provides, dynaTrace keeps trying to keep you away from what it knows about your software,” Berger said. “The bottom line is, other tools are not as easy to use and understand as AppDynamics.”
“Finding root causes for errors or bad performance used to be a nightmare, and most of our development team believed this would completely change when using another tool,” Berger said. “Well, it did. As soon as AppDynamics’ agents started monitoring the application’s components, we had a crystal-clear view of what happened, how long it took, and which components were bottlenecks in the specific scenarios. Now we can identify the root cause of a problem within 5-10 minutes.”
AppDynamics was also helpful in Covis’ test environment. “With every build we ran load tests to verify our solutions, and we had direct feedback from AppDynamics about whether these solutions changed the performance for the better (or not),” Berger said. “Running AppDynamics within our test infrastructure did not influence the system’s performance too much (only about 2-3% according to our load tests) and it enabled us to completely analyze what happened.”
One of the biggest problems Covis had in their application had to do with their Business Rule Engine, which served about 1,000 calls per minute, but wasn’t performing as Berger’s team expected. Within five minutes they discovered that the engine was recompiling each rule on every call instead of using the precompiled versions, which was putting a heavy load on the machine. The fix was done in thirty seconds, deployed in a minute, and within another two minutes they could see with AppDynamics that they had solved the problem.
Ultimately AppDynamics has provided value not just for Berger, but for Covis’ entire IT organization. “Our developers can analyze user problems much better now, as they always have the information about what happened at their fingertips. Our service desk is able to proactively monitor the applications, and then give the developers the exact location of a problem,” Berger said. “I never thought I’d say this, but I’ve actually started looking forward to problems, since they’re so easy to find and fix.”