> ## Documentation Index
> Fetch the complete documentation index at: https://autopilot.docs.xano.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Autopilot vs CAST AI

> A feature-by-feature comparison for teams evaluating Kubernetes cost optimization platforms or planning a migration.

This page compares Autopilot by Xano with CAST AI for teams evaluating Kubernetes cost
optimization platforms or planning a migration.

## Executive summary

|                           | Autopilot                                 | CAST AI                                                |
| ------------------------- | ----------------------------------------- | ------------------------------------------------------ |
| **Deployment**            | Self-hosted controller in your cluster    | SaaS — agent in cluster, decisions in CAST AI cloud    |
| **Data residency**        | All metrics and decisions stay in-cluster | Cluster data sent to CAST AI's platform                |
| **Pricing**               | Fixed infrastructure cost                 | Percentage of savings (\~20–30%) or per-node licensing |
| **Multi-cloud**           | GKE-focused (EKS support in progress)     | AWS, GCP, Azure                                        |
| **Setup time**            | \~15 min per cluster (automated)          | \~10 min (Terraform module)                            |
| **In-place pod resizing** | Yes (KEP-1287, K8s 1.33+)                 | Yes (KEP-1287, K8s 1.33+)                              |
| **Decision transparency** | Full algorithm visibility                 | Black-box optimization                                 |

## Feature comparison

### Node scaling

| Capability                      | Autopilot                                                      | CAST AI                            |
| ------------------------------- | -------------------------------------------------------------- | ---------------------------------- |
| Per-node machine type selection | Yes (heterogeneous mode)                                       | Yes                                |
| Bin-packing algorithm           | Configurable series priority + headroom                        | Proprietary                        |
| Spot/preemptible support        | Yes                                                            | Yes                                |
| PV-aware zone provisioning      | Yes — provisions nodes in the same zone as bound PVs           | Limited                            |
| Zone-aware series filtering     | Yes — removes unavailable series per zone via the GCE API      | Unknown                            |
| Scale-down protection           | 10-min grace period + proportional removal + pending pod guard | Evictor with configurable policies |
| Machine type catalog            | Explicit allowed series + min CPU/memory filters               | Full catalog, automated selection  |

**Autopilot advantage:** PV-aware zone provisioning prevents the runaway scale-up problem
where pods with zonal PersistentVolumes stay unschedulable because nodes are provisioned in
the wrong zone. Autopilot resolves the PV's zone from the PVC chain and provisions in the
correct zone automatically.

**CAST AI advantage:** Broad multi-cloud support (AWS, Azure, GCP) today.

### Pod right-sizing (vertical optimization)

| Capability                   | Autopilot                                                      | CAST AI                     |
| ---------------------------- | -------------------------------------------------------------- | --------------------------- |
| In-place resize (no restart) | Yes — KEP-1287 on K8s 1.33+                                    | Yes — KEP-1287 on K8s 1.33+ |
| Recommendation algorithm     | Transparent — percentile-based with configurable buffer        | Proprietary                 |
| HPA awareness                | Yes — switches to P95 for HPA-managed CPU                      | Unknown                     |
| OOM response                 | 3-layer protection (bump, floor, death spiral eviction)        | Basic OOM handling          |
| Change sensitivity           | Dynamic threshold (\~25% small, \~5% large)                    | Configurable threshold      |
| Startup spike filtering      | Yes — filters the first 5 min + container restart spikes       | Unknown                     |
| Recommendation stability     | 5-layer mechanism (P99 peaks, hysteresis, split queries, etc.) | Unknown                     |

**Both support in-place resizing** on K8s 1.33+ via KEP-1287. The differentiators are in the
recommendation algorithm and operational transparency.

**Autopilot advantage:** Full algorithm transparency. Every recommendation includes the
percentiles, buffer, data source, sample count, and hysteresis decisions — so when a
recommendation oscillates or seems wrong, you can see exactly why. CAST AI's recommendations
are opaque.

### Cluster rebalancing

| Capability               | Autopilot                                                 | CAST AI                |
| ------------------------ | --------------------------------------------------------- | ---------------------- |
| On-demand rebalance      | Yes — CLI or API with cost analysis                       | Yes — via dashboard    |
| Rolling drain strategy   | Yes — batches of 5–10, \~0.5 min/node                     | Unknown batch behavior |
| Provision-first strategy | Yes — creates replacement VMs before draining             | Yes                    |
| Greenfield bin-packing   | Yes — recomputes optimal fleet from scratch               | Unknown                |
| Cost comparison          | Before/after cost analysis per node                       | Savings estimate       |
| Crash recovery           | Full — persisted state in ConfigMaps, resumes on restart  | Unknown                |
| Maintenance windows      | Yes — scheduled deep consolidation including fragile pods | Limited                |
| Fragile pod detection    | Yes — single-replica, no-PDB, OrderedReady StatefulSets   | Unknown                |

**Autopilot advantage:** Rolling drain mode doesn't require double capacity. It drains nodes
in small batches and lets the scaler provision right-sized replacements. Provision-first
approaches require enough headroom to run the old and new fleet simultaneously.

### Scheduled scaling

| Capability               | Autopilot                                               | CAST AI              |
| ------------------------ | ------------------------------------------------------- | -------------------- |
| Time-based HPA overrides | Yes — ScheduledScalePolicy CRD                          | No native equivalent |
| Pre-warming              | Yes — configurable pre-scale minutes                    | No                   |
| HPA behavior overrides   | Yes — Instant/Aggressive/Balanced/Gradual speed presets | No                   |
| Weekly/daily schedules   | Yes — with timezone support                             | No                   |

