Módulo 5: Landscape de Vector Databases para AI Engineers
Cápsula 06: Cuándo Elegir Cada Opción
Descripción de la cápsula
Después de comparar features, analizar arquitecturas managed vs self-hosted, y calcular costos reales, llega el momento de la verdad: elegir. Pero elegir no es apostar. Es construir un framework de decisión que cualquier miembro de tu equipo pueda seguir y defender con datos.
Esta cápsula te da un sistema de decisión basado en 5 variables concretas: tamaño del equipo, presupuesto, escala de datos, requisitos de latencia y restricciones de compliance. No vas a memorizar qué proveedor es "mejor" — vas a aprender a derivar la respuesta correcta para cualquier combinación de variables.
Al final tendrás un decision tree completo que puedes aplicar a tu proyecto actual y a cualquier decisión futura de infraestructura vectorial.
Las 5 variables de decisión
Toda selección de vector database se reduce a estas cinco variables. El error más común es decidir mirando solo una o dos.
Variable 1: Tamaño y perfil del equipo
Equipo | Perfil | Implicación
------------|----------------------------------|----------------------------------
1-2 devs | Generalistas, sin DevOps | Managed obligatorio
3-5 devs | Mix, posible 1 con infra skills | Managed preferido, self-hosted viable
5-10 devs | Roles definidos, DevOps parcial | Ambas opciones viables
10+ devs | DevOps dedicado, SRE | Self-hosted viable y potencialmente preferido
Regla: Si nadie en tu equipo puede ser despertado a las 3am para arreglar un nodo caído, necesitas managed.
Variable 2: Presupuesto mensual disponible
Budget | Rango | Opciones viables
-------------|----------------|------------------------------------------
$0 | Validación | Free tiers: Pinecone Free, Qdrant Free, ChromaDB local
$0-100/mes | PoC/MVP | Free tiers + ChromaDB en droplet básico
$100-500/mes | Producto early | Qdrant Cloud, Weaviate Cloud, Pinecone Standard
$500-2K/mes | Producción | Cualquier managed, self-hosted en buen server
$2K+/mes | Enterprise | Enterprise tiers, self-hosted cluster, hybrid
Variable 3: Escala actual y proyectada
Vectores | Clasificación | Consideraciones
------------------|---------------|------------------------------------------
< 10K | Tiny | Cualquier opción funciona, incluido numpy
10K - 100K | Small | Free tiers suficientes
100K - 500K | Medium | Necesitas tier pagado o self-hosted con RAM
500K - 5M | Large | Performance y costos importan
5M - 50M | Very Large | Sharding, replicación necesarios
> 50M | Massive | Solo opciones enterprise
Variable 4: Requisitos de latencia
Latencia p95 | Caso de uso típico | Opciones viables
----------------|--------------------------------|---------------------------
< 10ms | Autocompletado, real-time | Pinecone, Qdrant (optimizado)
10-50ms | Búsqueda interactiva | Cualquier managed, self-hosted bien configurado
50-200ms | RAG en chatbot | Todas las opciones
200-1000ms | Procesamiento batch | Todas, incluyendo pgvector
> 1000ms | Análisis offline | No necesitas vector DB especializada
Variable 5: Restricciones de compliance
Nivel | Requisitos | Opciones viables
---------------|--------------------------------|----------------------------------
Ninguno | Sin regulación específica | Cualquier proveedor
Básico | Datos en región específica | Managed con selección de región
Medio | GDPR, datos personales | Managed con DPA o self-hosted en tu infra
Alto | HIPAA, datos médicos | Self-hosted o enterprise con certificación
Crítico | Gobierno, defensa, financiero | Self-hosted en infra auditada exclusivamente
Decision Tree: el framework completo
Sigue este árbol de decisión paso a paso. Cada nodo es una pregunta con respuestas binarias.
Nivel 1: ¿Necesitas una vector DB dedicada?
¿Tienes > 10K vectores Y necesitas búsqueda < 500ms?
├── NO → Usa numpy/FAISS en memoria o pgvector si ya tienes Postgres
│ (No necesitas vector DB dedicada. Revisa Cápsula 07 del Módulo 1)
└── SÍ → Continúa al Nivel 2
Nivel 2: ¿Managed o Self-hosted?
¿Tu equipo tiene DevOps dedicado (>= 1 persona con >50% de su tiempo)?
├── NO → MANAGED (continúa a Nivel 3A)
└── SÍ → ¿Tienes restricciones de compliance que impiden managed?
├── SÍ → SELF-HOSTED (continúa a Nivel 3B)
└── NO → ¿Tu presupuesto permite managed ($100+/mes)?
├── SÍ → MANAGED (continúa a Nivel 3A)
│ (Managed sigue siendo preferido por TCO)
└── NO → SELF-HOSTED (continúa a Nivel 3B)
Nivel 3A: Selección de proveedor managed
¿Cuántos vectores tienes/proyectas a 6 meses?
< 100K vectores:
├── ¿Budget = $0? → Pinecone Free (100K límite) o Qdrant Cloud Free (1GB)
├── ¿Necesitas latencia < 20ms? → Pinecone Standard
└── ¿Budget < $50/mes? → Qdrant Cloud Standard
100K - 1M vectores:
├── ¿Prioridad es latencia? → Pinecone Standard
├── ¿Prioridad es costo? → Qdrant Cloud
└── ¿Necesitas hybrid search nativo? → Weaviate Cloud
1M - 10M vectores:
├── ¿Necesitas auto-scaling? → Pinecone Standard/Enterprise
├── ¿Prioridad es costo? → Qdrant Cloud (escala bien)
└── ¿Necesitas GraphQL + modules? → Weaviate Cloud
> 10M vectores:
├── ¿Budget > $2K/mes? → Pinecone Enterprise o Qdrant Enterprise
└── ¿Budget limitado? → Considera self-hosted (Nivel 3B)
Nivel 3B: Selección de proveedor self-hosted
¿Cuántos vectores tienes/proyectas a 6 meses?
< 500K vectores:
├── ¿Quieres setup mínimo (pip install)? → ChromaDB
├── ¿Necesitas API REST lista para producción? → Qdrant
└── ¿Ya usas Kubernetes? → Weaviate con Helm chart
500K - 5M vectores:
├── ¿Prioridad es performance pura? → Qdrant (Rust-based)
├── ¿Necesitas hybrid search + modules? → Weaviate
└── ¿Equipo ya sabe Go? → Milvus
> 5M vectores:
├── ¿Necesitas sharding horizontal? → Milvus o Qdrant cluster
├── ¿Equipo tiene experiencia con Kubernetes? → Weaviate o Milvus
└── ¿Budget para hardware dedicado? → Qdrant cluster en bare metal
Reglas rápidas por etapa de producto
Etapa 1: Descubrimiento / PoC (0-3 meses)
Objetivo: Validar que la búsqueda vectorial resuelve el problema del usuario.
Criterios de decisión:
- Velocidad de setup > todo lo demás
- $0 de infraestructura ideal
- No importa si escala
- No importa vendor lock-in
Recomendaciones:
| Escenario | Recomendación | Razón |
|---|---|---|
| Solo, aprendiendo | ChromaDB local | pip install chromadb, 30 segundos |
| Equipo pequeño, demo | Pinecone Free | API lista, 100K vectores gratis |
| Datos sensibles, local | ChromaDB local | Todo en tu máquina |
| Ya tienes Postgres | pgvector | Sin nueva dependencia |
Anti-regla: NO dediques más de 1 día a infraestructura en esta etapa.
Etapa 2: Validación de negocio (3-6 meses)
Objetivo: Confirmar product-market fit con usuarios reales.
Criterios de decisión:
- Latencia < 200ms para UX aceptable
- Uptime > 99% (no 99.9% aún)
- Costo predecible < $200/mes
- Soporte básico disponible
Recomendaciones:
| Escenario | Recomendación | Razón |
|---|---|---|
| < 100K vectores, budget mínimo | Qdrant Cloud Free → Standard | Transición suave sin migración |
| 100K-500K vectores | Pinecone Standard | Latencia baja, zero ops |
| Multi-tenant temprano | Weaviate Cloud | Aislamiento nativo por tenant |
| Datos regulados (GDPR) | Qdrant self-hosted en EU | Control total de residencia |
Anti-regla: NO migres de proveedor en esta etapa a menos que tengas un blocker técnico real.
Etapa 3: Escala productiva (6-18 meses)
Objetivo: Sostener crecimiento con SLA definidos.
Criterios de decisión:
- SLA > 99.9% uptime
- Latencia p95 definida y monitoreada
- Plan de incidentes documentado
- Estrategia de escalado definida
- Costos optimizados (no solo "que funcione")
Recomendaciones:
| Escenario | Recomendación | Razón |
|---|---|---|
| 500K-2M, equipo sin DevOps | Pinecone Standard | Auto-scaling, SLA incluido |
| 500K-2M, equipo con DevOps | Qdrant self-hosted | Control + costo optimizado |
| 2M-10M, multi-tenant | Weaviate Cloud o Qdrant Enterprise | Sharding + aislamiento |
| >10M, enterprise | Milvus cluster o Pinecone Enterprise | Diseñados para massive scale |
Etapa 4: Madurez / Optimización (18+ meses)
Objetivo: Optimizar costos sin sacrificar performance.
Criterios de decisión:
- TCO optimizado (revisión trimestral)
- Redundancia geográfica
- Disaster recovery probado
- Métricas de negocio ligadas a performance de búsqueda
Estrategias comunes:
- Migrar de managed a self-hosted SI tienes DevOps y el ahorro justifica la migración
- Negociar enterprise pricing con volumen
- Implementar caching para reducir queries directas
- Separar hot/cold storage (vectores frecuentes en RAM, resto en disco)
Casos de decisión detallados
Caso 1: Startup pre-seed, founder técnico solo
Contexto:
- 1 developer (tú)
- Budget: $0-50/mes
- 20K documentos de knowledge base
- Chatbot RAG para demostrar a inversores
- Timeline: 2 semanas para demo
Análisis por variable:
| Variable | Valor | Implicación |
|---|---|---|
| Equipo | 1 dev, sin DevOps | Managed obligatorio |
| Budget | $0-50/mes | Free tiers |
| Escala | 20K vectores | Tiny, cualquiera funciona |
| Latencia | < 500ms (demo) | No es constraint |
| Compliance | Ninguno | Sin restricción |
Decisión: ChromaDB local para desarrollo → Pinecone Free para demo
Justificación: ChromaDB te deja iterar rápido localmente. Para la demo, Pinecone Free te da una URL estable sin manejar servidores.
Caso 2: Startup seed, equipo de 4 devs
Contexto:
- 4 developers (1 con algo de infra)
- Budget: $200-500/mes para toda la infra
- 150K documentos, creciendo 20%/mes
- Producto SaaS B2B con 30 clientes early
- Latencia < 100ms para búsqueda
Análisis por variable:
| Variable | Valor | Implicación |
|---|---|---|
| Equipo | 4 devs, 1 parcial infra | Managed preferido |
| Budget | $200-500/mes | Standard tiers |
| Escala | 150K → 500K en 6 meses | Medium, necesita tier pagado |
| Latencia | < 100ms p95 | Descarta pgvector |
| Compliance | Básico (datos B2B) | Managed con DPA |
Decisión: Qdrant Cloud Standard
Justificación: Mejor relación costo/performance para 150K-500K vectores. API REST nativa. Latencia < 50ms. ~$50-100/mes. Crece bien hasta 2M+ sin migración.
Alternativa: Pinecone Standard si la prioridad absoluta es zero-ops (pero ~$150/mes más).
Caso 3: Empresa mediana, equipo de producto + DevOps
Contexto:
- 8 developers + 2 DevOps
- Budget: $1,000-3,000/mes para vector search
- 2M documentos, 500 usuarios concurrentes
- Multi-tenant (50 clientes enterprise)
- GDPR obligatorio, datos en EU
- SLA 99.9% uptime contractual
Análisis por variable:
| Variable | Valor | Implicación |
|---|---|---|
| Equipo | 10 personas, DevOps dedicado | Self-hosted viable |
| Budget | $1K-3K/mes | Managed enterprise o self-hosted |
| Escala | 2M vectores, 500 concurrent | Large, necesita replicación |
| Latencia | < 50ms p95 | Requiere índice optimizado |
| Compliance | GDPR, datos EU | Managed EU o self-hosted EU |
Decisión: Qdrant self-hosted en AWS EU (Frankfurt) con cluster de 3 nodos
Justificación:
- GDPR requiere datos en EU → self-hosted da control total
- DevOps dedicado → costo operativo manejable
- 2M vectores en 3 nodos → redundancia + performance
- Costo: ~$540/mes infra + ~$600/mes operación = $1,140/mes TCO
- vs Pinecone Enterprise EU: ~$2,000/mes (ahorro de $860/mes = $10,320/año)
Alternativa: Weaviate Cloud EU si quieres reducir carga operativa y el budget permite $1,500-2,000/mes.
Caso 4: Scale-up con 20M vectores
Contexto:
- 15 developers + 4 DevOps/SRE
- Budget: $5,000-15,000/mes para search infrastructure
- 20M vectores, 2,000 usuarios concurrentes
- Multi-región (US + EU)
- Latencia < 30ms p95
- SOC2 + GDPR
Análisis por variable:
| Variable | Valor | Implicación |
|---|---|---|
| Equipo | 19 personas, SRE team | Self-hosted preferido |
| Budget | $5K-15K/mes | Enterprise o cluster propio |
| Escala | 20M vectores | Necesita sharding horizontal |
| Latencia | < 30ms p95 | Multi-región necesaria |
| Compliance | SOC2 + GDPR | Self-hosted o enterprise certificado |
Decisión: Milvus cluster en Kubernetes (multi-región) o Qdrant cluster distribuido
Justificación:
- 20M vectores requiere sharding horizontal → Milvus o Qdrant cluster
- Multi-región → necesitas replicación cross-region
- SRE team puede manejar la complejidad operativa
- Costo infra: ~$3,000-5,000/mes (vs enterprise managed ~$10,000-15,000/mes)
- Ahorro: $5,000-10,000/mes = $60,000-120,000/año
Checklist de decisión
Antes de comprometerte con un proveedor, verifica cada punto:
Pre-decisión
- Definí volumen actual de vectores
- Proyecté volumen a 6 y 12 meses (3 escenarios)
- Definí requisito de latencia p95 con dato real (no intuición)
- Identifiqué restricciones de compliance (GDPR, HIPAA, residencia)
- Calculé capacidad operativa real del equipo (horas disponibles/mes)
- Calculé TCO completo (no solo precio de servicio) para 2+ opciones
- Probé al menos 2 opciones con un PoC de 1-2 días cada una
Post-decisión
- Documenté la decisión y sus razones (ADR - Architecture Decision Record)
- Definí trigger de reevaluación (fecha o volumen)
- Implementé capa de abstracción para reducir lock-in
- Configuré alertas de costo (billing alerts)
- Establecí proceso de revisión trimestral de TCO
Formato de ADR recomendado
# ADR-XXX: Selección de Vector Database
## Estado: Aceptado
## Contexto
[Descripción del problema y requisitos]
## Decisión
Elegimos [proveedor] en modo [managed/self-hosted].
## Variables evaluadas
| Variable | Valor | Peso |
|----------|-------|------|
| Equipo | ... | ... |
| Budget | ... | ... |
| Escala | ... | ... |
| Latencia | ... | ... |
| Compliance | ... | ... |
## Opciones consideradas
1. [Opción A] - [razón de descarte]
2. [Opción B] - [razón de descarte]
3. [Opción elegida] - [razón de selección]
## Consecuencias
- Positivas: ...
- Negativas: ...
- Riesgos: ...
## Trigger de reevaluación
Reevaluar cuando: [condición específica]
Matriz de decisión rápida
Para decisiones urgentes, usa esta tabla como referencia rápida:
| Tu situación | Recomendación primaria | Alternativa |
|---|---|---|
| Solo, aprendiendo, $0 | ChromaDB local | Pinecone Free |
| MVP, equipo chico, < 100K | Pinecone Free | Qdrant Cloud Free |
| Producto early, < 500K | Qdrant Cloud Standard | Pinecone Standard |
| Producción, < 2M, sin DevOps | Pinecone Standard | Weaviate Cloud |
| Producción, < 2M, con DevOps | Qdrant self-hosted | Weaviate self-hosted |
| Multi-tenant, compliance | Qdrant/Weaviate self-hosted EU | Enterprise managed EU |
| Enterprise, > 5M | Milvus cluster | Pinecone Enterprise |
| Ultra-scale, > 50M | Milvus cluster dedicado | Evaluación custom |
Troubleshooting de selección
1. "No sé si mi escala futura justifica una opción compleja"
Síntoma: Estás entre ChromaDB (simple) y Qdrant (más robusto) y no sabes cuánto vas a crecer.
Diagnóstico: No necesitas predecir el futuro. Necesitas definir un trigger de migración.
Solución:
# Define tu trigger ANTES de elegir
trigger = {
"volume": "Cuando llegue a 500K vectores",
"latency": "Cuando p95 > 200ms consistentemente por 1 semana",
"cost": "Cuando TCO > $500/mes",
"ops": "Cuando dedique > 8h/mes a operación",
"date": "Revisión obligatoria en 6 meses (fecha: YYYY-MM-DD)"
}
# Empieza con la opción simple
# Migra solo cuando un trigger se active
2. "Producto pide SLA estricto y equipo no tiene DevOps"
Síntoma: Tu cliente enterprise exige 99.9% uptime pero tu equipo de 3 devs no tiene experiencia en operaciones.
Solución: Managed es la única opción viable. El costo de managed ($200-800/mes) es mucho menor que el costo de un incidente sin DevOps (horas de debugging × impacto en cliente × daño a relación).
Paso concreto: Elige Pinecone Standard o Qdrant Cloud con su SLA incluido. Documenta el SLA del proveedor y preséntalo a tu cliente.
3. "Compliance cambia frecuentemente"
Síntoma: Hoy no tienes requisitos GDPR pero tu equipo de ventas está cerrando clientes en EU.
Solución:
- Elige un proveedor que ofrezca residencia de datos en múltiples regiones
- Si estás self-hosted, prepara playbook de deploy en nueva región
- Incluye el riesgo de compliance en tu cálculo de TCO
- Revisa cada trimestre con el equipo legal/compliance
4. "Dos opciones tienen puntaje similar en mi matriz"
Síntoma: Qdrant Cloud y Weaviate Cloud quedan empatados después del análisis.
Solución: Cuando dos opciones son equivalentes en papel, los desempates son:
- Prueba técnica: Haz un PoC de 1 día con cada una. La que se sienta mejor en developer experience gana.
- Comunidad: ¿Cuál tiene mejor documentación, más ejemplos, comunidad más activa?
- Trayectoria: ¿Cuál tiene más momentum? (GitHub stars trend, funding reciente, roadmap público)
5. "Mi equipo quiere la opción que yo no recomendaría"
Síntoma: Tú recomiendas managed pero el equipo quiere self-hosted "para aprender".
Solución: Presenta el análisis con números concretos (TCO, horas de operación, riesgo). Si el equipo aún prefiere self-hosted, negocia: "Ok, self-hosted con un trigger de migración a managed si la operación supera 10h/mes en cualquier mes del primer trimestre."
Ejercicios prácticos
Ejercicio 1: Aplica el Decision Tree a tu proyecto
Recorre el Decision Tree completo con los datos de tu proyecto del módulo:
- ¿Necesitas vector DB dedicada? ¿Por qué?
- ¿Managed o self-hosted? ¿Por qué?
- ¿Qué proveedor específico? ¿Por qué?
Solución ejemplo (proyecto de knowledge base interna)
Nivel 1: ¿> 10K vectores Y < 500ms?
- Tengo 50K documentos → Sí, necesito vector DB dedicada.
Nivel 2: ¿DevOps dedicado?
- No, somos 3 devs generalistas → MANAGED
- ¿Compliance que impida managed? → No
- ¿Budget > $100/mes? → Sí, $200/mes disponibles
Nivel 3A: ¿Cuántos vectores?
- 50K ahora, proyección 150K en 6 meses → < 1M
- ¿Prioridad? → Costo (budget limitado)
- → Qdrant Cloud Standard (~$33-50/mes)
Decisión: Qdrant Cloud Standard Trigger de reevaluación: Cuando alcance 500K vectores o TCO > $200/mes
Ejercicio 2: Evalúa un caso ajeno
Tu amigo tiene una startup de e-commerce con búsqueda semántica de productos. Datos:
- Equipo: 2 developers full-stack
- Budget: $100/mes máximo
- Productos: 80K SKUs con descripciones
- Latencia: < 100ms (búsqueda en vivo)
- Compliance: Ninguno
- Crecimiento: 10%/mes
¿Qué le recomiendas?
Solución
Análisis por variable:
| Variable | Valor | Implicación |
|---|---|---|
| Equipo | 2 devs, sin DevOps | Managed obligatorio |
| Budget | $100/mes | Free → Standard tiers |
| Escala | 80K → 200K en 6 meses | Medium |
| Latencia | < 100ms | Descarta pgvector |
| Compliance | Ninguno | Sin restricción |
Recorrido del Decision Tree:
- ¿> 10K Y < 500ms? → Sí (80K, < 100ms)
- ¿DevOps? → No → MANAGED
- ¿80K vectores, budget $100? → Pinecone Free (gratis hasta 100K) o Qdrant Cloud Free
Recomendación: Empezar con Pinecone Free (100K límite). Cuando alcance 100K (2 meses), migrar a Qdrant Cloud Standard ($33/mes, dentro del budget de $100).
Trigger: Migrar cuando llegue a 90K vectores (antes del límite de Pinecone Free).
Ejercicio 3: Escribe un ADR
Documenta tu decisión del Ejercicio 1 en formato ADR completo.
Solución ejemplo
# ADR-001: Selección de Vector Database para Knowledge Base
## Estado: Aceptado (fecha)
## Contexto
Necesitamos búsqueda semántica sobre 50K documentos internos
para un chatbot RAG. El equipo es de 3 devs sin experiencia
en operaciones de infraestructura. Budget: $200/mes.
## Decisión
Elegimos Qdrant Cloud Standard en modo managed.
## Variables evaluadas
| Variable | Valor | Peso |
|----------|-------|------|
| Equipo | 3 devs, sin DevOps | Alto |
| Budget | $200/mes | Alto |
| Escala | 50K → 150K (6mo) | Medio |
| Latencia | < 200ms | Medio |
| Compliance | Ninguno | Bajo |
## Opciones consideradas
1. ChromaDB self-hosted - Descartada: TCO > $1,000/mes por operación
2. Pinecone Standard - Descartada: $150/mes, sobre budget para features que no necesitamos
3. Qdrant Cloud Standard - Elegida: $33-50/mes, performance adecuada, escala hasta 2M
## Consecuencias
- Positivas: Zero-ops, costo bajo, API REST nativa
- Negativas: Lock-in moderado (mitigado con capa de abstracción)
- Riesgos: Pricing puede cambiar
## Trigger de reevaluación
Cuando: volumen > 500K vectores O TCO > $200/mes O latencia p95 > 200ms
Fecha de revisión obligatoria: [6 meses desde hoy]
Ejercicio 4: Compara dos escenarios de crecimiento
Tu producto está en Pinecone Free con 60K vectores. Modela dos futuros:
Escenario A: Crecimiento orgánico (10%/mes) Escenario B: Lanzamiento viral (50%/mes por 3 meses, luego 10%)
Para cada escenario, ¿cuándo necesitas cambiar de tier? ¿Cuánto costará?
Solución
import math
current = 60_000
pinecone_free_limit = 100_000
# Escenario A: 10%/mes
months_a = math.log(pinecone_free_limit / current) / math.log(1.10)
print(f"Escenario A: Límite free en {months_a:.1f} meses") # ~5.4 meses
# Mes 12 con 10%/mes
vectors_a_12 = current * (1.10 ** 12)
print(f"Escenario A, mes 12: {vectors_a_12:,.0f} vectores") # ~188K
# Costo: Pinecone Standard ~$80/mes
# Escenario B: 50%/mes × 3, luego 10%/mes
vectors_b = [current]
for m in range(12):
growth = 1.50 if m < 3 else 1.10
vectors_b.append(vectors_b[-1] * growth)
for i, v in enumerate(vectors_b):
if v > pinecone_free_limit:
print(f"Escenario B: Límite free en mes {i}") # Mes 2
break
print(f"Escenario B, mes 12: {vectors_b[12]:,.0f} vectores") # ~605K
# Costo: Pinecone Standard ~$200/mes o migrar a Qdrant Cloud
# Plan para Escenario B:
# Mes 0-2: Pinecone Free ($0)
# Mes 2-6: Qdrant Cloud Standard ($50/mes, más cost-effective)
# Mes 6+: Evaluar según crecimiento real
| Escenario | Cambio de tier | Mes 6 vectores | Mes 12 vectores | Costo mes 12 |
|---|---|---|---|---|
| A (10%/mes) | Mes 5 | 106K | 188K | ~$80/mes |
| B (viral) | Mes 2 | 341K | 605K | ~$200/mes |
Ejercicio 5: Debate técnico simulado
Tu CTO quiere Pinecone Enterprise ($2,000/mes). Tú crees que Qdrant self-hosted ($500/mes TCO) es suficiente. Prepara 3 argumentos a favor de cada opción con datos.
Solución
A favor de Pinecone Enterprise ($2,000/mes):
- Zero-ops: 0 horas/mes de operación vs ~14h/mes self-hosted. Con senior a $100/hr, ahorras $1,400/mes en operación → costo neto comparable.
- SLA contractual: 99.99% uptime con penalidades. Self-hosted no tiene SLA y cada hora de downtime cuesta $X en revenue perdido.
- Auto-scaling: Black Friday o lanzamiento viral → Pinecone escala automáticamente. Self-hosted requiere provisionar capacidad de antemano.
A favor de Qdrant self-hosted ($500/mes TCO):
- Ahorro anual: ($2,000 - $500) × 12 = $18,000/año. Con ese dinero pagas 180 horas de DevOps senior.
- Zero lock-in: Open-source, puedes migrar a otro proveedor o cluster sin dependencia propietaria. Pinecone es la opción con mayor lock-in del mercado.
- Compliance futuro: Si en 6 meses necesitas HIPAA o datos on-premise, ya estás preparado. Con Pinecone tendrías que migrar (costo: $10,000+).
Resolución sugerida: Empieza con Qdrant Cloud (managed, $250/mes) como compromiso. Si la operación supera expectativas, migra a self-hosted. Si el equipo necesita zero-ops total, evalúa Pinecone Enterprise.
Ejercicio 6: Risk assessment
Identifica los 3 mayores riesgos de tu decisión y cómo los mitigarías.
Solución ejemplo (eligiendo Qdrant Cloud)
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Qdrant sube precios 50%+ | Media | Alto | Capa de abstracción lista + playbook de migración a self-hosted |
| Qdrant Cloud tiene outage > 4h | Baja | Alto | Backup diario de vectores. Playbook de failover a ChromaDB local (modo degradado) |
| Volumen crece 10x en 3 meses | Baja | Medio | Trigger de reevaluación en 200K vectores. Presupuesto aprobado para tier superior |
Costo total de mitigación:
- Capa de abstracción: 8 horas × $80/hr = $640 (una vez)
- Playbook de migración: 4 horas × $80/hr = $320 (una vez)
- Backups: $5/mes (S3)
- Total: ~$1,000 una vez + $5/mes
ROI de mitigación: Si algún riesgo se materializa, ahorro estimado $5,000-15,000 en respuesta de emergencia.
Conexión con proyecto: Decision Tree
Tu proyecto final del módulo es construir un Decision Tree para selección de vector database. Esta cápsula te da el framework completo. En tu entrega:
- Implementa el árbol de decisión con las 5 variables como inputs
- Incluye al menos 4 casos de uso con análisis completo
- Documenta un ADR para tu propio proyecto
- Define triggers de reevaluación para cada recomendación
Resumen
- 5 variables definen toda decisión: equipo, budget, escala, latencia, compliance.
- El Decision Tree te da una ruta reproducible, no una opinión. Cualquiera en tu equipo puede seguirlo.
- Managed es el default para equipos sin DevOps. Self-hosted solo cuando tienes DevOps Y una razón específica (compliance, costo a escala, control).
- La etapa de producto dicta la prioridad: PoC → velocidad, Validación → costo predecible, Producción → SLA + escalabilidad.
- Documenta tu decisión como ADR. "¿Por qué no elegimos las otras opciones?" debe tener respuesta clara.
- Define triggers de reevaluación ANTES de elegir. Nunca te cases con un proveedor.
- Cuando dos opciones empatan, haz un PoC de 1 día con cada una. Developer experience desempata.
Recursos adicionales
- ChromaDB Documentation — Setup local y API reference
- Pinecone Documentation — Pricing, quickstart, best practices
- Qdrant Documentation — API, deployment, cloud
- Weaviate Documentation — Modules, GraphQL, cloud
- Milvus Documentation — Cluster setup, sharding, scaling
- Architecture Decision Records — Formato y ejemplos de ADRs
- CNCF Technology Radar - Databases — Tendencias de adopción
- DB-Engines Ranking - Vector DBMS — Ranking actualizado de popularidad
Tiempo estimado: 30-40 minutos
Siguiente: 07-anti-patrones-seleccion.md