Information Technology Reference
In-Depth Information
13.6 Cloud Challenges
There are multiple technical challenges that any cloud platform or applica-
tion needs to address in order to truly provide a utility-like computing infra-
structure. The three key challenges are described in the following:
1. Scalability : Ability to scale to millions of clients simultaneously
accessing the cloud service
2. Multitenancy : Ability to provide the isolation as well as good perfor-
mance to multiple tenants using the cloud infrastructure
3. Availability : Ability that ensures that the infrastructure and applica-
tions are highly available regardless of hardware and software faults
13.6.1 Scalability
On-demand scaling (and descaling) of computation is one of the critical
needs of any cloud computing platform. Compute scaling can be either
done at the infrastructure level or platform level. At the infrastructure
level, it is about increasing the capacity of the compute power, while at
the platform level, the techniques are mainly to intelligently manage the
different client requests in a manner that best utilizes the compute infra-
structure without requiring the clients to do anything special during
peaks in demand:
1. Scale-up or vertical scaling is about adding more resources to a
single node or a single system to improve performance—such as
addition of CPUs, use of multicore systems instead of single-core,
or adding additional memory. In order to support on-demand
scaling of the cloud infrastructure, the system should be able to
increase its compute power dynamically without impacting the
platform or application executing over it. Unless a system is vir-
tualized, it is generally not possible to increase the capacity of a
compute system dynamically without bringing down the system.
The more powerful compute resource can now be effectively used
by a virtualization layer to support more processes or more virtual
machines—enabling scaling to many more clients. The advantage
of scale-up systems is that the programming paradigm is simpler,
since it does not involve distributed programming, unlike scale-out
systems.
2. Scale out or horizontal scaling, on the other hand, is about expanding
the compute resources by adding a new computer system or node
to a distributed application. A Web server (like Apache) is a typical
example for such a system. In fact, given that most cloud applications
Search WWH ::




Custom Search