**Autopilot advantage:** CAST AI doesn't have scheduled scaling. If you have predictable
traffic patterns (morning login surges, batch processing windows), Autopilot can pre-warm
pods before the burst arrives.

### Observability & dashboard

| Capability                 | Autopilot                                                                   | CAST AI                   |
| -------------------------- | --------------------------------------------------------------------------- | ------------------------- |
| Dashboard                  | Self-hosted Angular SPA (port 9090)                                         | SaaS dashboard at cast.ai |
| GCP service monitoring     | Cloud SQL, Redis, NAT, Storage, DNS, VPC, Artifact Registry, Secret Manager | Not included              |
| Package cost attribution   | Yes — per-package cost with spillover breakdown                             | Namespace-level cost      |
| Network monitoring         | Yes — throughput, top talkers, per-node errors/drops                        | Not included              |
| Cluster health checks      | Automated health-check battery                                              | Basic health status       |
| Recommendation audit trail | Full history with algorithm transparency                                    | Limited history           |

**Autopilot advantage:** GCP managed-service monitoring is unique to Autopilot. It surfaces
Cloud SQL CPU, Redis memory, NAT port exhaustion, and more in the same dashboard with health
thresholds and Slack alerts.

**CAST AI advantage:** Their SaaS dashboard requires zero infrastructure — no Prometheus, no
port-forwarding.

## Architecture differences

### Data flow

**Autopilot** keeps everything within the cluster:

```
Prometheus (in-cluster) → Controller (in-cluster) → Dashboard (in-cluster)
                                                   → ConfigMaps (state)
                                                   → CRDs (config)
```

No external API calls except GCE for node provisioning.

**CAST AI** computes decisions externally:

```
Agent (in-cluster) → CAST AI Cloud (SaaS) → Agent (applies changes)
                   ↑                        ↓
              Cluster metrics         Optimization decisions
              sent to SaaS           sent back to cluster
```

### Node provisioning

**Autopilot (heterogeneous mode):**

* Provisions GCE VMs directly via the Instances API.
* Clones bootstrap metadata from existing GKE nodes.
* Kubelet uses a ServiceAccount token for initial auth, then a CSR for the node certificate.
* Autopilot handles CSR approval, pod CIDR assignment, and taint removal.
* VMs are fully integrated into the K8s cluster networking and tracked in the NodeScalingPolicy status.

**CAST AI:**

* Creates empty GKE node pools as placeholders (`cast-pool`, `cast-pool-arm`).
* Provisions standalone GCE VMs named `gke-<cluster>-cast-pool-<hash>`.
* VMs are NOT members of the GKE node pool despite the naming.
* Deleting the `cast-pool` node pool does NOT delete the standalone VMs.

**Why this matters:** CAST AI's decoupled VM lifecycle creates orphan risk. If the agent is
removed or crashes, standalone VMs can persist indefinitely. Autopilot tracks every
provisioned VM and includes orphan cleanup.

### Conflict prevention

Autopilot includes a cluster-level CAST AI detector that scans every 5 minutes for CAST AI
agent pods, webhooks, and CRDs. When detected, **all Autopilot policies are forced to passive
mode** regardless of their configured mode, preventing the two systems from fighting over
resource values. The dashboard shows a warning banner and the health endpoint reports the
conflict.

## Cost comparison

### Autopilot total cost

| Component               | Monthly cost                        |
| ----------------------- | ----------------------------------- |
| Self-managed Prometheus | \~\$33 (50Gi PVC + compute)         |
| Autopilot controller    | \~\$15 (small controller node pool) |
| **Total**               | **\~\$48/month per cluster**        |

No per-node fees. No percentage-of-savings fees. Cost is fixed regardless of cluster size.

### CAST AI pricing

CAST AI charges based on savings delivered — typically \~20–30% of realized savings on the
Growth plan, custom for Enterprise. On a cluster spending $5,000/mo where CAST AI saves 40%
($2,000), the fee would be \~$400–600/mo. Autopilot's fixed cost of ~$48/mo delivers the same
optimization.

## When to choose each

**Choose Autopilot when:**

* Running on GKE (EKS support is being built out)
* Data residency matters — metrics must stay in-cluster
* You want full algorithm transparency and customization
* In-place pod resizing (zero-downtime) is important
* You need GCP managed-service monitoring in the same dashboard
* You have predictable traffic patterns that benefit from scheduled scaling
* You want fixed-cost optimization without savings-based fees

**Choose CAST AI when:**

* Running across AWS, Azure, and GCP today
* You prefer a fully managed SaaS solution with no infrastructure to maintain
* Your team doesn't want to operate Prometheus or manage controller upgrades

## Migration path

Autopilot includes a fully automated, zero-downtime migration from CAST AI:

```bash theme={null}
# One command — removes CAST AI, deploys Autopilot, adopts existing nodes
scripts/install-opsai.sh --context=<cluster>

# Validate health
scripts/verify-opsai.sh --context=<cluster>
```

The migration adopts existing CAST AI nodes in-place (no reprovisioning), strips CAST AI
labels and taints, and runs a rebalance to right-size machine types. Typical migration time:
15–30 minutes per cluster with zero workload downtime.
