DEPLOYMENT
Production Reference Architecture
Scale, upgrades, recovery, and controller failure handling.
Reference stack¶
| Tier | Components |
|---|---|
| Edge | Ingress (nginx/traefik), TLS, WAF optional |
| Control | 3× aether serve pods, anti-affinity |
| Data | PostgreSQL (state), Redis (sessions) |
| Targets | EKS/GKE/AKS/on-prem via kubeconfig |
| Observability | Prometheus scrape /metrics, structured JSON logs |
Install via helm install aether ./helm/aether with HA values.
Sizing (starting point)¶
| Workloads | API replicas | Postgres |
|---|---|---|
| < 100 | 2 | 2 vCPU / 4Gi |
| 100–500 | 3 | 4 vCPU / 8Gi |
| 500+ | 3+ horizontal | Managed RDS + read replica |
API rate limit: 200 concurrent requests (Tower middleware).
Upgrades¶
- Backup state:
aether backupor Postgres snapshot - Rolling update Helm release
- Verify
/api/healthand dashboard SSE - Run smoke:
aether list, sample migrate dry-run
Controller failure recovery¶
| Failure | Recovery |
|---|---|
| API pod crash | Kubernetes restarts pod; state in Postgres |
| Postgres loss | Restore from backup; replay GitOps |
| Redis loss | Sessions cleared; users re-login |
| Full cluster loss | Restore Postgres + redeploy Helm; workloads re-run from specs |
Workload runtime state lives on target clusters — Aether control plane loss does not delete Pods/VMs.
Backup cadence¶
- State DB: daily automated snapshot
~/.aether(dev): copy off-host weekly- GitOps repo: source of truth for specs
See RUNBOOK.md, BACKUP.md.
Observability¶
| Tier | Components |
|---|---|
| Metrics | Prometheus scrape /api/metrics; set AETHER_PROMETHEUS_URL on API pods |
| Dashboards | Grafana + scripts/import-grafana-dashboard.sh; set AETHER_GRAFANA_URL and AETHER_GRAFANA_DASHBOARD_UID |
| Discovery | eval "$(./scripts/wire-observability-env.sh)" after installing a monitoring stack |
| Cilium | Bootstrap policies via deploy; connectivity ConfigMap aether-cilium-connectivity |
On k3s/kind deploys, AETHER_INSTALL_METRICS_SERVER=auto (default) installs metrics-server when missing. See CILIUM.md.