1.4 Demand and Need for Cloud Computing
could we do with 1000 times more data and CPU power? One of the simple question
that tells the important factor which on later becomes the basis or foundation
on the use of cloud computing in near future. As the amount of data that an
application handles is increasing day by day and so is the CPU power that one
can harness. With this much CPU power in hand, we could scale our businesses to
1000 times more users, monitor every single user interaction and gather
statistics about the user. In this way we could improve the recommendations
system of users. We could model better price plan choices.
There are lots
of other things we could do with so much CPU power and capabilities. But what
is holding us back. One of the reasons is the large scale architecture what comes
with these are difficult to manage. There may be many different problems with
the architecture we have to support. The hardware of machine may start failing,
the hard drives may crash, the network may go down and many other such problem.
The hardware has to be designed such that the architecture is reliable and scalable.
This large scale architecture has a very expensive upfront and has high
maintenance costs. It requires different resources like machines, power
cooling, etc. The system also cannot scale as and needed and so is not easily
are also constrained by the resources. As the applications become large, they
become I/O bound. The hard drive access speed becomes a limiting factor. Though
the raw CPU power available may not be a factor, the amount of RAM available
clearly becomes a factor. This is also limited in this context. If at all the
hardware problems are managed very well, there arises the software problems.
There may be
bugs in the software using this much of data. The workload also demands two
important tasks for two completely different people. The Software has to be
such that it is bug free and has good data processing algorithms to manage all
computing works on the cloud – so there are large groups of often low-cost
servers with specialized connections to spread the data-processing chores among
them. Since there are a lot of low-cost servers connected together, there are
large pools of resources available. So these offer almost unlimited computing
resources. This makes the availability of resources a lesser issue.
The data of the
application can also be stored in the cloud. Storage of data in the cloud has
many distinct advantages over other storages. One thing is that data is spread
evenly through the cloud in such a way that there are multiple copies of the
data and there are ways by which failure can be detected and the data can be
rebalanced on the fly. The I/O operations become simpler in the cloud such that
browsing and searching for something in 25GB or more of data becomes simpler in
the cloud, which is nearly impossible to do on a desktop.
computing applications also provide automatic reconfiguration of the resources
based on the service level agreements. When we are using applications out of
the cloud, to scale the application with respect to the load is a mundane task
because the resources have to be gathered and then provided to the users. If
the load on the application is such that it is present only for a small amount
of time as compared to the time its working out of the load, but occurs
frequently, then scaling of the resources becomes tedious. But when the
application is in the cloud, the load can be managed by spreading it to other
available nodes by making a copy of the application on to them. This can be
reverted once the load goes down. It can be done as and when needed. All these
are done automatically such that the resources maintain and manage themselves.