There are two methods of scaling (a dichotomy): scaling up (vertical scaling) and sealing out (horizontal scaling). Although neither is a silver bullet, implementing either one or a combination of two is often the right action. Choosing which way to go depends on the application and operation overall.
Some services are elastic; they can add or remove resources depending on the need. Some of them need manual scaling, which leads to a simpler system and fewer operational surprises.
What kind of scaling to use will always depend on the system. The system that scales well will be built around assumptions of defined load parameters (predicted common and rare operations).
In start-ups and non-proven products, itβs more important to iterate on the product instead of building the system for a hypothetical future load.
- Related Note(s):
- Source(s): Designing Data-Intensive Applications by Martin Kleppmann