YACHAQ.DEV/Despliegue
Despliegue

Docker
y clúster

Tres caminos para llevar el Asistente Yachaq a producción: standalone para desarrollo, un clúster Docker con red compartida para staging, y Kubernetes con Helm para alta disponibilidad.

Tres caminos

Elige
tu despliegue

Requisitos comunes

Docker 24+Compose 2.20+Python 3.1210 GB RAM (mín.)
01 · Standalone

Un servicio
a la vez

Cada repositorio trae su propio infra/standalone/docker-compose.yml con todas sus dependencias.

SomaFractalMemory · memoria

Levanta la API, PostgreSQL, Redis, etcd, MinIO y Milvus en un solo comando.

terminal
cd somafractalmemory
# configura infra/standalone/.env:
#   SOMA_VAULT_TOKEN, SOMA_DB_PASSWORD, SOMA_API_TOKEN
docker compose -f infra/standalone/docker-compose.yml \
  --env-file infra/standalone/.env up -d
curl http://localhost:10101/healthz
ServicioImagenPuertoRAM
APIsomafractalmemory-api101011 GB
PostgreSQLpostgres:15104321.5 GB
Redisredis:710379512 MB
Milvusmilvusdb/milvus:v2.3.3105306 GB
etcd / MinIOetcd · miniointerno256 MB

SomaBrain · razonamiento

Despliega el cerebro con su núcleo Rust, Kafka, OPA, Vault y observabilidad.

terminal
cd somabrain
cp infra/standalone/.env.example infra/standalone/.env
docker compose -f infra/standalone/docker-compose.yml \
  --env-file infra/standalone/.env up -d
curl http://localhost:30101/health

SomaAgent01 · orquestación

El orquestador con su propio Vault. Las credenciales del modelo viven en Vault, gestionadas por el servicio.

terminal
cd somaagent01/infra/standalone
cp .env.example .env
# edita .env: VAULT_TOKEN_TTL_HOURS y SA01_DEFAULT_TENANT_ID
vault kv put secret/agent/api_keys groq_api_key='<tu-clave>'
docker compose up --build -d
curl http://localhost:20020/api/health/
02 · Clúster Docker

Una red,
tres servicios

Conecta los tres servicios a la red compartida soma-stack-net. Cada repositorio incluye un override que une su pila a esa red.

Crea la red una vez y aplica el override al levantar cada servicio. Así el orquestador, el cerebro y la memoria se resuelven entre sí por nombre de servicio.

crear la red
docker network create soma-stack-net
unir un servicio a la red
# desde somaagent01/infra/standalone: todo el asistente
./up-cluster.sh
# equivale, por servicio:
docker compose \
  -f infra/standalone/docker-compose.yml \
  -f infra/standalone/docker-compose.shared-network.yml up -d

Standalone

Un host, desarrollo local.

Clúster integrado

Memoria, cerebro y orquestador en una red.

Puertos

Memoria 10xxx · Cerebro 30xxx · Orquestador 20xxx

03 · Kubernetes

Helm
de producción

Cada servicio incluye chart de Helm y manifiestos k8s/. Los secretos de modelo permanecen en Vault, dentro del clúster.

SomaFractalMemory · Helm
helm install somafractalmemory ./helm \
  -f helm/values-prod-ha.yaml \
  --namespace somabrain --create-namespace
SomaAgent01 · manifiestos
kubectl apply -f k8s/somaagent/

Secretos de modelo

Las credenciales de proveedor viven en Vault, gestionadas por el servicio. Los manifiestos del clúster quedan limpios de secretos.

Vault KV v2
vault kv put secret/agent/api_keys groq_api_key='<tu-clave>'
Operación

Producción

Respaldo PostgreSQL

pg_dump
docker compose -f infra/standalone/docker-compose.yml exec -T \
  somafractalmemory-standalone-postgres \
  pg_dump -U "${SOMA_DB_USER:-somafractalmemory}" \
  "${SOMA_DB_NAME:-somafractalmemory}" > backup.sql

Token seguro

openssl
SOMA_API_TOKEN=$(openssl rand -hex 32)

La API es el único endpoint público. etcd y MinIO permanecen internos. Termina TLS con un proxy inverso (nginx).

Verificación

Salud del
clúster

SomaFractalMemory
curl localhost:10101/healthz
# {"kv_store":true,"vector_store":true,"graph_store":true}
curl localhost:10101/readyz
curl localhost:10101/metrics
SomaBrain
curl localhost:30101/health
curl localhost:30101/stats
SomaAgent01
curl localhost:20020/api/health/
curl localhost:20020/api/
Preguntas frecuentes

Despliegue
en detalle

¿Standalone o clúster para producción?

Standalone es ideal para desarrollo y pruebas de integración. Para staging y producción usa el clúster con red compartida o Kubernetes con Helm.

¿Cómo gestiono las credenciales?

Las claves de proveedor viven en Vault (secret/agent/api_keys) y se gestionan desde la administración del agente. Los manifiestos y archivos de entorno quedan limpios de secretos.

¿Qué dimensión de vector configuro?

768 en los tres: SOMA_VECTOR_DIM en la memoria, EMBED_DIM en el cerebro y MEM_EMBED_DIM en el agente. La dimensión compartida mantiene preciso el recuerdo semántico.

¿Puedo escalar un servicio solo?

Sí. Cada servicio escala de forma independiente: la memoria crece con el uso, el orquestador con la carga. En Kubernetes, ajusta réplicas por chart.