I recently attended an Azure community meet-up, where I discovered an interesting autoscaling feature that could help manage fluctuations in user demands cost-effectively. I thought I’d share with you how cloud scaling works and the benefits.
Cloud scalability in a nutshell
Cloud scalability is the cloud computing system's ability to adapt its resources to handle the workload efficiently. When the demand is high, the cloud server automatically scales out to more instances. In quiet times, it scales down to save costs.
Here are a few keywords for me to remember about cloud scalability:
Scaling up and out.
Scaling up: Scaling up increases resources on a single server to handle more significant workloads efficiently.
Scaling out: Scaling out adds more web app instances to distribute the workload, enabling handling larger workloads and improved performance.
Cloud-scaling methods
Manual scaling - Manual scaling may be more appropriate if I have a limited budget, a handful of content editors, predictable traffic patterns, and peak times.
Autoscaling - Autoscaling provides excellent flexibility to scale up and out using rule-based settings, which is just one of the reasons I use autoscaling with my chosen cloud provider on almost all of my projects.
Both are effective methods for me to manage my cloud infrastructure. Autoscaling, as the name suggests, is much more convenient than having eyes on resources 24/7, making the it ideal solution for a lot of businesses.
Are auto-scaling options a game-changer?
Almost all of my projects are hosted on Azure that handles scaling everything front and back-end related. That's the database, search, global production, legacy folders, staging, UAT; etc.
I use rule-based autoscaling on 95% of projects which can detect how the website is responding.
For example, if the website goes over 70 CPU (Central Processing Unit, AKA the computer's brain), a new instance is added, redirecting traffic to the new version and reducing the load.
This method works well clients with ever-changing traffic demands, quickly allowing me to scale up and out, but this method has just been beaten by a new feature from Azure.
Autoscaling metric by traffic
Until this feature came out, Azure let me manage my resources by adjusting my autoscaling settings to respond to a maximum CPU, memory usage or request count and a ton of other interesting metrics that you can choose to scale with too!
While CPU is a great metric to keep an eye on for things like scientific computing, or applications that use machine learning or big data and analytics, it's not always the best measure for a reasonably straightforward website or application.
In other words, not all websites require a brain (a CPU) the size of Europe; sometimes, they only need a slick design, a smooth UI, complete with integrations and a frontend that works!
With autoscaling by CPU (computer brain-power), the more users enter the site; the more resources are created to handle the users. Sounds perfect. So why would I need to introduce autoscaling by traffic?
Load balancing
A load balancer sits between the user's actions and new resources being created to handle the users. I can think of the load balancer as a helpful leader of computer resourcing, evenly spreading the workload among the new resources and ensuring everything is fair!
In theory, the load balancer does what it says on the tin, but even the most intelligent computer has to think for a fraction of a second.
The load balancer's thinking time can mean that, for a moment, one resource is working extra hard until the load balancer decides those duties should be distributed, and voila, we get a momentary blip in the user experience.
Cloud scaling for stable user experience!
This is where the autoscaling by traffic comes in, as it guarantees a sudden influx of 100,000 users isn't going to crash the whole thing. Perfect for those industries I serve that are expecting global media attention following a targeted campaign.
Always ready instances
So I've established that even the most intelligent computers need time to react; that's where always-ready instances could be the answer!
My cloud provider has introduced a way for me to keep one instanced fired up and waiting in the wings!
This is an excellent way for me to counteract that fleeting moment between when the scaling condition is met and the scaling action takes effect. While I might blink and miss this moment, it can still cause a minor flicker in the application that some of my businesses can't afford.
Source: Azure Functions Premium plan
The future of cloud scaling looks bright
I’m a fan of the latest from Azure. Regardless of budget, whether I use manual, autoscaling by CPU or traffic, I need a cloud-scaling support system to handle the demands of my clients.
Perhaps you’ve experienced the benefits of new autoscaling features already from Azure or another provider? I’d love to hear about others experiences and start a conversation where we can compare notes!
You can even contribute an article on this or a similar topic, get in touch in on socials or any of our contact buttons to get the ball rolling.
- cloud scaling
Innerworks and Cogworks are proud to partner with Community TechAid who aim to enable sustainable access to technology and skills needed to ensure digital inclusion for all. Any support you can give is hugely appreciated.