Sunteți pe pagina 1din 12

Architecting Web Applications for Scale & Performance

Abstract
Scaling is associate degree design for facilitating computing service through the
net on demand and pay per user access to a gaggle of shared resources particularly
networks, storage, servers, services and applications, while not physically getting
them Cloud software system may be a distributed info that offers computing as a
service. In this paper, we have a tendency to area unit architecting .NET internet
Applications for Scaling Performance.
Introduction
One of the benefits of cloud computing is that the ability to quickly scale
applications and services to fulfill the demand of the business. Calculate resources
are often procured in minutes via API requests as against the recent procural
method of the purchase and wait methodology from days gone past. There area
unit many ways to scale a cloud application or service. i will be able to discuss
some of them during this post. Scaling out a distributed design are often
accomplished in many ways. There area unit information ways, caching ways,
XML acceleration ways, associated an infinite variety of innovative solutions
accustomed scale individual elements of a system. during this post i will be able to
discuss scaling by adding progressive computing power in associate Infrastructure
as a Service (IaaS) surroundings.
Cloud scalability
Cloud Stability has 2 dimensions, particularly horizontal cloud quantifiability and
vertical cloud quantifiability [2]. A. Horizontal Cloud quantifiability Horizontal
cloud quantifiability is that the ability to attach multiple hardware or computer

code entities, like servers, so they work as one logical unit. It suggests that adding
additional individual units of resource doing constant job. Within the case of
servers, you'll increase the speed or availableness of the logical unit by adding
additional servers. Rather than one server, one will have 2, ten, or additional of
constant server doing constant work. Horizontal quantifiability is additionally
observed as scaling out, which is shown in Fig..

Fig. Horizontal Scalability

Vertical cloud scalability: Vertical measurability is that the ability to extend the
capability of existing hardware or software package by adding a lot of resources.
for instance, adding process power to a server to form it quicker. It may be
achieved through the addition of additional onerous ware like hard drives, servers,
CPUs, etc. Vertical measurability provides a lot of shared resources for the
operative

Fig.: Vertical Scalability

Literature Review
Harish Ganesan et al [5], gift the uses of automotive vehicle scaling in Amazon
cloud. They projected Associate in Nursing design however the automotive vehicle
scaling technique works and therefore the tools that ar wont to determine the cloud
peak things in Amazon cloud.
Ming Mao et al [6], given Associate in Nursing approach whereby the fundamental
computing components ar virtual machines (VMs) of assorted sizes/costs, jobs ar
specific as workflows, users specify performance needs by distribution deadlines to
jobs, and therefore the goal is to confirm all jobs ar finished among their deadlines
at minimum monetary value.
Brian et al [7], given a model-driven engineering approach to optimizing the
configuration,

energy

consumption

and

expense

of

cloud

auto-scaling

infrastructure to form greener computing environments that cut back emissions


ensuing from superfluous idle resources.
Ruiqing et al [8], projected a world performance-to-price model supported theory
of games, within which every application is taken into account as a egotistical
player making an attempt to ensure QoS needs and at the same time minimize the
resource value. They applied the concept of equilibrium to get the acceptable
allocation, Associate in Nursingd an approximated resolution is projected to get the
equilibrium, making certain that every player is charged fairly for his or her desired
performance.
Roy et al [9], created 3 contributions to beat the overall lack of effective techniques
for work prognostication and best resource allocation. Firstly, it discusses the

challenges concerned in automotive vehicle scaling within the cloud. Secondly, it


develops a model-predictive algorithmic program for work prognostication that's
used for resource automotive vehicle scaling. Finally, the empirical results ar
providing demonstrate that resources will be allotted and deallocated by our
algorithmic program during a approach that satisfies each the appliance QoS
whereas keeping operational prices low.
Ching et al [10], developed Associate in Nursing auto-scaling system, WebScale,
that isn't subject to the said constraints, for managing resources for internet
applications in information centers. They conjointly compared were the potency of
various scaling algorithms for internet applications, and devise a brand new
methodology for analyzing the trend of work changes. The experiment results
demonstrate that WebScale will keep the reaction time of internet applications low
even once facing explosive load ever-changing. Thepparat et al [11], projected to
simulate feasibleness of victimisation virtualization technology to autoscaling
downside in cloud computing. It uses ARENA simulation package to create 2
totally different models. There ar auto-scaling while not server virtualization and
autoscaling with server virtualization. The results of this experiment show that
using virtualization technology will increase each life time of servers and CPU
utilization.
Ciciani et al [12], projected that the key style selections underlying the event of
Cloud-TM's work instrument (WA), a vital part of the Cloud-TM platform that's
modification of 3 key functionalities: aggregating, filtering and correlating the
streams of applied mathematics information gathered from the varied nodes of the
CloudTM platform, building elaborate work profiles of applications deployed on
the Cloud-TM platform, characterizing their gift and future demands in terms of

