13 Scalability Best Practices
AFK Partners has release what they feel are the Best Practices for Scalability:
- Asynchronous - Use asynchronous communication when possible.
- Swim Lanes – Create fault isolated “swim lanes” of hardware by customer segmentation.
- Cache - Make use of cache at multiple layers.
- Monitoring - Understand your application’s performance from a customer’s perspective.
- Replication - Replicate databases for recovery as well as to off load reads to multiple instances.
- Sharding - Split the application and databases by service and / or by customer using a modulus.
- Use Few RDBMS Features – Use the OLTP database as a persistent storage device as much as possible.
- Slow Roll – Roll out new code versions slowly, to a small subset of your servers without bringing the entire site down.
- Load & Performance Testing – Test the performance of the application version before it goes into production.
- Capacity Planning / Scalability Summits – Know how much capacity you have on all tiers and services in your system.
- Rollback – Always have the ability to rollback a code release.
- Root Cause Analysis - Ensure you have a learning culture that is evident by utilizing Root Cause Analysis to find and fix the real cause of issues.
- Quality From The Beginning – Quality can’t be tested into a product, it must be designed in from the beginning.
This is just a quick summary, more details on their site.