Business & Enterprise Feature

Scale up when it matters, scale down when it doesn't

Set CPU and memory thresholds once. sh0 adds replicas when load spikes, removes them when it drops, and load-balances traffic automatically. No orchestrator. No YAML. No 3 AM alerts.

What you get

Metric-driven scaling, replica management, and intelligent load balancing -- all built in.

CPU-based scaling
Scale replicas up or down based on average CPU usage across containers
Memory-based scaling
Trigger scaling events when memory consumption crosses your thresholds
Min/max replica limits
Set hard boundaries so you never over-scale or under-provision
Cooldown periods
Prevent flapping with configurable cooldown between scaling events
Load balancing
Round-robin, least-connections, or random distribution across replicas
Health-aware routing
Only route traffic to healthy replicas that pass their health checks

How it works

01

Set CPU/memory thresholds

Define the percentage at which scaling should trigger -- for example, scale up when CPU exceeds 70% or memory passes 80%.

02

Define min and max replicas

Set the floor and ceiling for your replica count. Minimum ensures availability; maximum caps your resource usage.

03

Configure cooldown period

Set the minimum time between scaling events (e.g., 60 seconds) to prevent rapid oscillation under fluctuating load.

04

sh0 scales automatically based on load

The autoscaler monitors metrics continuously and adjusts replica count in real time. No manual intervention needed.

The scaling pipeline

Traffic Spike
Metrics Collector
Threshold Exceeded
Scale Up Replicas
Load Balancer
Distribute Traffic

Entire cycle completes in seconds -- no orchestrator overhead, no pod scheduling delays

Everything you need

CPU & memory thresholds

Set independent thresholds for CPU and memory utilization. Scaling triggers when either metric crosses the line.

Min/max replica bounds

Define a minimum replica count for high availability and a maximum to control costs. sh0 stays within your limits.

Configurable cooldown

Prevent scaling thrash with a cooldown window. After a scale event, sh0 waits before evaluating again.

3 load balancing strategies

Choose round-robin for even distribution, least-connections for smart routing, or random for simplicity. Switch anytime.

Health-check aware

Replicas that fail health checks are automatically removed from the load balancer pool. Traffic only hits healthy instances.

Scale-to-zero capable

Set minimum replicas to zero and sh0 shuts down all instances when idle. Perfect for staging, dev, and low-traffic apps.

The old way

  • x Manually SSH and start containers
  • x Guess traffic patterns
  • x No automatic response to spikes
  • x Over-provision to be safe
  • x Pay for idle resources
  • x Wake up at 3 AM to scale

The sh0 way

  • Set thresholds once
  • Automatic scale up on load
  • Scale down when quiet
  • Load balanced automatically
  • Health checks route traffic
  • Sleep through traffic spikes

Questions & answers

What metrics trigger scaling? +
CPU utilization and memory usage, measured as a percentage across all running replicas. You set the threshold for each independently -- for example, scale up at 70% CPU or 80% memory, whichever is hit first.
How fast does it scale? +
New replicas are started within seconds of a threshold breach (subject to your cooldown period). Since sh0 uses pre-built Docker images, there is no build step -- containers spin up immediately from the existing image.
What load balancing strategies are available? +
Three strategies: round-robin (requests distributed evenly in order), least-connections (sent to the replica handling the fewest active requests), and random (distributed randomly). You can change strategy at any time without downtime.
Can I set scale-to-zero? +
Yes. Set your minimum replicas to 0 and sh0 will shut down all instances when metrics stay below threshold. The first incoming request triggers a cold start. Ideal for staging environments or low-traffic services.
How does cooldown work? +
After a scaling event (up or down), sh0 waits for the cooldown period before evaluating metrics again. This prevents rapid oscillation when load is fluctuating around the threshold. Default is 60 seconds, configurable per app.
Does it work with databases? +
Auto-scaling is designed for stateless application containers. Databases and other stateful services should not be auto-scaled -- sh0 prevents you from enabling it on database containers to protect data integrity.

Handle any traffic, automatically

CPU and memory-based auto-scaling with built-in load balancing. No orchestrator required.