Autoscaling: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: title. Add: date, title, authors 1-1. Changed bare reference to CS1/2. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by BrownHairedGirl | Linked from User:BrownHairedGirl/Articles_with_bare_links | #UCB_webform_linked 1337/2193
GreenC bot (talk | contribs)
 
(9 intermediate revisions by 8 users not shown)
Line 1:
{{Short description|Optimization method of cloud computing}}
'''Autoscaling''', also spelled '''auto scaling''' or '''auto-scaling''', and sometimes also called '''automatic scaling''', is a method used in [[cloud computing]] that dynamically adjusts the amount of computational resources in a server farm - typically measured by the number of active servers - automatically based on the load on the farm. For example, the number of servers running behind a web application may be increased or decreased automatically based on the number of active users on the site. Since such metrics may change dramatically throughout the course of the day, and servers are a limited resource that cost money to run even while idle, there is often an incentive to run "just enough" servers to support the current load while still being able to support sudden and large spikes in activity. Autoscaling is helpful for such needs, as it can reduce the number of active servers when activity is low, and launch new servers when activity is high. Autoscaling is closely related to, and builds upon, the idea of [[load balancing (computing)|load balancing]].<ref name=eecs-berkeley>{{cite web|url = http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf|title = Above the Clouds: A Berkeley View of Cloud Computing|date = February 10, 2009|publisher = Berkeley EECS|accessdate = March 21, 2015}}</ref><ref name=aws>{{cite web|url=http://aws.amazon.com/autoscaling/|title = Auto Scaling|publisher = [[Amazon Web Services]]|accessdate = March 21, 2015}}</ref>
 
Line 60 ⟶ 61:
}}</ref> At the time of initial launch, AWS did not offer autoscaling, but the ability to programmatically create and terminate instances gave developers the flexibility to write their own code for autoscaling.
 
