Scaling a system is an iterative process. Iterating on what we have learned in this chapter could get us far. More fine-tuning and new strategies are needed to scale beyond millions of users.
E.g., You might need to optimize your system and decouple the system to even smaller services. All the techniques learned in this chapter should provide a good foundation to take on new challenges.
How we can scale to support millions of users:
- Keep our web tier stateless
- Build redundancy at every tier
- Cache data as much as you can
- Support multiple data centers
- Host static assets at CDN
- Scale your data tier by sharding
- Split tier into individual services
- Monitor your system and use automation tools