Scaling up and scaling out are two IT strategies that both increase the processing power and storage capacity of systems. The difference is in how engineers achieve this type of growth and system improvement.
While scaling out involves adding more discrete units to a system in order to add capacity, scaling up involves building existing units by integrating resources into them.
One of the easiest ways to describe both of these methods is that scaling out generally means building horizontally, while scaling up means building vertically. Beyond this, the details of how scaling up or scaling out is done matter.
For instance, in a networked hardware scenario in which distance makes scaling up difficult, scaling out might involve adding several more independent servers into a network with their bare-metal resources consisting of CPU memory and operating systems.
Alternately, scaling up may involve adding storage capacity to an existing server, whether that's a piece of hardware or a logically partitioned virtual machine.
With this in mind, scaling up is often desirable in that it doesn't add infrastructure. For instance, scaling up can help engineers to avoid additional hosting activities and the footprint that’s involved.
However, in some scenarios like a geographically dispersed network, scaling out can be a preferred solution.
One other note about scaling up is that on-demand functionality from platforms like Microsoft Azure or Google Cloud makes these types of changes easy and highly automated. The elasticity of these cloud services might lead companies to be able to innovate how they scale up.
In the end, a choice of whether to scale up or scale out will depend on the network in question, the business goals, and how to best achieve the desired state.