The scalability meaning in dictionary states that,
ability of system to expand to cope with increased use.
Scalability
Definition -
In computer terminology it is referred as, the
ability of a system to handle growing amount of work without degrading its
performance.
Description
–
Scalability of a system or application always
depends on Hardware and software component that forms a complete system or
application. For an application to be scalable first it should support distributed
architecture.
The distributed application means complete
application spans across multiple computers in a network and they work in
conjunction by passing messages to each other. You application is based on
distributable architecture means complete application can be deployed on many
servers or computers and still it works well without any failure and
malfunction. If your application is distributable then it can be scalable as
well.
For achieving scalability Hardware Virtualization
is always preferred. To understand hardware virtualization process in terms of
cloud computing click on following link -
http://sanganakauthority.blogspot.com/2011/10/understanding-microsoft-datacenters-and.html
http://sanganakauthority.blogspot.com/2011/10/understanding-microsoft-datacenters-and.html
Vertical
Scalability – Scale up –
Vertical scalability is also known as scale up.
To understand scale up, consider an example that,
you have computer or laptop at home with RAM of 2GB and no graphics card. Now
you wish to play the high graphics game on this computer. However you cannot
play and install it as game requirement states the requirement as RAM should be
minimum 8GB and Graphics card is mandatory. In such situation you increase RAM
size and installs graphics card in your computer. This is nothing but scale up
or vertical scaling.
Increasing the existing capacity of hardware by
adding resources to computer is called as scale up. So in a way you add more
processing power by increasing the capacity of a computer.
Pictorial presentation is as follows –
Disadvantages –
- Vertical scaling has limit on increasing the capacity.
- Scale up cannot go beyond a certain limit as it is practically impossible to increase the capacity indefinitely
- It is expensive.Therefore to overcome on these problems hardware virtualization became popular.
Horizontal
Scaling – Scale out –
Horizontal scaling is also known as scale out.
Horizontal scaling or scale out refers to the addition
of computers to the existing system.
For example, instead of increasing the capacity of
same machine, have 2 machines of similar configurations doing the same work.
Pictorial representation is as follows –
Advantages – - You are not limited with the resource availability limitations as you can have any number of same configuration computers or servers to perform the job.
- You avoid the Single Point of Failure possibility of the system when you have more than one server used for deploying the same application.
- Single point of failure means - a part of the system; if it fails then whole system cannot function. This is avoided as you are not dependent on one of the server or computer and you have distributed the application across many. Hence you get High Availability for your application and zero downtime during hardware failures.
It is always recommended to use Scale out instead
of Scale up approach.
Scalability is widely used these days in cloud
computing hosted applications. One of
the examples is Microsoft Windows Azure services. All of the services of
Microsoft azure internally implements Scale Out architecture to provide
scalability for your application.
Scalability can be configured on various metrics
and rules. You can have scalability configured based on Scheduled times or you
can have scalability configured based on CPU usage %.
For example these strategies are implemented by
Microsoft Azure to configure scale out or scale down operation as shown below –
This screenshot depicts is how you can configure
scalability in one of the cloud provider company that is Microsoft Azure.
Hope this helps in understanding Scalability
concept.
Cheers…
Happy Scaling!!
No comments:
Post a Comment