computing resolves three important problems in
organizations: buying too large a system initially,
experiencing a delay when adding capacity, and
encountering the problem of sunk costs. With
vertical scalability, only the resources that are
actually needed are allocated and then changed as
needed. Depending on the system, the system might
adjust resources throughout the day to handle
increases and decreases in load. This is not Rapid
Elasticity since the number of resources that can be
added to an individual virtual machine bound the
scale up.
The second benefit with vertical scalability as
available with cloud computing is the relatively
short delay in new system deployment and adding
capacity. When servers are purchased in a capital
expenditure scenario, the delays can be substantial,
as the capital expenditure must go through the
process of a cost benefit analysis, ordering, hardware
delivery, and systems configuration.
The third benefit may be the elimination of sunk
costs. Sunk costs will have no place in situations
where capital expenditures are replaced with
operational expenses, as in cloud computing.
Therefore, even for systems, which are not
rapidly elastic, there are some very good reasons to
move those systems to the cloud including the
ability to take advantage of vertical scalability.
3.3 Improving Efficiency
The operation of a system is a collaboration and/or
interaction between the system designers, the
programmers, the hardware, the system elasticity,
and the users, among others. Much of the efforts in
cloud computing have seemed to focus on
agnostically enabling Rapid Elasticity and ignoring
the changes that can be made in systems to improve
their performance, efficiency, and scalability.
Rather than concluding that transactional
processing relational databases cannot be migrated
to the cloud using current technology, this paper
argues for a slightly different scalability model. This
model uses the resources and benefits of cloud
computing to improve scalability and efficiency of
systems through improved testing initiatives.
In many organizations, besides the production
systems, there are generally one or more
development and test systems. In order to have valid
tests, in many cases the development and test
systems are equivalently sized to that of production.
If the systems are less powerful than the production
systems, there is the concern that the testing might
not behave identically to the way production
behaves in the same situation.
In order to have a reliable test environment, the
test systems and the production systems must be
made as similar as possible. However, the shrinking
or sub-setting of full sized environments is difficult
in practice. The cost of production-sized
environments for testing and/or development can
also be prohibitive.
The demand for the use of test systems is not
consistent. Often test systems are some of the most
highly scheduled systems in an organization. During
some periods, such as pre-release testing, the
demand for the test system might peak and multiple
identical test systems would be required. Then, after
testing has concluded, the demand may drop to zero.
The nature of test system demand seems to fit
well with the scalability model of cloud computing,
where multiple full-sized copies of the production
system can be deployed for testing, but are only
available during the actual testing. Once the testing
has been completed, the test systems can be de-
allocated.
3.4 Incarnational Scalability
The use of cloud copies of production systems for
testing in order to improve system efficiency is both
economically efficient (as it only incurs necessary
expenditures) and scalable (as many or as few copies
can be created as needed). Therefore, this paper
proposes another method for reaching the goals of
scalability and efficiency, different from vertical or
horizontal scaling: Incarnational Scalability, where
separate incarnations of the full production system
are deployed for testing. To do effective testing one
must test one change at a time so as to isolate
whether that change improves the system or not.
Unfortunately, most test environments do not have
this luxury and multiple changes are tested at the
same time because of system availability limitations.
Testing in such an environment always leaves the
results in doubt as to what change (or changes)
actually have the most benefit. However, testing in
the cloud, using as many multiple identical systems
(incarnational scalability) as needed, allows one to
test each change separately and determine its effect.
In this model, the use of the cloud does not benefit
existing systems directly through the addition
resources, instead helps better use what resources
you already have through better testing.
Incarnational Scalability would be implemented
by instantiating multiple copies of the system in the
cloud and then using a technique called A/B Testing.
CLOSER2014-4thInternationalConferenceonCloudComputingandServicesScience
208