Use events from HTTP to trigger autoscaling with Kedify and KEDA
Book demo !![HTTP Scaler Diagram](/assets/images/scalers/http-diagram.png)
HTTP-based autoscaler dynamically scales Kubernetes workloads based on real-time HTTP traffic metrics, including scale down to zero.
Overview of Kedify’s HTTP Scaler
The HTTP Scaler is a production-ready solution designed to deliver unmatched performance, stability, and ease of use for scaling based on HTTP traffic in Kubernetes environments. Built on top of the KEDA HTTP Add-On, the Kedify HTTP Scaler incorporates significant improvements that enhance stability and performance.
Key Features
- Automatic Network Traffic Wiring: Simplifies configuration by automating necessary Ingress reconfigurations.
- Fallback Mechanism: Ensures continuous availability by rerouting traffic during control plane issues.
- Built-In Health Checks: Maintains proper health statuses for applications scaled to zero.
- gRPC and Websockets Support: Enables autoscaling based on gRPC and Websockets, including scale to zero
- Performance and Envoy Integration: Leverages the Envoy proxy for superior performance and reliability.
Compare the Kedify HTTP Scaler and the KEDA Community HTTP Add-On
Compare
Production Readiness
Stability and Performance
Single Point of Failure
gRPC & Websockets Support
Configuration
Automatic Network Wiring
Fallback Mechanism
Health Check Responses
Integration with Envoy
Kedify HTTP Scaler Types
- kedify-http: Offers full autowiring and fallback support (documentation).
- kedify-envoy-http: Utilizes an existing Envoy proxy and scales from 1 replica with limited autowiring and fallback capabilities (documentation).
Learn More
- Tutorial: In-browser, step by step guide on how to use the HTTP Scaler: HTTP Scaler Tutorial
- Quickstart: A step by step guide using local Kubernetes cluster: HTTP Scaler Quickstart
- For detailed information, visit our blog post.
Featured Use Cases
Scenario:
Scale out a specific service that is only needed during sales events and peak traffic periods on demand. This service does not have to be running all the time, therefore we can save resources.
HTTP Scaler Usage:
Scaling is triggered based on the number of HTTP requests per second and we know that each replica of the service can handle 100 requests per second.
KEDA Usage:
We define ScaledObject with kedify-http trigger. We set minReplicaCount: 0, specify scalingMetric to requestRate and targetValue: 100. This way we can scale from 0 replicas based on the incoming traffic. We just need to define the correct host and Kubernetes service and port that the app is listening on.
Get Started
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: ecommerce
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: ecommerce-service
minReplicaCount: 0
maxReplicaCount: 10
triggers:
- type: kedify-http
metadata:
hosts: ecommerce-service.company.com
service: ecommerce-service
port: "8080"
scalingMetric: requestRate
targetValue: "100"