Cloud Service >> Knowledgebase >> General >> What Is Automatic Vertical Scaling?
submit query

Cut Hosting Costs! Submit Query Today!

What Is Automatic Vertical Scaling?

Automatic vertical scaling is a cloud computing capability that allows an application or resource to dynamically adjust its compute power up or down based on usage demands. It enables allocating more powerful virtual machines or containers when needed without manual intervention. This guide will cover what automatic vertical scaling entails and its benefits.

Overview

With automatic vertical scaling, the cloud hosting provider monitors the performance of deployed applications and automatically adjusts the specs of the underlying virtual machines like CPU, memory, and storage as per changing resource requirements.

For example, during peak load times, VMs can be automatically upgraded to more powerful machine types to handle increased traffic and compute demands. When demands decrease, VMs are downgraded to cheaper base configurations to optimize costs.

The key advantage of automatic vertical scaling is enabling applications to handle usage spikes seamlessly without over-provisioning resources or missing service level agreements (SLAs). The cloud provider's algorithms determine optimal scaling.

How Does Automatic Vertical Scaling Work?

Here is an overview of how automatic vertical scaling works:

- Resource usage metrics like CPU, memory, I/O are continually monitored. Common data points include utilization percentage, read/writes, network I/O etc.

- Metrics are fed into the cloud provider's algorithms that determine the optimal machine size to handle the current workload based on rules and thresholds.

- The algorithm computes the appropriate VM size and initiates an automatic scaling event to resize the instance vertically.

- Storage and network allocations are adjusted to match new VM size. New CPU/RAM allocations take effect immediately.

- Periodic checks continue and the instance is scaled up or down vertically based on workload.

- Pricing is typically on a pay-per-use basis for actual VM size at any point.

Infrastructure Requirements

Key requirements for enabling automatic vertical scaling include:

- Applications designed as microservices or distributed systems that can scale independently

- Dynamic provisioning capabilities for storage, compute and networking

- Monitoring, metrics and logging of resource utilization

- Auto-scaling algorithms that factor in utilization, scaling latency, budget caps etc.

Key Benefits

Automatic vertical scaling provides several advantages:

- Optimized resource usage: Compute power matches immediate requirements to minimize over or under provisioning.

- Improved performance: Spikes in demand are handled by allocating more resources.

- Reduced costs: VM sizing and cost is aligned closely with utilization needs.

- High availability: Scaling vertically provides overflow capacity to prevent workload disruptions.

- Better user experience: Consistent performance during traffic surges due to flexible resource allocation.

Vertical Scaling Disadvantages

Here are some ways to improve those disadvantage points:

- Vertical scaling is limited in how much a single device can be upgraded due to hardware thresholds for RAM, storage and processing capacity.

- Relying on one scaled machine increases risk of downtime as it becomes a single point of failure.

- Upgrading computing resources requires taking the machine offline during transitions.

- There is often a percentage of unused resources from overprovisioning a single scaled server.

- Hosting everything on one scaled server raises the risk of permanent data loss.

Use Cases

Common use cases for automatic vertical scaling include:

- Web apps - Scale application servers up during peak daily traffic and down during low usage periods.

- Ecommerce sites - Scale front-end VMs to handle load changes from promotions or holiday sales.

- Batch processing - Scale compute resources based on workload from data processing jobs.

- Gaming workloads - Dynamically grow database servers to match gaming usage demands and adjust memory for game servers.

- Enterprise apps - Allocate additional compute power for business apps during month, quarter or year-end processing.

Implementation Considerations

Key considerations when implementing automatic vertical scaling:

- Define metrics and data points to drive scaling decisions. Balance utilization and performance.

- Set thresholds carefully to trigger scaling at optimal times. Avoid premature or delayed reactions.

- Test auto-scaling algorithms thoroughly before production deployment.

- Ensure supporting infrastructure like storage and networking can scale vertically as well.

- Adjust configurations continuously based on real-world data for efficiency.

- Set upper and lower boundaries for cost control and performance baseline.

- Monitor VM resizing events and status for issues.

Conclusion

Automatic vertical scaling adapts cloud infrastructure to match application resource demands dynamically. By monitoring usage and automatically adjusting compute power, it optimizes costs while delivering consistent performance. With the right algorithms and monitoring data, vertical scaling provides flexibility and efficiencies not possible with static resource allocation. This capability unlocks the full economic benefits of the cloud for many workloads.

Cut Hosting Costs! Submit Query Today!

Grow With Us

Let’s talk about the future, and make it happen!