13 Scalability Best Practices

AFK Partners has release what they feel are the Best Practices for Scalability:

  1. Asynchronous - Use asynchronous communication when possible.
  2. Swim Lanes – Create fault isolated “swim lanes” of hardware by customer segmentation.
  3. Cache - Make use of cache at multiple layers.
  4. Monitoring - Understand your application’s performance from a customer’s perspective.
  5. Replication - Replicate databases for recovery as well as to off load reads to multiple instances.
  6. Sharding - Split the application and databases by service and / or by customer using a modulus.
  7. Use Few RDBMS Features – Use the OLTP database as a persistent storage device as much as possible.
  8. Slow Roll – Roll out new code versions slowly, to a small subset of your servers without bringing the entire site down.
  9. Load & Performance Testing – Test the performance of the application version before it goes into production.
  10. Capacity Planning / Scalability Summits – Know how much capacity you have on all tiers and services in your system.
  11. Rollback – Always have the ability to rollback a code release.
  12. 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.
  13. 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.