{"id":14478,"date":"2016-08-24T12:15:45","date_gmt":"2016-08-24T09:15:45","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=14478"},"modified":"2016-08-21T23:01:25","modified_gmt":"2016-08-21T20:01:25","slug":"autoscaling-purpose-strategies","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/","title":{"rendered":"Autoscaling: Its Purpose and Strategies"},"content":{"rendered":"<p>In my previous article, <a href=\"https:\/\/blog.codeship.com\/autoscaling-on-complex-telemetry\/\">\u201cAutoscaling on Complex Telemetry\u201d<\/a>, we discussed a method for determining effective autoscaled cluster size from internal application metrics. That article assumed you wanted to autoscale and so did not discuss under what conditions you might choose to, let alone what your choices for scaling are. Let\u2019s go ahead and delve into all that here.<\/p>\n<blockquote><p>This article will use the autoscaling terminology of Amazon Web Services, but the discussion will be broadly applicable to other cloud providers.<\/p><\/blockquote>\n<h2>What Is Autoscaling?<\/h2>\n<p>Autoscaling is a cluster-scaling technique to ensure that a compute cluster has just enough resources to meet demand, plus some use-case-determined safety margin.<\/p>\n<p>Consider how things were before convenient cloud hosting. Let\u2019s say you needed to host a website for what will be a <a href=\"http:\/\/www.warnerbros.com\/archive\/spacejam\/movie\/jam.htm\">very popular movie<\/a>. Close to the time of the film\u2019s release, load on your servers will be high but will tend to fall off over time. Servers take a long time to get provisioned \u2014 plugged into racks, software installed and configured \u2014 so you have to provision for peak consumption. This is frustrating. Time and money gets spent to decommission machines as traffic falls naturally over time, and even worse, the method is error prone. How do you determine traffic for something that doesn\u2019t yet exist? It\u2019s inefficient even during the period of peak traffic \u2014 most of these fancy machines will sit idle during the night.<\/p>\n<p>Autoscaling is also a capacity-planning technique that reduces the error from unknown traffic demands. It removes inefficiency by requisitioning computers when needed and decommissioning them when not.<\/p>\n<p>In AWS, this is done by one-hour allotments from a pool of existing machines that may be rapidly flashed to a new machine image. AWS uses the term \u201cgroup\u201d to describe a cluster of machines. Each \u201cgroup\u201d is set with a template for machine creation and a definition of the minimum, maximum, and desired number of machines to allow in the group. The desired number of machines will be maintained unless adjusted <em>or<\/em> the minimum\/maximum bounds are violated.<\/p>\n<p>Implicit in this approach is the notion that each computer in the group can be treated as interchangeable and replaceable. This is a significant complication which might well offset the advantage to be gained otherwise from autoscaling. Recent work toward building non-trivial <a href=\"https:\/\/blog.codeship.com\/immutable-infrastructure\/\">immutable infrastructures<\/a> points the way to reducing this complication, but it\u2019s an active research problem.<\/p>\n<p>A group\u2019s desired value is managed by a \u201cscaling plan.\u201d At its simplest, the plan is a fixed schedule: \u201c+10 computers at 10AM, -10 computers at 10PM.\u201d If a fixed schedule will not do \u201cdynamic scaling,\u201d via system telemetry, this might get more complicated.<\/p>\n<h2>Scaling Plan Strategies<\/h2>\n<p>Being aware of and choosing an effective scaling plan is the trickiest bit of the autoscaling technique. Let\u2019s explore some scaling plan approaches and their tradeoffs.<\/p>\n<h3>Fixed size<\/h3>\n<p>A fixed-size scaling plan is the null plan. No matter what happens, the scaling plan will keep the desired capacity of the autoscale group fixed.<\/p>\n<p>This approach can be useful in the prototype phase of a project when you\u2019re unsure of what the practical behavior of your system will be. A fixed-size autoscale group will let you determine per-machine performance characteristics. It\u2019s also much simpler to operate in a time when the prototype system likely has many unknowns associated with it.<\/p>\n<p>A production system that rolls out with a null scaling plan is perfectly acceptable. If you are aware that the system\u2019s demand will be relatively steady, it\u2019s extremely sensible to reduce the operational complexity of the deployed system by avoiding autoscaling.<\/p>\n<p>Similarly, if you believe that the demand on your system will grow only gradually and can tolerate potential under-capacity situations, manually adjusting desired targets is perfectly acceptable.<\/p>\n<p>Autoscaling is both an expense optimization and a safeguard against the unknown. If you don\u2019t have concerns in either regard, avoiding the additional complexity is well worth it.<\/p>\n<h3>Scheduled adjustments<\/h3>\n<p>A conceptual step up from fixed-sized scaling is scheduled adjustments in fixed-scale sizes.<\/p>\n<p>Say you\u2019re processing sensor telemetry from a factory floor that only runs first and second shifts and the system can keep ahead of telemetry in online operation. This would mean, in a fixed-scaling approach, you\u2019d strictly have more computers than necessary from roughly midnight to 8 a.m. If the number of machines needed to support this factory during its operation are small, then this is not a concern. However, if the number of machines is large, you suddenly have an expense to optimize.<\/p>\n<p>In this case, setting a well-known time for computers to come on and offline is great. Scheduled adjustments suffer the same problem with regard to demand as fixed-size scaling.<\/p>\n<h2>Fixed Increment adjustments (simple dynamic scaling)<\/h2>\n<p>\u201cSimple dynamic scaling\u201d adjusts the desired target of the autoscale group by some pre-configured amount. This is a break from fixed-size and schedule scaling in that the autoscale group is now a complex component of the overall system design with behavior that must be understood.<\/p>\n<p>Effectively choosing a criteria to drive dynamic scaling is a <a href=\"https:\/\/blog.codeship.com\/autoscaling-on-complex-telemetry\/\">complex topic<\/a>, but a simple proxy for system health, CPU load, is often enough to get started.<\/p>\n<p>Say your cluster target is for no more than 50-percent CPU utilization to be used on any machine in the cluster in a five-minute period. This is easy to set up with Amazon\u2019s tools. But by how many computers should your cluster increase, or by what percentage should you cluster size increase?<\/p>\n<p>This is where discretion and experimentation comes in. Increase too much, and you\u2019ll spend more money than you might have otherwise and increased the cooperation burden of your machines more than you might have otherwise. Increase too little, and your system will fail to meet demand.<\/p>\n<p>It\u2019s a challenge when experimenting to avoid over-fitting to a certain pattern of traffic: a 20-percent increase in system demand each day at lunch is much, much different than a 100-percent increase at 8 p.m. because of a promotional deal.<\/p>\n<p>Fixed increment adjustments can be a challenge to get right and must be treated as a control system part and parcel of the developed system. Unfortunately, its limitations with regard to dealing with unusual traffic patterns and lack of fine-grained feedback (configuration is done via a set of threshold rules) means that this approach will never be entirely \u201cset and forget.\u201d<\/p>\n<p>This used to be Amazon\u2019s sole dynamic scaling option. With the introduction of step scaling, it is now superseded.<\/p>\n<h3>Targeted increment adjustments (step scaling)<\/h3>\n<p>\u201cStep dynamic scaling\u201d is a superset of simple scaling. With this method, it is possible to set a target criteria for the cluster, measure the difference between the cluster\u2019s output and the target criteria, and fire one of a set of rules based on this difference.<\/p>\n<p>An example will be useful. Say, as before, we\u2019re scaling on maximum CPU load in the cluster, and we have an autoscale group configured with the following rules:<\/p>\n<ul>\n<li>If CPU &gt; 10%, add 10%<\/li>\n<li>If CPU &gt; 25%, add 50%<\/li>\n<li>If CPU &gt; 50%, add 100%<\/li>\n<\/ul>\n<p>This cluster will never decrease in size \u2014 there are no rules for dealing with the case where our CPU usage is under target \u2014 but that can be corrected. Here, when we\u2019re greater than 10 percent off the CPU target, add 10 percent to the desired size of the autoscale group, etc. The additional rules allow the system to cope with unusual demand automatically.<\/p>\n<p>As discussed earlier, this approach also suffers from a necessary period of experimentation but has a distinct advantage over simple scaling: You can express more complex rule-sets. This does not reduce the burden of adding a new control system into a developed system but does increase, markedly, its utility.<\/p>\n<p>This approach to scaling covers, as well as any other, both cost optimization and adapting to unforeseen traffic patterns. That said, if your system does not need to cover <em>both<\/em>, either fixed-size or scheduled scaling will reduce the conceptual complexity of your system and make it more predictable.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"https:\/\/blog.codeship.com\/autoscaling-purpose-strategies\/\">Autoscaling: Its Purpose and Strategies<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/join-us\/wcg\/\">WCG partner<\/a> Brian Troutwine at the <a href=\"http:\/\/blog.codeship.com\/\">Codeship Blog<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal application metrics. That article assumed you wanted to autoscale and so did not discuss under what conditions you might choose to, let alone what your choices for scaling are. Let\u2019s go ahead and delve into &hellip;<\/p>\n","protected":false},"author":155,"featured_media":14396,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[325],"class_list":["post-14478","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-amazon-aws"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Autoscaling: Its Purpose and Strategies - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Autoscaling: Its Purpose and Strategies - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-24T09:15:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Brian Troutwine\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian Troutwine\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\"},\"author\":{\"name\":\"Brian Troutwine\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/0102ee09eb17ec497f731ae8318dec40\"},\"headline\":\"Autoscaling: Its Purpose and Strategies\",\"datePublished\":\"2016-08-24T09:15:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\"},\"wordCount\":1362,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg\",\"keywords\":[\"Amazon AWS\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\",\"name\":\"Autoscaling: Its Purpose and Strategies - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg\",\"datePublished\":\"2016-08-24T09:15:45+00:00\",\"description\":\"In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Autoscaling: Its Purpose and Strategies\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/0102ee09eb17ec497f731ae8318dec40\",\"name\":\"Brian Troutwine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/aeae27f0cd598c57867066e4e2e3840a874c135a845b03a9840ac0ee8abe9468?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/aeae27f0cd598c57867066e4e2e3840a874c135a845b03a9840ac0ee8abe9468?s=96&d=mm&r=g\",\"caption\":\"Brian Troutwine\"},\"description\":\"Brian Troutwine is a senior engineer at AdRoll. He also speaks publicly about real-time, fault-tolerant and critical software in high-scale and\/or embedded systems.\",\"url\":\"https:\/\/www.webcodegeeks.com\/author\/brian-troutwine\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Autoscaling: Its Purpose and Strategies - Web Code Geeks - 2026","description":"In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/","og_locale":"en_US","og_type":"article","og_title":"Autoscaling: Its Purpose and Strategies - Web Code Geeks - 2026","og_description":"In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal","og_url":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2016-08-24T09:15:45+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg","type":"image\/jpeg"}],"author":"Brian Troutwine","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Brian Troutwine","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/"},"author":{"name":"Brian Troutwine","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/0102ee09eb17ec497f731ae8318dec40"},"headline":"Autoscaling: Its Purpose and Strategies","datePublished":"2016-08-24T09:15:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/"},"wordCount":1362,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg","keywords":["Amazon AWS"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/","url":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/","name":"Autoscaling: Its Purpose and Strategies - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg","datePublished":"2016-08-24T09:15:45+00:00","description":"In my previous article, \u201cAutoscaling on Complex Telemetry\u201d, we discussed a method for determining effective autoscaled cluster size from internal","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/08\/devops-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/devops\/autoscaling-purpose-strategies\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.webcodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Autoscaling: Its Purpose and Strategies"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/0102ee09eb17ec497f731ae8318dec40","name":"Brian Troutwine","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/aeae27f0cd598c57867066e4e2e3840a874c135a845b03a9840ac0ee8abe9468?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/aeae27f0cd598c57867066e4e2e3840a874c135a845b03a9840ac0ee8abe9468?s=96&d=mm&r=g","caption":"Brian Troutwine"},"description":"Brian Troutwine is a senior engineer at AdRoll. He also speaks publicly about real-time, fault-tolerant and critical software in high-scale and\/or embedded systems.","url":"https:\/\/www.webcodegeeks.com\/author\/brian-troutwine\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/14478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/155"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=14478"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/14478\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/14396"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=14478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=14478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=14478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}