« How to Scale with Ruby on Rails | Main | Scaling your cookie recipes »
Tuesday
Sep232008

The 7 Stages of Scaling Web Apps

By John Engales CTO, Rackspace. Good presentation of the stages a typical successful website goes through:

  • Stage 1 - The Beginning: Simple architecture, low complexity. no redundancy. Firewall, load balancer, a pair of web servers, database server, and internal storage.
  • Stage 2 - More of the same, just bigger.
  • Stage 3 - The Pain Begins: publicity hits. Use reverse proxy, cache static content, load balancers, more databases, re-coding.
  • Stage 4 - The Pain Intensifies: caching with memcached, writes overload and replication takes too long, start database partitioning, shared storage makes sense for content, significant re-architecting for DB.
  • Stage 5 - This Really Hurts!: rethink entire application, partition on geography user ID, etc, create user clusters, using hashing scheme for locating which user belongs to which cluster.
  • Stage 6 - Getting a little less painful: scalable application and database architecture, acceptable performance, starting to add ne features again, optimizing some code, still growing but manageable.
  • Stage 7 - Entering the unknown: where are the remaining bottlenecks (power, space, bandwidth, CDN, firewall, load balancer, storage, people, process, database), all eggs in one basked (single datacenter, single instance of data).

Reader Comments (1)

I am a total newbie to scalable architectures - I am from a J2EE background and at Stage 1 above, to be precise. Where do I learn more details involved in each of the 7 stages? Any good book or online resource? Thanks in advance

May 27, 2015 | Unregistered CommenterHarry

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>