Skip to main content

Deployment Reference

ICE is designed for containerized orchestration in high-concurrency environments.

1. Docker Compose

For single-node or development deployments, use the following docker-compose.yaml pattern.

version: '3.8'
services:
ice-kernel:
image: registry.dopove.com/ice/kernel:v2.7.755
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/ice
- REDIS_URL=redis://cache:6379
- ICE_LICENSE_JWT=${ICE_LICENSE_JWT}
deploy:
resources:
limits:
cpus: '4'
memory: 16G
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/v1/health"]
interval: 30s
timeout: 10s
retries: 3

db:
image: ankane/pgvector:latest
environment:
- POSTGRES_DB=ice
- POSTGRES_PASSWORD=pass

cache:
image: redis:7-alpine

2. Kubernetes

For enterprise-scale deployments, use the following manifest patterns.

Deployment Manifest

apiVersion: apps/v1
kind: Deployment
metadata:
name: ice-kernel
spec:
replicas: 3
selector:
matchLabels:
app: ice
template:
metadata:
labels:
app: ice
spec:
containers:
- name: ice
image: registry.dopove.com/ice/kernel:v2.7.755
resources:
limits:
cpu: "4"
memory: "16Gi"
requests:
cpu: "2"
memory: "8Gi"
livenessProbe:
httpGet:
path: /v1/health
port: 8000

ConfigMap (Resource Tuning)

apiVersion: v1
kind: ConfigMap
metadata:
name: ice-config
data:
ICE_MEMORY_CAP_GB: "14"
ICE_MAX_STITCH_CONCURRENCY: "32"

3. Resource Management

  • Liveness Probes: Mandatory for auto-recovery in Kubernetes.
  • Horizontal Pod Autoscaling (HPA): Scale nodes based on CPU utilization or transaction velocity.
  • Volume Mounts: Use high-performance SSD-backed PVs for the ICE_UPLOAD_DIR to minimize ingestion latency.