Skip to main content

· 3 min read
Hwansoo Kim

The Challenges of Varying Availability Needs

As applications grow and evolve, their availability requirements often become more nuanced and diverse. Initially, it's common to think of an application's availability as a single target for the entire system. However, upon closer examination, we often find that different components or aspects of the application have unique availability requirements. Here are a few examples:

  1. User-facing components: Components like web servers or APIs may require higher availability to ensure a seamless user experience.
  2. Backend components: Data processing pipelines, batch jobs, or other backend tasks may have lower availability requirements, as temporary downtime is less critical.
  3. Compliance and Regulatory Requirements: Certain industries or data types may mandate stricter availability standards to comply with regulations.
  4. Customer Segments: Different customer segments (e.g., enterprise vs. individual users) may have varying availability expectations.
  5. Cost Considerations: For some non-critical components, a lower availability target may be acceptable to reduce costs.

Trying to meet these diverse requirements with traditional autoscaling solutions can be challenging. Most autoscaling tools are designed to scale based on a single set of metrics or rules, making it difficult to cater to the specific needs of different application components.

The Solution: Unified Autoscaling and Traffic Management

To address these challenges, a unified autoscaling and traffic management solution is needed. Such a solution should provide the flexibility to define and manage autoscaling and traffic control strategies tailored to the unique requirements of each application component. Here's how a unified solution like Wave Autoscale can help:

  1. Granular Scaling Definitions: With Wave Autoscale, you can define scaling plans, metrics, and component definitions as code using YAML files. This allows you to set distinct scaling rules and targets for different components based on their availability requirements.

  2. Diverse Metrics Support: Wave Autoscale integrates with popular open-source collectors like Telegraf and Vector, enabling it to gather various types of metrics from diverse data sources. This rich set of metrics empowers you to craft precise scaling conditions that align with each component's specific behavior and needs.

  3. Dynamic Scaling Triggers: Wave Autoscale supports a variety of scaling triggers, including JavaScript expressions, cron schedules, and HTTP triggers. This flexibility allows you to create sophisticated scaling strategies that can adapt to daily traffic patterns, planned maintenance windows, or unexpected surges, ensuring the right resources are available when needed.

  4. Traffic Control: In addition to autoscaling, Wave Autoscale integrates with traffic control features like rate limiting, virtual waiting rooms, and load balancing. These features can enhance application performance and user experience, especially for user-facing components with higher availability requirements.

  5. Detailed Scaling History: Wave Autoscale maintains a comprehensive history of scaling events, providing visibility into resource adjustments, triggers, and audit trails. This information can be invaluable for troubleshooting, analysis, and refining your scaling strategies over time.

By leveraging a unified autoscaling and traffic management solution like Wave Autoscale, you can effectively meet the diverse availability requirements of your application components, ensuring reliable and cost-effective scaling while maintaining optimal application performance, regardless of the complexity or scale of your cloud-native environment.

· 2 min read
Hwansoo Kim

Today, we are pleased to announce the official release of Wave Autoscale, our open-source solution aimed at simplifying the autoscaling experience in the cloud for cloud engineers and SREs.

The Origin of Wave Autoscale

The evolving complexities of cloud infrastructures and the essential requirement for high availability highlighted the need for a more nuanced approach to autoscaling. This led to the creation of Wave Autoscale, an endeavor to address the challenges of scaling beyond just CPU metrics.

Features of Wave Autoscale

  • Comprehensive Metrics Collection: Wave Autoscale integrates with open-source collectors, such as Telegraf and Vector. This allows for a wide variety of metrics, from system performance to custom business-centric ones, to be gathered efficiently.

  • Timely Data Analysis: Metrics are analyzed in real-time by Wave Autoscale, ensuring appropriate and prompt scaling actions.

  • Cost-Considerate Scaling: With Wave Autoscale, you can better avoid excessive provisioning or potential under-provisioning, aiming for an optimal cost-to-performance ratio.

  • Custom Metrics: The tool allows for the definition of custom metrics that cater to specific applications or business needs.

An Open Source Initiative

Wave Autoscale is open to contributions from developers, cloud specialists, and technology enthusiasts. Our aim is to create a collaborative space where the tool can adapt and grow according to real-world needs and feedback.

Getting Started

For those keen to explore Wave Autoscale, our Get Started offers detailed installation instructions and initial best practices.

Acknowledgements

A sincere thank you to our development team and early testers for their input and dedication.

What's Next?

Our journey has just begun. We have plans for continuous improvements and additions to Wave Autoscale, and we look forward to collaborating with our growing user community.


We welcome you to try out Wave Autoscale and join our community on GitHub. Your feedback and insights will be invaluable in shaping the tool's future trajectory.