Information Technology Reference
In-Depth Information
your racks or the size of your data center space or even your budget. Moving to virtual from
physical makes a lot of economic sense, but it also makes sense from a design and development
standpoint when considering infrastructure architecture. With the cloud, a moderate-sized
organization is able to build a scalable infrastructure that would have otherwise been way
beyond its means. Different types of scaling are described below and shown in Figure 5.6.
Vertical Scaling Vertical scaling is the process of vertical growth; everything is grown
bigger and faster, or simply more of something is added. In this case, adding more CPU
cores or faster ones allows for faster processing, especially with batch jobs. Adding more
memory allows for growing the cache and prefetching data, which further speeds up opera-
tions. Adding more disks and storage facilities helps with data retention, and faster disks
with faster I/O time and fast seek and access times help with performance as well. Basically,
vertical scaling means to grow bigger and go faster; it allows us to speed up individual appli-
cations. However, there are limits to this kind of scaling. Growth can cause diminishing
returns, and there will come a time when adding more provides no more performance ben-
efit, so we must find other ways of scaling and increasing throughput.
Horizontal Scaling Horizontal scaling is sideways growth, so instead of creating faster
and stronger infrastructure points, you are adding more infrastructure points. If increasing
the processing powers of servers becomes cost prohibitive and the performance gains are
no longer attractive enough to justify the costs, you can increase the number of servers. For
example, you could take a web server that can serve 100 users at once and grow it vertically
so that it will serve users faster, leading to better satisfaction and retention, but the fact
still remains that only 100 people are being served. But by scaling horizontally, you add
more servers. By adding another server, even one not as upgraded and beefed up as the first
one, you can now serve 200 customers. That is actually doubling the throughput. It gives
you the power to execute more concurrent workloads at the expense of added complexity
because now you have to worry about two servers and 200 customers, but that could only
be good for business.
Diagonal Scaling Diagonal scaling is the combination of both vertical and horizontal scal-
ing, and it is the result when both growth directions have already been taken. For example, if
you have maxed out the performance upgrades to your server, then you can start multiplying
your servers using the same specs and growing horizontally.
There has always been a debate about which type of scaling is best. Do you make your
infrastructure more powerful to serve customers faster and have them finish quicker so that
you accommodate more customers? Or do you scale horizontally with more servers to serve
more customers even if it takes a bit longer for them to finish with their transactions?
Both horizontal and vertical scaling have their respective pros and cons and associ-
ated costs as well. It is like the hardware conundrum, where you cannot decide between
buying the most powerful $10K machine or buying 10 slow machines at $1K each or
whether to take the middle ground and buy four midrange machines at $2.5K each. The
answer to that will depend entirely on your priorities and objectives and the types of
applications being run.
Search WWH ::




Custom Search