For Raymond James Financial and its subsidiary companies, QA/load testing paired with the use of an application performance management tool is key to delivering a better product to its customers, according to Chad Miller, database administration manager. "We can find problems before we move an application to production," he said.
The St. Petersburg, Fla.-based company finds and diagnoses problems using a combination of HP Mercury LoadRunner and the Precise Transaction Performance Management (TPM) for Database product for application performance management (APM) from Precise Software, in Redwood Shores, Calif.
It has been doing so for about seven years, said Miller. Raymond James is primarily a Microsoft shop, with .NET for its Web tier and SQL Server for its database tier. The company's broker/dealer subsidiaries have more than 5,300 financial advisors serving approximately 1.9 million accounts in 2,300-plus locations throughout the United States, Canada and overseas. Total client assets are approximately $220 billion, of which $28 billion are managed by the firm's asset management subsidiaries. There are about 800 people in the IT department, Miller said.
Before implementing Precise, he said they were doing enterprise-level performance monitoring using Microsoft Operations Manager (MOM) 2005 and NetIQ. (They are now using Microsoft SCOM 2007.) "But we were not focused on the database tier; [it was what] we used for doing availability monitoring. When we
At the time, they were having an issue with a bottleneck in a customer application. After searching the available APM products on the market, Miller said they decided to try Precise on a trial basis in their environment. "We knew we had a bottleneck; we weren't able to ramp up to the required number of concurrent users. We put Precise on during the load test." Precise helped them identify that the problem was a single stored procedure, so only one user could execute at a time. "It was big to be able to run [the product] in our own environment before we made the decision to buy it," Miller said.
What really sold him on the product, however, was the methodology Precise utilizes, he said. "We looked at the details behind [available] performance management products at time, and Precise used wait-stat analysis, so what are things causing wait. Seven years ago the others weren't doing that."
As a result, Miller said, the overhead for running Precise is very low. "It goes back to the methodology of performance management. Some other tools run a SQL trace; that can be high overhead. By doing wait-stat, you pull [that information] to another server and do the calculations there; you don't have Precise agents on SQL servers."
Once the company decide to acquire Precise, Miller said they "originally put it in the development environment, but it didn't get much use there. The system was not stressed enough to see performance issues. We do use it in production, but we found the most use in QA/load test; during testing is where we found we got the most value."
He explained, "QA is great at constructing load tests, but for interpreting performance things on the database server, they give it to us to do." Miller said his group interprets the Precise results and addresses the problems identified.
Recently, Miller said an 18-month project to redesign a Web portal for external customers to access their accounts was having a scalability issue. They used Precise during several iterations of load testing and found that "some queries were not able to scale. We drilled in and found the problematic queries and fixed them. When the system went live, we didn't have problems. A lot of that is the result of load testing and the Precise product in place. We were able to drill into database performance issues that may or may not have been surfaced during load testing."
When issues are found, Miller said that typically the DBAs will rework the database code; other times they may give it back to development with suggestions.
Although Precise has other APM products, Miller said he doesn't anticipate using them because most of their applications are developed in-house and they're not using a vendor ERP system. Also, he said, "the back office is running some VB 6 COM stuff through ASP, and I don't have a good stack to put that into; Precise runs on .NET." He said if they were running a pure .NET stack or an ERP system he "would take a harder look."
Miller said going forward he would like to see Precise support virtualization. "It would be nice to have an end-to-end view that integrates with the database product," he said.
In terms of the learning curve for Precise, Miller said there is some complexity because "it presents lot of rich information." Initially they contracted for some training from Precise to get started. Now, he said, they have enough expertise internally to train a new user within a few hours.
For other organizations looking to do APM, Miller advises drilling into the details about how a product works. "A demo looks pretty, but figure out how they're doing it behind the scenes. I want to know how they're doing it, what the load is, and what kind of information you get back."
While performance management is important for Raymond James, Miller said it's also important "for us, for selfish reasons. Everyone blames the database for performance problems. For my department it's important to show what is causing the issue on the database server. It's not [about] where I need bigger hardware or a capacity issue, but code I can address. For my department, that's critical."