The Doppler Quarterly Spring 2019 | Page 52

How Autoscaling Works Here is an example of autoscaling in action. Say you have a service that handles payments of cell phone bills. People being the procrastinators they are, the cellphone company fields the bulk of its payment traffic the last three days of every month. If the company has an on-premises applica- tion, it could port that app to the cloud without making any code changes, and still get the benefits of autoscaling at the platform. The platform provider’s autoscaling function watches the number of requests coming into the website, and when the traffic gets to a certain level, determined by the cell phone company, the platform will automatically provision more copies of that front-end system to handle the load. The app itself has no clue this is happening; it is just con- suming the resources. The platform provider’s router routes the traffic and balances the load across all those servers. When the load starts dropping off, the platform autoscales back down again. It sees the inbound traffic is sliding off, and the app uses only the services it needs based on the new set of demands. The challenge with equipping your platform with an auto- scaling function is that you can get false positives. When traffic comes in, the system reacts. But what if the traffic is being generated by somebody launching a DNS attack? Your platform will spin up resources to handle inbound traf- fic even when it is traffic you do not want to see. The Benefits of Elastic Apps Elastic applications can be configured to react to certain kinds of traffic, and authorize the right level of resources at the right time. The challenge is, elastic applications are hard to build. They are growing in popularity, but most companies are still at the stage where they can act more effectively by imple- menting autoscaling functions at the infrastructure level. Another option is to pursue a hybrid approach – to have the autoscaling of apps and the infrastructure working in con- cert with each other. Companies could start by autoscaling their platforms, master that, start building elastic applica- tions and eventually get to the point where all new apps are being built with autoscaling in mind. Communication Is Key What kinds of pitfalls can you face when you set up an auto- scaling function in your platform? For one, you can get into a situation where you are overengineering. If you provision for large amounts of resources, you have to be realistic about whether you are going to get the payback you are looking for. Everybody wants to do autoscaling, but they often want roast beef when they are on a bologna budget. It has to make sense for the business. This underlies the importance of having the infrastructure team, the application teams and the business units working closely with each other. If there is a turf war, you will have problems. Lack of communication creates situations where the infrastructure group configures the platform, the other groups want something different and nothing gets done. Creating an elastic app does a better job of capturing such information. The app itself knows what is real. It can deter- mine whether the traffic is being generated by real users and whether it is important to the business. Define Autoscaling Rules For example, consider a scenario in a bond trading environ- ment. The autoscaling platform would not know if a firm has a high number of bond trade settlements coming in behind the scenes. There might be some indication around the size of the volume, but the infrastructure is not going to be able to determine whether it is reacting to legitimate trades. Basically, you need to define your autoscaling rules based on application demands. As an infrastructure lead for your company, you will need to have detailed conversations with app teams to understand their elasticity needs. Here are a few key questions to ask: 50 | THE DOPPLER | SPRING 2019 Everyone wants a platform to be flexible. But how do you determine how and when to scale up and scale down?