Back to Blog
Product October 5, 2024 6 min read

Introducing Bid Strategies: Optimize Your Compute Costs

Set custom bidding strategies to automatically balance cost savings with workload requirements. Available today for all users.

JL
Jennifer Lee
Product Manager

Today, we're launching Bid Strategies—a powerful new feature that lets you automate your bidding behavior based on your specific needs. Whether you're optimizing for cost, availability, or a balance of both, Bid Strategies has you covered.

The Challenge

When we launched KubeBid's auction system, we gave users full control over their bids. Set a maximum price, and we'd match you with capacity at or below that price. Simple.

But as our users scaled, they told us managing bids manually wasn't practical. A data science team with hundreds of training jobs can't manually set and adjust bids for each one. They needed automation.

Common requests included:

Introducing Bid Strategies

Bid Strategies let you define rules that automatically determine your bid prices and scaling behavior. We've built three strategy types:

1. Cost Optimized

Minimizes your spend by bidding aggressively low. Best for flexible workloads where start time doesn't matter.

apiVersion: kubebid.io/v1
kind: BidStrategy
metadata:
  name: cost-optimized
spec:
  type: CostOptimized
  config:
    # Bid at 60% of current market price
    bidPercentage: 60
    # Wait up to 6 hours for capacity
    maxWaitTime: 6h
    # Fall back to reserved if not matched
    fallbackToReserved: false
    # Target regions (in order of preference)
    preferredRegions:
      - us-west-2
      - us-east-1
      - eu-west-1

With Cost Optimized, we'll automatically place bids at the lowest price likely to clear based on historical data. Our customers using this strategy save an average of 65% compared to on-demand pricing.

2. Availability Optimized

Prioritizes getting capacity quickly and keeping it. Best for production workloads where uptime matters more than cost.

apiVersion: kubebid.io/v1
kind: BidStrategy
metadata:
  name: production
spec:
  type: AvailabilityOptimized
  config:
    # Bid at market price plus buffer
    bidPercentage: 120
    # Start immediately
    maxWaitTime: 5m
    # Use reserved as backup
    fallbackToReserved: true
    # Stick to one region for network locality
    preferredRegions:
      - us-west-2

Availability Optimized bids above market price to ensure your workloads get capacity immediately and aren't pre-empted during price spikes.

3. Balanced

The default strategy. Balances cost and availability using our ML-powered prediction model.

apiVersion: kubebid.io/v1
kind: BidStrategy
metadata:
  name: balanced
spec:
  type: Balanced
  config:
    # Target monthly budget
    monthlyBudget: 10000
    # Minimum acceptable uptime
    targetAvailability: 99.5
    # Allow cross-region placement
    allowCrossRegion: true

Balanced mode uses historical pricing data and demand forecasts to automatically adjust your bids. Set a budget and availability target, and we'll optimize within those constraints.

Using Bid Strategies

You can apply strategies at the cluster, namespace, or workload level. Higher specificity wins:

# Apply to a specific deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ml-training
  annotations:
    kubebid.io/bid-strategy: cost-optimized
spec:
  replicas: 10
  template:
    spec:
      containers:
      - name: trainer
        image: myorg/trainer:v1
        resources:
          requests:
            nvidia.com/gpu: 4

Or set a default for an entire namespace:

apiVersion: v1
kind: Namespace
metadata:
  name: production
  annotations:
    kubebid.io/bid-strategy: production

Advanced: Custom Strategies

For users with complex needs, you can define fully custom strategies with time-based rules:

apiVersion: kubebid.io/v1
kind: BidStrategy
metadata:
  name: custom-batch
spec:
  type: Custom
  rules:
    # Weekends: aggressive cost optimization
    - schedule: "0 0 * * 6,0"  # Sat & Sun
      config:
        bidPercentage: 50
        scaleUp: 200%

    # Weekdays off-hours: moderate savings
    - schedule: "0 18-8 * * 1-5"  # 6pm-8am
      config:
        bidPercentage: 70
        scaleUp: 150%

    # Business hours: balanced
    - schedule: "0 8-18 * * 1-5"
      config:
        bidPercentage: 100
        scaleUp: 100%

This example automatically scales up batch processing during off-peak hours when prices are lower.

Analytics Dashboard

Along with Bid Strategies, we're launching a new analytics dashboard that shows:

📊

The new analytics dashboard shows real-time bidding performance and cost savings.

Getting Started

Bid Strategies is available today for all KubeBid users at no additional cost. To get started:

  1. Update your CLI: kubebid update
  2. Create your first strategy: kubebid strategy create --type balanced
  3. Apply it to your workloads
  4. Monitor results in the dashboard

Check out our documentation for the full API reference, or reach out to our team if you need help optimizing your bidding strategy.

Early Adopter Results

Beta users of Bid Strategies saw an average 23% improvement in cost efficiency while maintaining their target availability levels. One customer reduced their monthly compute bill from $45,000 to $28,000 with zero impact on workload performance.

We're excited to see how you use Bid Strategies. As always, we'd love your feedback—reach out via our contact page or join our Discord community.

Jennifer Lee is a Product Manager at KubeBid, focusing on pricing and cost optimization features.

Related Posts