Information Technology Reference
In-Depth Information
Figure 8. Summary of the scaling capabilities offered by the different Cloud layers
limitations are present in similar systems offering
automatic scalability over Cloud platforms, such
as Scalr, WeoCeo (Scalr, 2009; WeoCeo, 2009),
etc.
The solutions above fail to provide automated
tools for handling the lifecycle of whole services
(rather than VM or service instances). To overcome
this limitation, a new abstraction layer has been
proposed that is closer to the lifecycle of services
and allows for their automatic deployment and
escalation depending on the service status (not
only on the infrastructure) (Rodero-Merino et al.,
2010). This approach was based on an expressive
language to let users define scaling rules as logi-
cal expression containing service-level metrics.
User customization degree of the rules scaling is
based on and application-level metrics are hard
to be delivered. Easy to use scalability rules im-
ply lack of expressiveness, while complex rules
put the abstraction level too low. A trade-off has
to be reached between high level scalability and
usability. Moreover, rule systems are more com-
prehensive than traditional control theory-based
approaches, but this can result on a painful debug-
ging process if rules fail to provide us with the
expected behavior or too many rules are included
in the system (Cáceres et al., 2010).
On-demand scalability is not simply accom-
plished by deploying applications embedded in
VMs in the Cloud. Very interesting rules of thumb
have been re-emphasized by PaaS platforms such
as Google's App Engine 10 . These rules consider
minimizing paging through large datasets, avoid-
ing datastore contention, etc. Less traditional
mechanisms are also considered important for
avoiding placing the customer of thread man-
agement or garbage-collection. It is the Cloud
itself that should be in charge of providing such
capabilities for programmers as a service ( à la
“networked libraries”, i.e. PaaS).
For instance, scientific applications often
require an accurate knowledge of the problem
at hand in order to design the most appropriate
parallelization strategy. The Cloud is an ideal envi-
ronment for parallelizable applications. However,
it is hard to write the code needed to do that with
most programming languages. Attempts such as
BOOM (Berkeley Orders Of Magnitude) project,
represent a step forward for applications to be eas-
ily split and run in a Cloud environment (Loo et
al., 2006). Other approaches consider application
domain specific knowledge to increase application
scalability by minimizing the changes need to be
done to the application's code. This has been ap-
plied, for example, to online social networks by
getting advantage of the graph structure. Groups
are separated in different servers and the nodes
belonging to several groups are replicated in all
the group servers (Pujol et al., 2009). Current
procedures often demand programmers to recode
their applications. This platform-specific code
results in locking applications to a determined
Search WWH ::




Custom Search