Elasticity (computing): Difference between revisions

Content deleted Content added
m Undid revision 715358544 by 134.109.204.28 Both references to origin and endorsement are relevant in this case, now not explicitly mentioned in text.
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(44 intermediate revisions by 25 users not shown)
Line 1:
{{short description|Degree to which a computer system can adapt to workload changes}}
In [[cloud computing]], '''elasticity''' is defined as "the degree to which a system is able to adapt to workload changes by provisioning and de-provisioning resources in an autonomic manner, such that at each point in time the available resources match the current demand as closely as possible".<ref>{{cite journal|last=Herbst|first=Nikolas Roman|author2=Samuel Kounev |author3=Ralf Reussner |title=Elasticity in Cloud Computing: What It Is, and What It Is Not|journal=Proceedings of the 10th International Conference on Autonomic Computing (ICAC 2013), San Jose, CA, June 24–28|year=2012|url=http://sdqweb.ipd.kit.edu/publications/pdfs/HeKoRe2013-ICAC-Elasticity.pdf}}</ref><ref>Nikolas Herbst, Rouven Krebs, Giorgos Oikonomou, George Kousiouris, Athanasia Evangelinou, Alexandru Iosup, and Samuel Kounev. Ready for Rain? A View from SPEC Research on the Future of Cloud Metrics. Technical Report SPEC-RG-2016-01, SPEC Research Group - Cloud Working Group, Standard Performance Evaluation Corporation (SPEC), 2016. [https://research.spec.org/fileadmin/user_upload/documents/rg_cloud/endorsed_publications/SPEC-RG-2016-01_CloudMetrics.pdf]</ref> Elasticity can therefore be seen as the degree a system "autonomously adapts capacity to workload over time"<ref name=":0">{{cite journal|last=Lehrig|first=Sebastian|author2=Hendrik Eikerling |author3=Steffen Becker |title=Scalability, Elasticity, and Efficiency in Cloud Computing: a Systematic Literature Review of Definitions and Metrics|journal=Proceedings of the 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA '15), Montreal, QC, Canada, May 4–7|year=2015|doi=10.1145/2737182.2737185}}</ref> where capacity refers to "the maximum workload a system can handle as bound by its [[service level objectives]]"<ref name=":0" />. Elasticity is a defining characteristic that differentiates cloud computing from previously proposed computing paradigms, such as [[grid computing]]. The dynamic adaptation of capacity, e.g., by altering the use of computing resources, to meet a varying workload is called "elastic computing".<ref>{{citation |title=Cloud Computing Principles and Paradigms |publisher=John Wiley and Sons |year=2011 |isbn=978-0-470-88799-8}}</ref><ref>{{citation |author=Perez |title=Responsive Elastic Computing |isbn=978-1-60558-578-9|display-authors=etal}}</ref>
{{redirect|Elastic computing|the physical property|Elasticity (physics)|the economics measurement|Elasticity (economics)}}
 
In [[cloud computing]], '''elasticity''' is defined as "the degree to which a system is able to adapt to workload changes by provisioning and de-provisioning [[System resource|resources]] in an [[Autonomic computing|autonomic]] manner, such that at each point in time the available resources match the current demand as closely as possible".<ref>{{cite journalbook|last=Herbst|first=Nikolas Roman|author2=Samuel Kounev |author3=Ralf Reussner |titlechapter=Elasticity in Cloud Computing: What It Is, and What It Is Not|journaltitle=Proceedings of the 10th International Conference on Autonomic Computing (ICAC 2013), San Jose, CA, June 24–28|year=20122013|chapter-url=http://sdqweb.ipd.kit.edu/publications/pdfs/HeKoRe2013-ICAC-Elasticity.pdf|archive-date=2018-01-07|access-date=2013-07-10|archive-url=https://web.archive.org/web/20180107174907/https://sdqweb.ipd.kit.edu/publications/pdfs/HeKoRe2013-ICAC-Elasticity.pdf|url-status=dead}}</ref><ref>Nikolas Herbst, Rouven Krebs, Giorgos Oikonomou, George Kousiouris, Athanasia Evangelinou, Alexandru Iosup, and Samuel Kounev. Ready for Rain? A View from SPEC Research on the Future of Cloud Metrics. Technical Report SPEC-RG-2016-01, SPEC Research Group - Cloud Working Group, Standard Performance Evaluation Corporation (SPEC), 2016. [https://research.spec.org/fileadmin/user_upload/documents/rg_cloud/endorsed_publications/SPEC-RG-2016-01_CloudMetrics.pdf]</ref> Elasticity can therefore be seen as the degree a system "autonomously adapts capacity to workload over time"<ref name=":0">{{cite journal|last=Lehrig|first=Sebastian|author2=Hendrik Eikerling |author3=Steffen Becker |title=Scalability, Elasticity, and Efficiency in Cloud Computing: a Systematic Literature Review of Definitions and Metrics|journal=Proceedings of the 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA '15), Montreal, QC, Canada, May 4–7|year=2015|doi=10.1145/2737182.2737185}}</ref> where capacity refers to "the maximum workload a system can handle as bound by its [[service level objectives]]"<ref name=":0" />. Elasticity is a defining characteristic that differentiates [[cloud computing]] from previously proposed [[distributed computing]] paradigms, such as [[grid computing]]. The dynamic adaptation of capacity, e.g., by altering the use of [[system resource|computing resources]], to meet a varying workload is called "elastic computing".<ref>{{citation |title=Cloud Computing Principles and Paradigms |publisher=John Wiley and Sons |year=2011 |isbn=978-0-470-88799-8}}</ref><ref>{{citation |author=Perez |title=Responsive Elastic Computing |date=15 June 2009 |publisher=Association for Computing Machinery |isbn=978-1-60558-578-9|display-authors=etal}}</ref>
==Example==
 
In the world of [[distributed system|distributed systems]], there are several definitions according to the authors, some considering the concepts of [[scalability]] a sub-part of elasticity, others as being distinct.
Let us illustrate elasticity through a simple example of a service provider who wants to run a [[website]] on an [[IaaS]] cloud. At moment <math>t_0</math>, the website is unpopular and a single machine (most commonly a [[virtual machine]]) is sufficient to serve all web users. At moment <math>t_1</math>, the website suddenly becomes popular, for example, as a result of a [[flash crowd]], and a single machine is no longer sufficient to serve all users. Based on the amount of web users simultaneously accessing the website and the resource requirements of the [[web server]], it might be that ten machines are needed. An elastic system should immediately detect this condition and provision nine additional machines from the cloud, so as to serve all web users responsively.
 
==Example==
Let us illustrate elasticity through a simple example of a service provider who wants to run a [[website]] on an [[IaaS]] cloud. At moment <math>t_0</math>, the website is unpopular and a single machine (most commonly a [[virtual machine]]) is sufficient to serve all web users. At moment <math>t_1</math>, the website suddenly becomes popular, for example, as a result of a [[flash crowd]], and a single machine is no longer sufficient to serve all users. Based on the amountnumber of web users simultaneously accessing the website and the resource requirements of the [[web server]], it might be that ten machines are needed. An elastic system should immediately detect this condition and provision nine additional machines from the cloud, so as to serve all web users responsively.
 
At time <math>t_2</math>, the website becomes unpopular again. The ten machines that are currently allocated to the website are mostly idle and a single machine would be sufficient to serve the few users who are accessing the website. An elastic system should immediately detect this condition and deprovision nine machines and release them to the cloud.
 
==Purpose==
Elasticity aims at matching the amount of resourcesresource allocated to a service with the amount of resourcesresource it actually requires, avoiding over- or under-provisioning. '''Over-provisioning''', i.e., allocating more resources than required, should be avoided as the service provider often has to pay for the resources that are allocated to the service. For example, at the time of this writing,an [[Amazon EC2]] chargesM4 extra-large instance costs [[US$]]0.480239/hour for an "extra large" virtual machine. If a service ishas allocated two virtual machines, insteadwhen ofonly one is required, the service provider wastes $42,205095 every year. Hence, the service provider's [[expenses]] are higher than optimal and thetheir [[Profit (accounting)|profit]] is reduced.
 
'''Under-provisioning''', i.e., allocating fewer resources than required, must be avoided, otherwise the service cannot serve its users with a good service. In the above example, under-provisioning the website may make it seem slow or unreachable. Web users eventually give up on accessing it, thus, the service provider loses customers. On the long term, the provider's [[income]] will decrease, which also reduces thetheir profit.
 
==Problems==
 
===Resources provisioning time===
One potential problem is that elasticity takes time. A cloud virtual machine (VM) can be acquired at any time by the user,; however, it may take up to several minutes for the acquired VM to be ready to use. The VM startup time is dependent on factors, such as image size, VM type, data center ___location, number of VMs, etc.<ref name="vmstartuptime2012">{{cite journalbook|last=Mao|first=Ming|author2=M. Humphrey|title=2012 IEEE Fifth International Conference on Cloud Computing |chapter=A Performance Study on the VM Startup Time in the Cloud|journal=Proceedings of 2012 IEEE 5th International Conference on Cloud Computing (Cloud2012)|year=2012|url=http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6253534&isnumber=6253471|doi=10.1109/CLOUD.2012.103|isbn=978-1-4673-2892-0|page=423|s2cid=1285357 }}</ref> Cloud providers have different VM startup performance. This implies any control mechanism designed for elastic applications must consider in its decision process the time needed for the elasticity actions to take effect,<ref>{{cite journalbook|last=Gambi|first=Alessio |author2=Daniel Moldovan |author3=Georgiana Copil |author4=Hong-Linh Truong |author5=Schahram Dustdar|title=On2013 estimating8th actuation delays in elastic computing systems|journal=Proceedings ofInternational ICSE WorkshopSymposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) |yearchapter=2013On estimating actuation delays in elastic computing systems |urlpages=http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber33–42 |year=65954902013|doi=10.1109/SEAMS.2013.6595490|isbn=978-1-4673-4401-2 |citeseerx=10.1.1.353.691 |s2cid=13269185 }}</ref> such as provisioning another VM for a specific application component.
 
===Monitoring elastic applications===
Elastic applications can allocate and deallocate resources (such as VMs) on demand for specific application components. This makes cloud resources volatile, and traditional monitoring tools which associate monitoring data with a particular resource (i.e. VM), such as [[Ganglia (software)|Ganglia]] or [[Nagios]], are no longer suitable for monitoring the ''behavior'' of elastic applications. For example, during its lifetime, a data storage tier of an elastic application might add and remove data storage VMs due to cost and performance requirements, varying the number of used VMs. Thus, additional information is needed in monitoring elastic applications, such as associating the logical application structure over the underlying virtual infrastructure.<ref>{{cite journalbook|last=Moldovan|first=Daniel |author2=Georgiana Copil |author3=Hong-Linh Truong |author4=Schahram Dustdar|title=MELA: Monitoring and Analyzing Elasticity of Cloud Services|journal=Proceedings of2013 IEEE 5th International Conference on Cloud Computing Technology and Science (CloudCom|chapter=MELA: Monitoring and Analyzing Elasticity of Cloud Services 2013)|yearvolume=20131 |urlpages=http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp80–87 |year=&arnumber=67537812013|doi=10.1109/CloudCom.2013.18|isbn=978-0-7695-5095-4 |s2cid=8362285 }}</ref> This in turn generates other problems, such as how to aggregate data from multiple VMs towards extracting the behavior of the application component running on top of those VMs, as different metrics might need to be aggregated differently (e.g., cpu usage could be averaged, network transfer might be summed up).
 
===Elasticity requirements===
When deploying applications in cloud infrastructures (IaaS/PaaS), requirements of the stakeholder need to be considered in order to ensure proper elasticity behavior. Even though traditionally one would try to find the optimal trade-off between cost and quality or performance, for real world cloud users requirements regarding the behavior are more complex and target multiple dimensions of elasticity (e.g., SYBL<ref>Georgiana{{cite Copil,book Daniel| Moldovan, Hongchapter-Linh Truong, Schahram Dustdar, [httpurl=https://ieeexplore.ieeedoi.org/xpl10.1109/articleDetailsCCGrid.jsp?arnumber2013.42 | doi=654606810.1109/CCGrid.2013.42 "| chapter=SYBL: anAn Extensible Language for Controlling Elasticity in Cloud Applications"], ''Proceedings| of thetitle=2013 13th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing (CCGrid)'',| Maydate=2013 14–16,| 2013,last1=Copil Delft,| thefirst1=Georgiana | last2=Moldovan | first2=Daniel | last3=Truong | first3=Hong-Linh | last4=Dustdar | first4=Schahram | pages=112–119 | isbn=978-1-4673-6465-2 Netherlands}}</ref>).
 
===Multiple levels of control===
Cloud applications can be of varying types and complexities, with multiple levels of artifacts deployed in layers. Controlling such structures must take into consideration a variety of issues, an approach in this sense being [http://www.infosys.tuwien.ac.at/research/viecom/SYBL rSYBL].<ref>Georgiana{{cite Copil,book Daniel| Moldovan, Hongchapter-Linh Truong, Schahram Dustdar, [httpurl=https://link.springer.com/chapter/10.1007%2F978-3-642-45005-1_31# "Specifying,| Monitoring,doi=10.1007/978-3-642-45005-1_31 and| Controllingchapter=Multi-level Elasticity Control of Cloud Services"] | title=Service-Oriented Computing | series=Lecture Notes in Computer Science | date=2013 | last1=Copil | first1=Georgiana | last2=Moldovan | first2=Daniel | last3=Truong | first3=Hong-Linh | last4=Dustdar | first4=Schahram | volume=6470 | pages=429–436 | isbn=978-3-642-17357-8 }}</ref> For multi-level control, ''Proceedingscontrol ofsystems need to consider the 11thimpact lower level control has upon higher level ones and vice versa (e.g., controlling virtual machines, web containers, or web services in the same time), as well as conflicts which may appear between various control strategies from various levels.<ref>{{cite book | first = Pavlos | last = Kranas | title = 2012 Sixth International Conference on Complex, Intelligent, and Software Intensive Systems | chapter = ElaaS: An Innovative Elasticity as a Service OrientedFramework Computing''for Dynamic Management across the Cloud Stack Layers | year = 2012 | pages = 1042–1049 | doi = 10.1109/CISIS.2012.117| Berlin,isbn Germany= 978-1-4673-1233-2 | s2cid = 18233634 }}</ref> Elastic strategies on Clouds can take advantage of control-theoretic methods (e.g., 2–5predictive Decembercontrol 2013has been experimented in Cloud scenarios by showing considerable advantages with respect to reactive methods).<ref>{{cite journal|last1=Mencagli|first1=Gabriele|last2=Vanneschi|first2=Marco|title=Towards a systematic approach to the dynamic adaptation of structured parallel computations using model predictive control|journal=Cluster Computing|date=6 February 2014|volume=17|issue=4|pages=1443–1463|doi=10.1007/978s10586-3014-6420346-45005-1_313|s2cid=254374635 }}</ref>
</ref> For multi-level control, control systems need to consider the impact lower level control has upon higher level ones and vice versa (e.g., controlling virtual machines, web containers, or web services in the same time), as well as conflicts which may appear between various control strategies from various levels.<ref>{{cite journal | first = Pavlos | last = Kranas | title = ElaaS: An Innovative Elasticity as a Service Framework for Dynamic Management across the Cloud Stack Layers | publisher = IEEE | year = 2012 | journal = Proceedings of Sixth International Conference on Complex, Intelligent and Software Intensive Systems (CISIS) 4–6 July 2012 | url = http://dx.doi.org/10.1109/CISIS.2012.117 | doi = 10.1109/CISIS.2012.117}}</ref>
 
==See also==
*[[Microsoft Azure]]
*[[Amazon Elastic Compute Cloud]]
*[[CELAR|CELAR: Cloud ELAsticityElasticity pRovisiningProvisioning]]
 
==References==
Line 36 ⟶ 40:
==External links==
* [http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf The NIST Definition of Cloud Computing]. Peter Mell and Timothy Grance, NIST Special Publication 800-145 (September 2011). National Institute of Standards and Technology, U.S. Department of Commerce.
* {{cite journal|last=Buyya|first=Rajkumar|title=Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering computing as the 5th utility|journal=Future Generation Computer Systems|date=June 2009|volume=25|issue=6|display-authors=etal}}
 
[[Category:Distributed computing]]
[[Category:Cloud computing]]