Friday, 14 June 2019

Scalability | The 7 Stages Of Scaling Web Apps

Good presentation of the stages a typical the successful website goes through:

Stage 1 - The Beginning
Simple architecture
  • Firewall and load balancer
  • A pair of web servers
  • Database server
  • Internal storage.

Low complexity and overhead means quick development and lots of features, fast.
No redundancy, low operational cost.

Stage 2 - More of the same, just bigger.

Stage 3 - The Pain Begins
publicity hits. Use a 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, the partition on geography user ID, etc, creates user clusters, using a hashing scheme for locating which the user belongs to which cluster.

Stage 6 - Getting a little less painful
Scalable application and database architecture, acceptable performance, starting to add new 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 basket (single data center, a single instance of data).

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...