| description | Production readiness checklist for deploying Spice.ai Enterprise. |
|---|---|
| icon | shield-check |
This section is the canonical reference for running Spice.ai Enterprise in production. It covers the architectural, operational, and security decisions required to operate Spice at scale with the SLAs expected from an enterprise data and AI platform.
Use this checklist as the definitive sign-off list before promoting a Spice.ai Enterprise deployment to production.
| Area | Production Target | Reference |
|---|---|---|
| Topology | Multi-replica, multi-AZ; SpicepodCluster for distributed query workloads. |
High Availability |
| Storage | Local NVMe for accelerations; io2 / Premium SSD v2 for shared state. |
Storage |
| Observability | Prometheus scraping, Grafana dashboard, log aggregation, alerts. | Observability |
| Security | mTLS between nodes, OIDC authentication, NetworkPolicy, image pinning. | Security |
| Authentication | OIDC bearer tokens or API keys; identity SQL functions. | Authentication |
| Upgrades | Tiered security updates; rolling, validated upgrades. | Upgrades |
| Backup / DR | Object-store-backed cluster state; Spicepod source of truth in Git. | Storage \u2192 Disaster recovery |
| Support | 24/7 premium support; 99.9%+ SLA. | Spice.ai Enterprise |
- Run at least two scheduler replicas for HA. See High Availability.
- Run at least three executor replicas to tolerate single-node failure during shuffles.
- Use
SpicepodClusterfor distributed query workloads; useSpicepodSetwithreplicas >= 2for stateless query routers. - Spread replicas across availability zones with
topologySpreadConstraintsor pod anti-affinity. - Configure a
PodDisruptionBudgetcovering scheduler and executor pools. - Front the runtime with a load balancer that performs L4 health checks against
/health(port8090).
- Local NVMe-backed nodes (AWS
i4i/m6id/c7gd/r7gd, AzureLsv3/Ddsv5, GCP*-lssd) for accelerations. - Backing PVC class is
io2Block Express (AWS) or Premium SSD v2 (Azure) when shared / replica-attachable persistence is required. - S3-compatible object store provisioned for
SpicepodClustershared state; bucket versioning and lifecycle policies are enabled. - Object store backing
runtime.scheduler.state_locationsupports conditional writes (ETag /If-Match) — required for multi-active correctness. - Every accelerated dataset and view targeted at
SpicepodClusterdeclaresacceleration.partition_by. See Distributed Query → Partitioning. - Acceleration sizing has been validated against expected dataset growth for the next 12 months. See Storage.
- Prometheus scrapes the
9090metrics endpoint via the Spice Helm chartPodMonitoror the operatorServiceMonitor. - Grafana dashboard is imported and connected to the Prometheus data source.
- Logs are forwarded to a centralized aggregator (CloudWatch, Loki, Datadog, Elastic).
- Alerts are configured for query error rate, refresh failures, executor crashloops, and certificate expiry.
- OpenTelemetry traces are exported when distributed tracing is in use.
- Authentication is enabled (OIDC or API keys); no unauthenticated endpoints are exposed externally.
- mTLS is enabled for all
SpicepodClusterdeployments (default;allowInsecureConnectionsmust remain unset). - Container images are pinned to immutable digests (
sha256:...), not floating tags. -
NetworkPolicyrestricts ingress to load balancer / ingress controller IPs and egress to required upstream endpoints. See Security. - Pod runs as the default UID
65534withrunAsNonRoot: trueand areadOnlyRootFilesystem. - Secrets are sourced from a secret store (AWS Secrets Manager, Azure Key Vault, Kubernetes Secret) rather than embedded in
values.yaml. - Operator and runtime images are scanned by the organization's image scanner (Trivy, Snyk, Aqua) before promotion.
- CPU and memory
requests, and a memorylimit, are set on every pod. Setresources.limits.cpuonly where a pod should be prevented from bursting above its request. - The CPU core count has been reviewed, and either the default is appropriate (all cores available on the machine) or it has been set via
runtime.cpu.coresin the Spicepod or theSPICE_CPU_CORESenvironment variable. Setting it above the CPU request allows bursting. See Request CPU and memory. - Resource sizing has been validated under projected concurrent query load. Start at
cpu: 2 / memory: 8Giand scale based onruntime.task_historyand Prometheus metrics. - Crashloop protection is enabled. The operator chart ships
pauseCrashloopingPodsThreshold: 0, which disables it — set a positive integer (the binary's own default is10).
- Upgrades are validated in a non-production environment before promoting to prod.
-
RollingParallelorRollingOrderedupdate strategy is configured on everySpicepodSet. - Spicepod manifests are stored in Git and applied via Argo CD, Flux, or the equivalent GitOps controller.
- A documented rollback procedure exists, including the ability to roll back the operator chart and the runtime image independently.
- An active Spice.ai Enterprise license or AWS Marketplace subscription is attached to the deployment.
- Tenant or workload-level audit logs are forwarded to the organization's SIEM.
- On-call rotation includes the Spice.ai Enterprise premium support contact path.
- SLA targets (99.9%+) are documented in the team's runbook with monitoring tied back to the alert system.
| Workload pattern | Recommended deployment |
|---|---|
| Single-tenant edge / sidecar accelerator | SpicepodSet with replicas: 1, local NVMe. |
| Multi-replica stateless query API | SpicepodSet with replicas >= 2, behind an internal LB. |
| File-based acceleration with persistence (DuckDB, etc.) | SpicepodSet with volume.storage_requests on io2 / Premium SSD v2. |
| Distributed query, multi-AZ, multi-tenant | SpicepodCluster with 2+ schedulers and 3+ executors. |
| Air-gapped / regulated environment | Self-hosted with private registry; pinned digests; mTLS enforced. |
- Walk through the checklist above end to end.
- Read the area-specific guides linked from the At a Glance table.
- Engage Spice.ai Enterprise support for an architecture review prior to go-live.