Skip to main content
Harbor supports multiple cloud environment providers, allowing you to run hundreds or thousands of trials in parallel. This guide covers setup and usage for each supported provider.

Supported Providers

Harbor supports the following cloud execution environments:
  • Daytona - Fast container-based sandboxes with Docker-in-Docker support
  • Modal - Serverless containers with GPU support
  • E2B - Secure sandboxes with fast startup times
  • Runloop - Managed evaluation environments
  • GKE - Google Kubernetes Engine for large-scale deployments

Daytona

Daytona provides fast, ephemeral development environments perfect for agent evaluation.

Setup

Configuration Options

Daytona environments support several configuration options:

Docker Compose Support

Daytona automatically detects when your task uses Docker Compose and creates a Docker-in-Docker environment:
docker-compose.yaml
When using Docker Compose, Daytona creates a DinD (Docker-in-Docker) sandbox and runs docker compose inside it. The main service is where agent commands execute.

Advanced Configuration

Modal provides serverless containers with excellent GPU support, ideal for ML-heavy evaluations.

Setup

GPU Support

Modal is the recommended provider for GPU-enabled tasks:
Your task configuration specifies GPU requirements:
task.toml

Configuration Options

E2B

E2B provides secure, fast-starting sandboxes with built-in internet isolation.

Setup

Network Isolation

E2B supports network isolation by default when specified in task config:
task.toml

Runloop

Runloop provides managed environments optimized for agent evaluation.

Setup

Google Kubernetes Engine (GKE)

For large-scale enterprise deployments, Harbor supports GKE.

Setup

GKE support is in beta. Contact the Harbor team for production deployment guidance.

Choosing a Provider

*GKE GPU support requires cluster configuration

Cost Optimization

Use Snapshots

Pre-build environment snapshots to reduce startup time and costs:

Optimize Concurrency

Higher concurrency completes faster but may hit rate limits:

Use Auto-Delete

Ensure environments are deleted promptly to avoid idle charges:

Troubleshooting

Rate Limits

If you hit provider rate limits, reduce concurrency:

Build Timeouts

Increase build timeout for complex Docker images:

Network Issues

Check if your task requires internet access:
task.toml

Best Practices

  1. Test locally first: Run 1-2 tasks locally before scaling to cloud
  2. Start with lower concurrency: Gradually increase to find optimal throughput
  3. Use snapshots: Pre-build images to reduce startup time
  4. Monitor costs: Track cloud provider spending
  5. Set timeouts: Configure auto-stop and auto-delete to avoid idle charges
  6. Choose the right provider: Match provider capabilities to your task requirements

Next Steps

Running Evaluations

Learn the basics of running evaluations

Parallel Execution

Optimize parallel execution strategies

Creating Tasks

Build tasks optimized for cloud execution