with the buzz of Web 2.0, and the ever increasing volume of user requests online, building highly scalable web infrastructure and software architecture is of paramount importance. The challenge of building scalable software is nothing new, and in fact, the same old principles of 'design for scalability', 'building for scalability', 'testing for scalability' all still apply.
Some of these key principles that come to mind include:
- building stateless services
- ensure no bottleneck/hotspot in architecture
- remove potential deadlocks (both at the concurrent processes level and data access level)
These principles all contribute towards supporting a strong 'scaling out' capability, which in my humble opinion is a more strategic scale strategy than 'scaling up'.
For a real case study of how high scalability was achieved by MySpace.com, check out this report from CIO sight.