Tuesday, November 09, 2004

On Keeping It Simple

I'm working with a client now in their performance testing of a very large web application.

This application was written in .NET with Microsoft's assistance and they're now using Compuware's QA Load product. It's a well written application and the guys working it are quite sharp.

Some random thoughts here:
  1. .NET Remoting is not a good idea. It's a tightly coupled distributed architecture that works only on .NET applications. It's got a big learning curve for developers, and it's very tough to run performance testing tools on it.
  2. Use Web Services or (even better) a real information bus instead. ESBs are good stuff here.
  3. ASP.NET Session management is a huge performance drag on very busy sites. This site runs on a Unisys ES7000 and it's causing some issues. If you're using it, be very careful with how often you access it. And on those lines--
  4. Being as stateless as possible in the web tier is the way to go. Keep it simple, keep things in an encrypted Query String and hit the database if you have to, or use the .NET caching features.
  5. I think maybe (and I'm definitely not an infrastructure guy) the path of buying a bunch of cheap machines and running a load balancer in front of them is the way to go. You can do the same thing with your application server tier if you have one. It's cheap, it's very easy to expand, and most of all it makes for a simple architecture.