When we speak of cloud computing, you cannot overlook auto scaling features of cloud hosting. Incidentally, this is one of the most attractive features of cloud hosting which has made it so popular. But, auto scaling is very often misinterpreted and these common misconceptions end up misleading IT personnel. They are seen to believe that setting up auto scaling is rather simple and hassle-free, and that this features will always guarantee 100% uptime.
– One of the first things which most IT personnel take for granted in auto scaling is that the process is simple. The IaaS platforms will usually take care of auto scaling of resources. The process is supposed to be far easier and direct than scaling within a datacenter. However, on visiting AWS or Amazon Web Services, one will see that there is no auto scaling provided by this public cloud. If you want a set-up which can scale up on its own and does not need human involvement, or a self-healing set up which can replace fail instances, you will need to make big investments at first. While installing load balancing between multiple AZs or Availability Zones may be easy to achieve, auto scaling with least stand-up times and perfect configurations is not as easy and will need a lot of time.
– Another common misconception is that the elastic scaling is usually used more often than fixed auto scaling. Auto scaling is not the same as load-based scaling; rather, it will focus on availability and redundancy and not on elastic scaling methods. Auto scaling is mainly needed for resiliency. In other words, instances are incorporated into fixed-size auto scaling systems to ensure that in case any instance crashes or fails, it will be replaced automatically. Using auto scaling, one can add capacity to the worker server queues; this helps in projects for data analysis. So, workers within such an auto scaling cluster can follow a queue and then carry out prescribed actions. The queues will be added till the time that it is affordable. In short, capacity will only be added when it is possible to have it.
– Thirdly, it is also believed that the capacity must necessarily match the demand. Auto scaling that is load-based has been considered to be suited for any environment. But there are some cloud hosting deployments which are found to be more resistant in the absence of auto scaling. For instance, this is true of startups having lower than 50 instances. Here, the demands and capacity when closely matched may have unplanned consequences. For instance, when a business has highest traffic at a specific time every day, it knows it will require more servers during that time but not at other times of the day. To save money, this business may decide to use the auto-scaling feature to put instances in auto scaling groups. But, if on any one occasion the traffic peaks at a different time, the site goes down. Here, in spite of auto scaling the site is found to go down. This is because adding new instances takes time and when the new instances finally do get added; it is not in time to handle the sudden surge in traffic at a different time as had happened. Moreover, since there are not ample instances for handling the workload, it triggers extra non-helpful instances and the existing servers get so overloaded that they slow down. If you consider the real world, demands will grow slowing and predictably. However, there are times when traffic spikes suddenly and auto scaling fails to match the demands. So, auto scaling is perhaps better for businesses which scale many servers instead of only a handful. Whenever you allow the capacity to drop below a particular amount, you will become prone to downtimes.
– Balancing between what configuration management tools can do and what is baked into AMI is challenging unlike what many people believe. What really happens is that you will configure an instance only depending on how quickly it can be installed. Using configuration management tools helps when you run many machines and you get to update the packages all in one place. But, in auto scaling events, you will not want to wait for scripts to download packages. Besides, with a Puppet script, many things can go wrong. When the initialization does not fail properly, it may mean huge money losses because the instances die and have to be rebuilt each time.
These arguments reveal some of the common myths which people have about auto scaling. Installation of auto scaling is anything but simple. It is a time consuming project too for engineers. So, it is believed that eventually there will be third party tools that can make this process simpler. Tools like OpsWork from Amazon need to become stronger; till that time, auto scaling will have to rely solely on the expertise and skills of engineers.