Scalability is the ability of a system, network, or process to handle a growing amount of load by adding more resources. The adding of resource can be done in two ways
Scaling Up – This involves adding more resources to the existing nodes. For example, adding more RAM, Storage or processing power.
Scaling Out – This involves adding more nodes to support more users.
Any of the approaches can be used for scaling up/out an application, however,r the cost of adding resources (per user) may change as the volume increases. If we add resources to the system It should increase the ability of the application to take more load in a proportional manner of added resources.
An ideal application should be able to serve high level of load in fewer resources. However, in a practical, linearly scalable system may be the best option achievable.
Poorly designed applications may have a really high cost on scaling up/out since it will require more resources/user as the load increases.