each logical and physical resources, triggering alerts in presence of violations (or
risks of future violations) of pre-determined SLAs.
Venugopal et al [13], introduced a system that uses the Amazon EC2 service to
mechanically rescale a package telecommunication network in response to an
outsized volume of calls and scale down in traditional times. They demonstrate the
effectively of this technique through experiments supported world information.
Gandhi et al [14], given the planning and implementation of a category of
Distributed and sturdy Auto-Scaling policies (DRAS policies), for power
management in reason intensive server farms. Results indicate that the DRAS
policies dynamically change server farm capability while not requiring any
prediction of the longer term load, or any feedback management.
Web application performance and scalability
The steps would consist of applying one or all the following:
Performance tuning.- This step would consist of refactoring a web
application's source code, analyzing a web application's configuration
settings, attempting to further parallelize a web application's logic,
implementing caching strategies, detecting hot spots and another series of
often invasive -- code wise that is -- procedures throughout a web
application's tiers.
Horizontal & Vertical Scaling
Which of these last steps you undertake depends on a series of factors, including
the particularities of your web application, a development team's experience, a web

application's initial technology choices, as well as what is more attainable given


your resources.

Figure: Decision tree for performance tuning, horizontal and vertical scaling.

General Architecture Considerations for Scaling


Multiple IIS Servers (Hot swappable)
There are a number of reasons why having multiple Web servers for a Web
application is desirable. The more Web servers available to answer user requests,
the faster users requests can be processed and the higher the throughput of requests
(i.e. more requests can be responded to within a given timeframe). There are also
the inherent stability benefits of automatic failover, i.e. if one Web server fails
there is always another available to answer any requests.
The basic architecture involves a Network Load Balancer (NLB) to route requests
equally between the Web servers, all of which talk to the same database server,
e.g.:

Cloud Scaling Overview


Auto Scaling is the ability to scale up or down the capacity automatically
according to conditions of the user define. With Auto Scaling ensure that the
number of instances is increasing seamlessly during demand spikes to maintain
performance, and decreases automatically during demand reduce to minimize costs
[3].
Challenges & Issue
Even though cloud computing is an emerging technology, the research on cloud
computing is an early stage. New challenges keep on rising in cloud computing. In
this section, we address some of the emerging research challenges in cloud
computing that relates to auto scaling. The time taken to start the auto scaling is up
to 3 minutes. The provider cannot differentiate the valid and malicious traffic.
Auto scaling won't apply for all applications.
Badly configured auto scaling will increase the cost of infrastructure and creates
unnecessary capacity. Cloud workload patterns shows the cost saving only 9.8% to
40.4% compared to other approaches. Auto Scaling mainly focused to reduce the
Cost, Energy, High availability and QoS. The auto scaling concepts are used in
various aspects related to cloud computing not in the auto scaling problem.

Conclusion & Future Work


We presented the design and implementation of a system that can scale up and
down the number of application instances automatically based on demand. We
developed a color set algorithm to decide the application placement and the load
distribution. Our system achieves high satisfaction ratio of application demand
even when the load is very high. It saves energy by reducing the number of running
instances when the load is low. There are several directions for future work. Some
cloud service providers may provide multiple levels of services to their customers.
When the resources become tight, they may want to give their premium customers
a higher demand satisfaction ratio than other customers. In the future, we plan to
extend our system to support differentiated services but also consider fairness
when allocating the resources across the applications. We mentioned in the paper
that we can divide multiple generations of hardware in a data center into
equivalence classes and run our algorithm within each class. Our future work is
to develop an efficient algorithm to distribute incoming requests among the set of
equivalence classes and to balance the load across those server clusters adaptively.

References

[1] Amazon elastic compute cloud (Amazon EC2), http://aws.amazon.com/ec2/.


[2] A. Cohen, S. Rangarajan, and H. Slye, On the performance of tcp splicing for
url-aware redirection, in Proc. of the 2nd conference on USENIX Symposium on
Internet Technologies and Systems, 1999.
[3] WebLogic, http://www.oracle.com/appserver/weblogic/weblogicsuite.html.
[4] Google App Engine, http://code.google.com/appengine/.
[5] M. Armbrust et al., Above the clouds: A berkeley view of cloud computing,
EECS Department, University of California, Berkeley, Tech. Rep. UCB/EECS2009-28, Feb 2009.
[6] L. Siegele, Let it rise: A special report on corporate IT, in The Economist,
Oct. 2008.
[7] J. S. Chase, D. C. Anderson, P. N. Thakar, A. M. Vahdat, and R. P. Doyle,
Managing energy and server resources in hosting centers, in Proc. of the ACM
Symposium on Operating System Principles (SOSP01), Oct. 2001.
[8] P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I.
Pratt, and A. Warfield, Xen and the art of virtualization, in Proc. of the ACM
Symposium on Operating Systems Principles (SOSP03), Oct. 2003.
[9] M. McNett, D. Gupta, A. Vahdat, and G. M. Voelker, Usher: An extensible
framework for managing clusters of virtual machines, in Proc. of the Large
Installation System Administration Conference (LISA07), Nov. 2007.
[10] J. Zhu, Z. Jiang, Z. Xiao, and X. Li, Optimizing the performance of virtual
machine synchronization for fault tolerance, IEEE Transactions on Computers,
Dec. 2011.
[11] RUBiS, http://rubis.ow2.org/.

