ASP.NET Scalability – 2000 + simultaneous user sessions
Highly Scalable, Internationalized Web Application – Dell Battery Replacement
Requiring a quick turnaround (3 months) and a HIGHLY scalable website (in 8 different languages), I helped DELL build a scalable, multi-lingual (internationalized) website to speed up the returns process.
The Challenge
- Laptops with affected batteries were already in use all over the globe – in over 40 countries – in every major continent (Australia, Asia, Europe, South America, North America). The web application would have to support various languages as well as the different locales within a language (e.g. Canadian French, ‘French’ French, Taiwanese Chinese,Traditional Chinese).
- There were over a million affected laptop batteries – the serial numbers of which would need to be verified across disparate databases. An elegant solution requiring minimal database hits would be needed for handling the anticipated website traffic.
- The number of languages and locales to be supported could grow at any time. The solution needed to be flexible to support new languages – which may be discovered after deployment as well.
- Since affected laptop batteries were already in use – and needed to be recalled ASAP – the website had to be in production ASAP!
The Solution
Using the .NET runtime’s globalization support, the first step was to isolate all resource strings, images and other UI elements that would be presented in the user’s browser. These isolated ‘language-specific’ resources were compiled into individual satellite assemblies which were automatically loaded based on the language and locale detected in the user’s browser. High performance, scalability and resilience were all key requirements – since the website was to receive hits from around the globe – (several hundred thousand hits per day). I helped design and implement a solution which included:
- Application caching of large datasets – Serial numbers that were part of static lookups were loaded once into memory and kept there – to avoid unnecessary database roundtrips.
- Server Farms – along with database based session management – to accommodate persistent sessions between different servers on the server farm
- Highly optimized web controls from Infragistics – offering sophisticated dynamic web controls for a better end-user experience.
- Dynamic loading of individual language resources based on the user’s chosen language and locale – with the flexibility to add more languages down the road.
- Comprehensive unit tests written for each critical use case – fromverifying battery serial numbers to order placement. Fully automated build process – encompassing entire web application including multiple language support – providing a perpetual ready-to-release option for the web application.
The Result
- An extremely successful production launch – which handled upto 100,000 hits hourly and upto 2000 simultaneous user sessions.
- An end-to-end user experience which was unmatched in both – user-friendliness as well as speed.
- A solution which allowed additional languages to be added after the production launch – without any code changes! This helped DELL service other countries where they later discovered they had shipments of affected laptops (e.g. Brazil, Portugal).
- An extremely successful returns program that served over a million affected laptop customers around the globe.
Leave a Reply