Scaling from Zero to Millions
- Single Server: Hosts the entire application
- Separate Servers: Website (Web Tier) and Database (Data Tier)
- Load Balancer: Route traffic between multiple servers
- Database Replication: Generally Master Slave Model
- Cache: Store frequently accessed data
- CDN: Store frequently used static assets
- Stateless Servers: State Information stored outside server
- Data Centers (Different regions): Reduce overall latency
- Message Queue: Store tasks to be performed by backend Worker servers asynchronously
- Logging & Monitoring: Collect stats about the system
- Scale Database: Sharding and partitioning