[12]

Linux

Documentation,

http://www.kernel.org/doc/documentation/power/states.txt.
[13] H. Shachnai and T. Tamir, Tight bounds for online class constrained
packing, Theor. Comput. Sci., vol. 321, no. 1, pp. 103 123, 2004.
[14] L. Epstein, C. Imreh, and A. Levin, Class constrained bin packing revisited,
Theor. Comput. Sci., vol. 411, no. 34-36, pp. 30733089, 2010.
[15] E. C. Xavier and F. K. Miyazawa, The class constrained bin packing problem
with applications to video-on-demand, Theor.Comput. Sci., vol. 393, no. 1-3, pp.
240259, 2008.
[16] M. R. Garey and D. S. Johnson, A 71/60 theorem for bin packing, Journal of
Complexity, vol. 1, 1985.
[17]

Scalr:

the

auto

scaling

open

source

Amazon

EC2

effort,

https://www.scalr.net/.
[18] D. Magenheimer, Transcendent memory: A new approach to managing RAM
in a virtualized environment, in Linux Symposium, 2009.
[19] G. Galambos and G. J. Woeginger, On-line bin packing-a restricted survey,
Physica Verlag, vol. 42, no. 1, 1995.
[20] C. Chekuri and S. Khanna, On multidimensional packing problems, IAM J.
Comput. Issue 4, vol. 33, 2004.
[21] H. Shachnai and T. Tamir, Noahs bagels-some combinatorial spects, in
Proc. 1st Int. Conf. on Fun with Algorithms, 1998.
[22] , On two class-constrained versions of the multiple knapsack problem,
Algorithmica, vol. 29, no. 3, pp. 442467, 2001.

[23] B. Urgaonkar, P. Shenoy, and T. Roscoe, Resource overbooking and


application profiling in shared hosting platforms, SIGOPS Oper. Syst. Rev., vol.
36, no. SI, pp. 239254, 2002.
[24] M. Aron, P. Druschel, and W. Zwaenepoel, Cluster reserves: a mechanism for
resource management in cluster-based network servers, SIGMETRICS Perform.
Eval. Rev., vol. 28, no. 1, pp. 90 101, 2000.
[25] J. L. Wolf and P. S. Yu, On balancing the load in a clustered web farm,
ACM Trans. Internet Technol., vol. 1, no. 2, pp. 231261, 2001.
[26] C. Zhang, V. Lesser, and P. Shenoy, A Multi-Agent Learning pproach to
Online Distributed Resource Allocation, in Proc. Of the International Joint
Conference on Artificial Intelligence (IJCAI09), 2009.
[27] S. Osman, D. Subhraveti, G. Su, and J. Nieh, The design and implementation
of zap: a system for migrating computing environments, SIGOPS Oper. Syst.
Rev., vol. 36, no. SI, pp. 361376, 2002.
[28] A. Karve, T. Kimbrel, G. Pacifici, M. Spreitzer, M. Steinder, M. Sviridenko,
and A. Tantawi, Dynamic placement for clustered web applications, in Proc. of
the International World Wide Web Conference (WWW06), May 2006.
[29] C. Tang, M. Steinder, M. Spreitzer, and G. Pacifici, A scalable application
placement controller for enterprise data centers, in Proc. of the International
World Wide Web Conference (WWW07), May 2007.
[30] C. Adam and R. Stadler, Service middleware for self-managing large-scale
systems, IEEE Transactions on Network and Service Management, vol. 4, no. 3,
pp. 5064, 2007.

[31] J. Famaey, W. D. Cock, T. Wauters, F. D. Turck, B. Dhoedt, and P. Demeester,


A latency-aware algorithm for dynamic service placement in large-scale
overlays, in Proc. of the IFIP/IEEE international conference on Symposium on
Integrated Network Management (IM09), 2009.
[32] E. Caron, L. Rodero-Merino, F. Desprez, and A. Muresan, Autoscaling, load
balancing and monitoring in commercial and opensource clouds, INRIA, Rapport
de recherche RR-7857, Feb. 2012.

S-ar putea să vă placă și