Scalability
lastmod 2018-08-17created 2018-08-011 edits
Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. For example, a system is considered scalable if it is capable of increasing its total output under an increased load when resources (typically hardware) are added. An analogous meaning is implied when the word is used in an economic context, where a company's scalability implies that the underlying business model offers the potential for economic growth within the company.
About
scalable and scalability are words that appear almost always in books on web technology.
Saying a web application is "scalable" is often used to mean that the application does not stop or suffer a large drop in performance even when the number of users surges. In that case, it could be translated into Korean as hwakjangseong-i itda ("has expandability").
However, translating scalablity/scalable as hwakjangseong/hwakjangseong-i itda ("expandability/has expandability") has a few problems. First, it can be confused with extensible, i.e. the meaning that adding new features to an existing application is possible or easy.... Second, scalable carries the notion not only of expansion but also of reduction.
Simply put, for something to be called scalable, it should not only run well with many users, but also be able to save server resources accordingly when there are few users. Scalability also covers the ability to run in a way suited to large systems on large systems, and in a way suited to small systems on small systems.
In other words, scalability is the ability of an application's scale to change dynamically depending on the installation or operating situation. That is why the term gyumo gabyeonseong ("scale variability") was chosen.
Upgrade
Scale-out_And_Scale-up.png
Scale out
It means improving processing capacity by increasing the number of connected servers. It is also called horizontal scaling. Typical examples are adding servers to a group of rack-mount servers used as a web server farm, or adding blades to a blade server. Using server virtualization, multiple servers can also be built virtually within a single chassis to provide an effect equivalent to scaling out. This approach is sometimes specifically called scale within or virtual scale-out.
It suits cases where each individual task is relatively simple but many tasks must be carried out concurrently in parallel, and where the requirements for maintaining the consistency of updated data (where data must agree consistently without contradicting each other) are not very demanding. In other words, cases where high parallelism is easy to achieve. It can be applied to web server farms, search engines whose data is read-only, data analysis processing, VOD (video on demand), some scientific and technical computing, and applications such as mail servers and bulletin boards.
Scale up
It means improving processing capacity by beefing up the server itself. It is also called vertical scaling. Typically, it refers to adding processors to an SMP (symmetric multiprocessor) or replacing the processors themselves with higher-performance models.
Even if application servers can scale out, database servers, where frequent updates make it hard to maintain consistency (where data must agree consistently without contradicting each other), need to scale up. In other words, scale up suits so-called OLTP (online transaction processing), where updates occur frequently against a single-image database.
Downgrade
Used to free up unused resources.
Scale in
Reduces the number of connected servers.
Scale down
Reduces the processing capacity of a server.