Saturday, September 20, 2008

Scaling Strategies for ASP.NET applications

I finished reading an interesting MSDN article (http://msdn.microsoft.com/en-us/magazine/cc500561.aspx) that spoke to many of issues that enterprise application developers must face when scaling their solutions. Things like: it working just fine in the development environment but choking in Production due to the number of simultaneous users, or determining how to architect your server environment (i.e. application, web servers) for optimal performance, or what load-balancing is best for your situation, or what method should be chosen for storing Session State (with the intent of ridding your solution of affinity).
The article is long so I'll highlight some of their suggestions:

1) Use a hardware-based load-balancing solution.
2) Use SQL Server or ASP State Server to store session state.
3) Make sure file compression is turned on within IIS.
4) Turn off viewstate within your UI where it is not needed.
5) Leverage AJAX to reduce the payload on the client.
6) Use Data Caching judiciously but expect it to get complex.
7) Partition your data across databases and use replication to syncronize data.
8) Plan on your strategy growing as your application data and user base grows.

No comments: