Saturday, December 16, 2006

Application Performance

As server-side .NET development becomes more prevalent, Application Performance Management tools are becoming available to fine-tune .NET applications. And, as in the past, it seems that the ability to build new and more sophisticated applications always stays ahead of the ability to manage them.

So said Bernd Harzog, CEO and founder of APMExperts. That, he points out, is exactly the situation organizations are now facing as they try to manage their .NET applications.

With more organizations looking to .NET as a platform for enterprise applications, Harzog said this is the next big area for the Application Performance Management. He and the various vendors targeting this space see .NET Application Performance Management following a similar trajectory as the market - and the management challenges - for J2EE performance tools.

Application Performance Management tools provide the ability to monitor and manage the performance of the application from the user's perspective, and track the source of problems. "The true value doesn't come in understanding .NET, but in the end-to-end picture of your application," said Rob Greer, director of product marketing-Application Performance Management, at Symantec Corp., in Mountain View, Calif.

"The [.NET] challenges are similar to J2EE," said Steve Tack, director of product management at Compuware. "These applications are relatively new technology. The same things that make them powerful and sophisticated also yield different challenges. There are many moving parts and components.

While there was an earlier adoption rate for applications in the Java space, "we're definitely seeing an uptake in .NET," Tack said.

Steve Stover, product manager for .NET at Quest Software Inc., in Aliso Viejo, Calif., said organizations learned some lessons about J2EE Application Performance Management that they are leveraging for their .NET applications.

"We see more customers beginning the deployment of .NET applications being more proactive about putting management in place as soon as they put applications in production," Stover said. "There were some hard lessons learned from the Java side."

Application Performance Management on the Java side is now what Harzog dubs an "elephant war," whereas the .NET Application Performance Management market is embryonic, he said. "In the last four years you had a bunch of startups that built pretty good [J2EE Application Performance Management] products that got acquired by big companies like IBM, Compuware, BMC, CA," he said. "Now managing Web-based J2EE applications in production is a solved problem, and you can buy products from mainstream systems management vendor."

Harzog has a caveat, though: "From a customer perspective, is managing J2EE applications in production a brainless thing to do? No. It's still difficult, even with the best of tools. That said, applications built to J2EE are probably the most manageable applications because of all these tools developed to instrument the stack. It's not perfect, but it's as good as it gets."

Hon Wong, CEO of startup Symphoniq Corp., and cofounder of NetIQ, said Application Performance Management is more mature on the J2EE side "from a hype point of view," but said the tools aren't quite there yet for the ability to provide an end-to-end approach for managing day-to-day application performance. However, Wong agrees that on the .NET side, "it's an open market."

"The market is 95% unpenetrated," Harzog said. "Vendors are just beginning to get traction. And the awareness that the need to manage these applications is different than before is slowly dawning on people. The tools are maturing, but there are very few things to choose from."

Harzog said vendors with .NET Application Performance Management offerings include Symphonic, Wily/Computer Associates, Symantec, Quest, Compuware, and AVIcode.

Diverse app pools

It's a complicated problem though, Harzog said, particularly on the .NET side, where the applications are typically more diverse than on the J2EE side. "The overwhelming majority of J2EE applications used in big-time situations are Web based, and the overwhelming architecture is a Web server, a J2EE application server, and a database server on the back end. If you've built J2EE applications to that set of components you've got a lot of choices with products that can measure transaction timing," he said.

In contrast, .NET applications tend to be more diverse, he said, as the .NET framework allows developers to include older applications rather than rewriting from scratch. "If I listed all the different ways in which Windows applications have been built since Windows existed, I would run out of time.

.NET allows you to include and reuse what you built in the past without rewriting it, but if you decide to go to .NET and include pieces of old applications, you've created a situation where [many] different things need to be managed."
The problem, Harzog said, is "a .NET-specific management tool can't penetrate the legacy code. As a developer you made a tradeoff without knowing it--you can get the application into production more quickly if you reuse legacy pieces, but you made it more difficult to manage."

Making the problem "exponentially more complex" is the growing trend toward Web services and service-oriented architecture (SOA), Harzog said. Now organizations can use someone else"s functionality wrapped in a standard interface. "You can build an application that has all kinds of external dependencies; it"s dependent on a bunch of stuff behind the API that you have no visibility into. SOA and Web services create diversity in terms of the external things you have to talk to and deal with in the code, on top of a diverse internal environment."

A lot of customers and vendors are now struggling to solve these issues, Harzog said. The promise of .NET Application Performance Management tools is that they will allow IT operations staff, who aren"t necessarily skilled in .NET, to identify and solve some issues on their own without involving the developers. Or for issues that require the developer"s expertise, the tools aim to provide enough information so the time it takes to address the performance problem is reduced.

Developer role
While developers do have a responsibility for creating applications that perform well and meet requirements, "performance and the management of applications are often secondary to delivering functional capability," said Quest"s Stover. As a result, once an application gets into production, the developers often fall into an application support role because they have the knowledge of the application and how it runs, he said.

The pressure to produce new applications is in large part why the Application Response Management (ARM) standard has not gained traction despite being around for more than a half-dozen years, Harzog said. "ARM is set of APIs and instrumentation that all developers are supposed to put in all applications. All the systems management vendors said it was the holy grail. What happened? No one did it. People who build custom applications for a living are under unrelenting pressure to put more features into applications in less time."

Symphoniq's Wong agrees. "Certainly if you have the time and budget to "ARM" it, it's a great way of doing it, but who has the time and budget? People are under time constraints; they usually don"t spec in monitoring capability." And when a developer tries to put instrumentation into an application, it's just guesswork, he said. "You're just guessing that this part may be more susceptible than others, but you usually guess wrong."

Wong and his competitors in the .NET Performance management tools space are trying to take the guesswork out of the developer"s job. The second part of this story will examine what Symphoniq and others have to offer, and what organizations should look for in a solution.

1 comment:

Anonymous said...

hey dont ya think its much talk on work.... life is much nore than this