Vertical Scale & Cloud Computing
Vertical scale applies at the instance level. If you have the ability to move an instance to a more powerful machine, you have vertical scale. Infrastructure as a service and platform as a service vendors typically provide tools to vertically scale an instance quickly.Vertical Scale vs Horizontal Scale
Vertical scale is the ability to move a single instance to a more powerful machine. Horizontal scale is the ability to add more machines to a service, system or application. Vertical scaling is far more limited than horizontal scaling because there is a limit to the size of a single machine. Moving to more powerful instances can also be expensive as compared to adding many cheap instances. In theory, software can be infinitely scaled using horizontal scaling. In order to be horizontally scaled, your software must be designed to work in parallel with many instances. Cloud computing platforms support both vertical and horizontal scale.Example
A firm wants to increase the capacity of a mobile app backend running on a 16-cpu cloud server. They use a management tool provided by the cloud vendor to take an image of the server and launch the image to a 64-cpu instance. They perform a few configuration changes on the new instance to take advantage of increased memory capacity and test the new server on a new IP address. When the test is successful, they release the old server and use its IP address on the new server. The mobile app backend has been scaled to significantly improved hardware. Despite the manual changes and testing, a process such as this might take less than an hour. This process could also be fully automated such that it might run in a minute or so.Notes
Another key difference between vertical and horizontal scale is that vertical scale tends to be one way. It is easier to scale a small machine to a large machine. The reverse has a tendency to be problematic. Some vendors may not support reverse vertical scaling. Horizontal scale lends itself well to both scaling up and down.Overview: Vertical Scale | ||
Type | ||
Definition | The ability to move a service, application or system to a machine that has more resources. | |
Related Concepts |