This is part 2 of a two-part article. Read part 1 to learn how there's a greater need for better application performance...
management (APM) in order to maintain performance levels in multi-tiered environments.
While application performance management (APM) has been utilized more in production, Michael Azoff, senior research analyst at U.K.-based Butler Group, said organizations are starting to recognize the benefits earlier in the life cycle.
"Being able to close the loop between development and ops is an opportunity, to have the ears and eyes APM provides so you understand the performance of what you're creating," he said. "The worst thing is to develop an application in a development environment where you've got masses of processing power, then put the application in a stressed live environment and find it fails. There's a great opportunity for developers to make use of these tools."
Poorly performing or failed applications can cost a business money or reputation, so the earlier an issue is detected, the better.
"In the production environment, if you're in a position where you can see something going wrong before it fails that's good news," said Chris Limberger, marketing manager for application availability/application performance at U.K.-based Macro 4. However, he added, "it's much more cost-effective to find potential issues before moving into the production environment. This is where using APM solutions in the preproduction area is becoming a high focus."
Unfortunately, though, "performance is still considered by the majority at the end of the IT lifecycle," said Mark Eshelby, director of product management, quality solutions, at Detroit-based Compuware Corp.
"More proactive organizations are trying to bring APM-type capability into preproduction and augment load testing, or do profiling, or do it even sooner to profile code [in development]. The most proactive organizations look at performance at requirements. If you design an application and you don't consider the number of users at peak times or peak volume, you will develop an application that won't scale."
Scalability, uptime and meeting service-level agreements (SLAs) are all key to health services provider CareGroup, which utilizes Precise Software's i3 solution to monitor its patient care systems. Ayad Shammout, lead technical DBA at Boston-based CareGroup, said that prior to using i3, CareGroup was doing system monitoring.
"We knew from higher level if [the application] was responsive enough, but we weren't measuring performance response time. With a patient care system, you want uptime and performance to meet the SLA," Shammout said.
Also, Shammout wanted a real-time tool that told him more than if an application was up or down.
"We need 24/7 monitoring that collects details and stores it in a repository, so we can go back and monitor what happened a day/week/hour ago. Users usually call us after the fact, so we can go back in history and look at the application," he said.
For vendor-supplied applications, CareGroup has been able to pick up performance issues, such as slow-running queries, "and get a report back to vendors with a recommendation on what to do. They've modified the code and improved the product and sent us a hot fix to apply to the application, so we've been able to help vendors on tuning."
Having the information to fix the problems is key. Peopleclick Inc., which provides software and services for recruiting and hiring employees, uses DynaTrace for APM.
"Now that we understand the power and what you can do beyond a passive monitoring solution, we're starting to use it more and more," said Dave Anderson, founder and principal architect. "From an ROI perspective, the time you save not guessing about things can make it a no-brainer. A lot has to do with the value add of getting this level of detailed data out of the production environment. You can go through code reviews and all these simulations in the lab, but when it comes down to it, the most important thing is to understand what's happening in the real production environment, like what code path gets executed most often."
This type of information helps improve application quality as well "if you proactively use dynaTrace and feed it back to the development team based on solid facts rather than simulations," he said.
Peopleclick also uses dynaTrace in performance testing and preproduction for its Java and .NET applications, Anderson said. For example, he said, you might find that although the code is tight, it might be expensive resource-wise. "It's incredibly revealing to see … how expensive certain code is with respect to what it's doing to the database or other frameworks," he said.
Driving the use of APM
Insight into application performance will also become more important with the emergence of virtualization and the uptake in service-oriented architecture (SOA), according to Butler Group's Azoff.
In terms of SOA, he said, "you have loosely coupled applications and processes that pull in Web services and components, which makes monitoring and testing more challenging, so there's a good role for APM there. The other is virtualization. With virtual environments, it's is easy to create them and then destroy them. You can end up with chaos. You need to be aware of what's happening, what resources are being used, and is it a software problem or linked to some hardware issue."
Another driver of APM is end-user experience, Azoff said, "so not just about what's happening in the data center, but the experience the user is having. For example, there are shades of user satisfaction. Some users may put up with a lack of performance and not inform the help desk. It could be a Web application with a consumer at the end, or an enterprise app, or an app completely frozen on the screen and nobody in ops is aware because they see green lights on the dashboard. For organizations that have to keep SLAs, it's essential they have this kind of monitoring in place."
For organizations looking to implement APM, Macro 4's Limberger has some advice. "First, get some representatives together [from] business and IT, and ask yourselves, 'Are we happy that our applications are performing as efficiently as they should? Are we suffering performance issues or outages that have a direct impact on bottom-line cost or an impact to our brand or reputation?'"
Then, he said, determine which applications need to be performing well and which applications can tolerate less-than-perfect performance. Then agree with the user community on what an acceptable level of performance is and put in an APM solution in the production environment that can measure and report on performance.
Also, Limberger said, look at QA and preproduction.
"The majority of organizations with critical applications will have a well-developed QA environment where they put applications under some kind of test. What not all organizations do is put the application under a realistic simulated load in stress, document what happens, and measure it. That should be part of a preproduction process. You'll be in better position to answer the question, 'Is the application fit for a production environment?'"