Scaling Vertically
Increase in the specifications of an individual resource, such as upgrading a server with a larger hard drive or a faster CPU
Scaling Horizontally
Increase in the number of resources, such as adding more hard drives to a storage array or adding more servers to support an application
Stateless Applications
Distributing the load
Stateful Components