Third-party autoscaling software for AWS began appearing around April 2008. These included tools by Scalr<ref>{{cite news|url=https://techcrunch.com/2008/04/03/scalr-the-auto-scaling-open-source-amazon-ec2-effort/|title = Scalr: The Auto-Scaling Open-Source Amazon EC2 Effort|date = April 3, 2008|accessdate = March 21, 2015|work = [[TechCrunch]]|last = Work|first = Henry}}</ref> and RightScale. RightScale was used by Animoto, which was able to handle Facebook traffic by adopting autoscaling.<ref>{{cite news|url = httphttps://www.zdnet.com/article/rightscale-cloud-management-extends-to-mysql/#!|title = RightScale cloud management extends to MySQL. RightScale, which specializes in cloud computing management for the Amazon Web Services platform today announced support for MySQL Enterprise. The service, which goes live July 1, provides automated deployment, management and scaling, coupled with MySQL Enterprise premium-level support for large database applications.|last = Howlett|first = Dennis|date = June 25, 2008|accessdateaccess-date = December 16, 2016|work = [[ZDNet]]}}</ref><ref>{{cite web|url = http://www.rightscale.com/blog/enterprise-cloud-strategies/animotos-facebook-scale|title = Animoto's Facebook Scale-Up|last = von Eicken|first = Thorsten|date = April 23, 2008|accessdate = December 16, 2016|archive-url = https://web.archive.org/web/20161220212607/http://www.rightscale.com/blog/enterprise-cloud-strategies/animotos-facebook-scale|archive-date = December 20, 2016|url-status = dead}}</ref>
 
On May 18, 2009, Amazon launched its own autoscaling feature along with [[load balancing (computing)|Elastic Load Balancing]], as part of [[Amazon Elastic Compute Cloud]].<ref name=autoscaling-and-elb>{{cite web |url=https://aws.amazon.com/blogs/aws/new-aws-load-balancing-automatic-scaling-and-cloud-monitoring-services/ |title=New Features for Amazon EC2: Elastic Load Balancing, Auto Scaling, and Amazon CloudWatch |publisher = [[Amazon Web Services]] |date=May 18, 2009|last = Barr|first = Jeff|accessdate= June 15, 2016}}</ref> Autoscaling is now an integral component of Amazon's EC2 offering.<ref name=aws/><ref name=whatis>{{cite web|url = http://searchcloudapplications.techtarget.com/definition/autoscaling|title = What is autoscaling?|publisher = TechTarget|accessdate = March 21, 2015|archive-date = April 29, 2019|archive-url = https://web.archive.org/web/20190429044346/https://searchcloudapplications.techtarget.com/definition/autoscaling|url-status = dead}}</ref><ref>{{cite web|url=https://aws.amazon.com/blogs/aws/auto-scaling-update-lifecycle-standby-detach/|title = Auto Scaling Update – Lifecycle Management, Standby State, and DetachInstances|last = Barr|first = Jeff|date = July 30, 2014|accessdate = March 21, 2015|publisher = [[Amazon Web Services]] (official blog)}}</ref> Autoscaling on Amazon Web Services is done through a web browser or the command line tool.<ref>{{cite web|url=https://aws.amazon.com/developertools/2535|title = Auto Scaling Command Line Tool|accessdate = March 21, 2015|publisher = [[Amazon Web Services]] (community-edited page)}}</ref> OnIn May 2016 Autoscaling was also offered in AWS ECS Service.<ref>{{Cite web|url=https://aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs/|title=Automatic Scaling with Amazon ECS|date=18 May 2016|access-date=12 February 2019|archive-date=25 September 2019|archive-url=https://web.archive.org/web/20190925091242/https://aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs/|url-status=dead}}</ref>
 
On-demand video provider [[Netflix]] documented their use of autoscaling with Amazon Web Services to meet their highly variable consumer needs. They found that aggressive scaling up and delayed and cautious scaling down served their goals of uptime and responsiveness best.<ref name=netflix>{{cite web|url=http://techblog.netflix.com/2012/01/auto-scaling-in-amazon-cloud.html|title = Auto Scaling in the Amazon Cloud|date = January 18, 2012|accessdate = March 21, 2012|publisher = [[Netflix]] Tech Blog|last1 = Orzell|first1 = Greg|last2 = Becker|first2 = Justin}}</ref>
Line 72 ⟶ 73:
===Microsoft's Windows Azure===
 
On June 27, 2013, [[Microsoft]] announced that it was adding autoscaling support to its [[Windows Azure]] cloud computing platform.<ref>{{cite news|url=https://techcrunch.com/2013/06/27/microsoft-adds-auto-scaling-to-windows-azure/|title = Microsoft Adds Auto Scaling To Windows Azure|last = Lardinois|first = Frederic|date = June 27, 2013|accessdate = March 21, 2015|work = [[TechCrunch]]}}</ref><ref>{{cite news|url=httphttps://www.zdnet.com/article/microsoft-to-add-autoscaling-alerts-to-windows-azure/|title = Microsoft to add autoscaling, alerts to Windows Azure|date = June 27, 2013|accessdateaccess-date = March 21, 2015|work = [[ZDNet]]}}</ref><ref>{{cite web|url = http://www.networkworld.com/article/2168844/cloud-computing/google--microsoft-play-catch-up-to-amazon--add-load-balancing--auto-scaling-to-their.html|title = Google, Microsoft play catch up to Amazon, add load balancing, auto-scaling to their clouds|last = Butler|first = Brandon|date = August 7, 2013|accessdateaccess-date = March 21, 2015|publisher = [[Network World]]|archive-date = May 18, 2018|archive-url = https://web.archive.org/web/20180518193924/https://www.networkworld.com/article/2168844/cloud-computing/google--microsoft-play-catch-up-to-amazon--add-load-balancing--auto-scaling-to-their.html|url-status = dead}}</ref> Documentation for the feature is available on the [[Microsoft Developer Network]].<ref name=msdn-autoscaling>{{cite web|url=https://msdn.microsoft.com/en-us/library/dn589774.aspx|title = Autoscaling Guidance| date=26 August 2015 |publisher = [[Microsoft Developer Network]]}}</ref><ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/hh680892%28v=pandp.50%29.aspx|title = The Autoscaling Application Block|accessdate = March 21, 2015|publisher = [[Microsoft Developer Network]]}}</ref>
 
=== Oracle Cloud ===
Line 86 ⟶ 87:
 
===Kubernetes Horizontal Pod Autoscaler===
[[Kubernetes]] Horizontal Pod Autoscaler automatically scales the number of [[Kubernetes#Pods | pods]] in a [https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/ replication controller], [https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ deployment] or [https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ replicaset] based on observed CPU utilization (or, with beta support, on some other, [https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#supportscaling-foron-custom-metrics application-provided metrics])<ref name=kubernetes>{{cite web|url=https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/|title = Horizontal Pod Autoscaler Walkthrough|language=en-us|accessdate = June 21, 2018}}</ref>
 
== Alternative autoscaling decision approaches==
 
Autoscaling by default uses ''reactive'' decision approach for dealing with traffic scaling: scaling only happens in response to real-time changes in metrics. In some cases, particularly when the changes occur very quickly, this reactive approach to scaling is insufficient. Two other kinds of autoscaling decision approaches are described below.
 
=== Scheduled autoscaling approach ===
Line 98 ⟶ 99:
=== Predictive autoscaling ===
 
This approach to autoscaling uses [[predictive analytics]]. The idea is to combine recent usage trends with historical usage data as well as other kinds of data to predict usage in the future, and autoscale based on these predictions.
 
For parts of their infrastructure and specific workloads, Netflix found that Scryer, their predictive analytics engine, gave better results than Amazon's reactive autoscaling approach. In particular, it was better for:<ref name=netflix-scryer>{{cite web|last1=Jacobson|first1=Daniel|last2=Yuan|first2=Danny|last3=Joshi|first3=Neeraj|title=Scryer: Netflix's Predictive Auto Scaling Engine|url=http://techblog.netflix.com/2013/11/scryer-netflixs-predictive-auto-scaling.html|website=The [[Netflix]] Tech Blog|publisher=Netflix|accessdate=28 May 2015}}</ref><ref name=morpheus>{{cite web|url = https://www.morpheusdata.com/blog/2016-11-02-autoscaling-how-the-cloud-provides-a-tremendous-boost/|title = Autoscaling: How the Cloud Provides a Tremendous Boost|date = November 2, 2016|accessdate = December 16, 2016|publisher = Morpheus}}</ref>