🛠 CTO Review 📅 12 junio 2026 ⭐ Análisis Premium

NutriTrack: Migración a Microservicios en Kubernetes

Evaluación de arquitectura por 6 preguntas forzadas · equipo de 3 devs · presupuesto propuesto: 180.000 €/año

Veredicto Final
🟡 SHARPEN
La propuesta técnica es válida a largo plazo pero prematura en este momento. El equipo no tiene capacidad para migrar y operar microservicios + K8s a la vez que cierra clientes Enterprise. Corrige 3 bloqueadores antes de comprometerte.
Puntuación por dimensión
Escala
5/10
Riesgo moderado
Deuda técnica
3/10
Crítico
Equipo
2/10
Infradotado
Build vs Buy
5/10
Parcialmente ok
Fiabilidad
3/10
Sin SLOs
Seguridad
2/10
GDPR expuesto
Las 6 preguntas forzadas
Acantilado de Escala
P1

¿Dónde se rompe la arquitectura actual?

Usuarios actuales 4.200
Objetivo 12 meses 50.000
Multiplicador requerido 11.9×
DB queries/min (pico) 2.800
Saturación estimada BD ≈ 28.000 queries/min
Headroom a 50k usuarios ⅔ sin escalar BD
Capacidad actual vs. objetivo23% headroom
⚠ La BD escala a ~10× con conexiones pooling (PgBouncer). Kubernetes no resuelve el bottleneck de escrituras en un PostgreSQL monolítico. Hay que resolver esto ANTES de la migración.
🐌
Inventario Deuda Técnica
P2

Deuda activa y coste semanal estimado

Auth sin tests — CVEs sin parchear
3 gemas Ruby con vulnerabilidades conocidas · producción expuesta
Crítico
12h/sem
Sin staging environment
Tests en producción → riesgo de datos pacientes + clínicas Enterprise
Crítico
18h/sem
Log de auditoría GDPR incompleto
Datos clínicos sin trazabilidad completa → multa AEPD potencial
Alto
8h/sem
CI/CD manual — deploy 45 min
Frena iteración; imposible migración segura sin automatización
Medio
6h/sem
Coste total estimado / semana
44 eng-hours
≈ 8.800 €/mes a rate de 50€/h · fecha bloqueo estimada: oct 2026
🚫 La deuda de seguridad (CVEs + sin staging) debe resolverse antes de cualquier migración. Migrar microservicios encima de esta deuda la multiplica.
👥
Escalado de Equipo
P3

Modelo de contribución y ramp time

Actual
Senior Full-Stack
Productivo
Único responsable de arquitectura
Req abierto
DevOps / K8s
🕐 Ramp: 4 meses
Crítico para migración
Req abierto
Backend Python
🕐 Ramp: 3 meses
AI engine + microservicios
Req abierto
Backend Rails
🕐 Ramp: 2 meses
Monolito + migración
Equipo actual productivo 1 senior + 2 junior
Ramp real (4 nuevos) 3–4 meses
Tiempo hasta plena capacidad oct–nov 2026
¿El plan asume ramp inmediato? Sí — error crítico
Capacidad equipo en mes 3 (feature freeze)55% del plan
⚠ 4 nuevos devs + migración K8s + feature freeze en 3 meses es físicamente imposible. El timeline subestima el coste de onboarding + knowledge transfer del monolito.
💰
Build vs Buy · 3-Year TCO
P4

Análisis de coste total de propiedad

Componente Build TCO/3y Buy TCO/3y Decisión
Motor IA dietética
GPT-4o wrapper vs. Azure OpenAI API
142.000 € 28.000 € BUY
Infraestructura K8s
GKE managed vs. Railway/Render
95.000 € 42.000 € BUY
Autenticación
Custom OAuth vs. Auth0/Clerk
68.000 € 12.000 € BUY
Análisis de laboratorio
Parser HL7/FHIR — moat diferencial
55.000 € 120.000 € BUILD
Notificaciones
Custom vs. Knock/Novu
38.000 € 9.000 € BUY
Ahorro vs. plan actual (100% build)
− 227.000 € en 3 años
Fit estratégico: solo el módulo HL7 es moat real
Build donde hay ventaja competitiva
📈
SLOs · Fiabilidad
P5

Estado actual de service levels

Disponibilidad API
SLO: 99.5%
97.2%
❌ BREACH
Latencia p95
SLO: <200ms
340ms
⚠ BREACH
Error rate
SLO: <0.5%
1.8%
❌ BREACH
Error budget restante
30-day window
−760%
AGOTADO
Error Budget Burn Rate
Presupuesto de errores consumido (30 días)860% del objetivo
🚫 Sin SLOs formales definidos, el equipo está volando a ciegas. El sistema ya incumple los umbrales de cualquier Enterprise. No se puede migrar a microservicios sin resolver la fiabilidad base.
🔒
Seguridad · Superficie de Riesgo
P6

CISO sign-off: ❌ No aprobado

CVEs sin parchear en auth
3 gemas Ruby con vulnerabilidades conocidas (CVSS 7.5–9.1). Con datos clínicos de pacientes, esto es crítico GDPR + Ley de Protección de Datos Sanitarios.
CRÍTICO
📄
Logs de auditoría GDPR incompletos
Art. 30 RGPD exige registro de actividades de tratamiento. Multa potencial AEPD: hasta 20M€ o 4% facturación global. Clínicas Enterprise exigen DPA firmado.
CRÍTICO
🚀
Microservicios amplían superficie de ataque
6 servicios con APIs internas = 6× vectores de ataque lateral. Sin mTLS entre servicios en K8s, un pod comprometido puede pivotar a datos clínicos.
ALTO
🛠
Sin staging = tests en producción con datos reales
Violación directa de Art. 25 RGPD (privacidad por diseño). Riesgo de exposure de datos de pacientes durante desarrollo.
ALTO
Próximos pasos concretos (SHARPEN)
3 acciones bloqueantes antes de comprometerse con la migración
1
Parchear CVEs + crear staging + completar logs GDPR
Sprint de seguridad de 2 semanas. Parchear las 3 gemas vulnerables, levantar un entorno de staging en Railway (coste <200€/mes) y completar el registro de actividades de tratamiento según Art. 30 RGPD. Sin esto, cualquier nueva funcionalidad es un riesgo legal para las clínicas Enterprise.
📅 Deadline: 30 junio 2026 — bloqueante para contratos Enterprise
2
Redefinir el plan: strangler fig en lugar de big bang
En lugar de migrar 6 microservicios en paralelo en 6 meses, adoptar el patrón Strangler Fig: extraer primero el módulo de análisis de laboratorio (el único moat real, Q4) como servicio independiente. Esto da experiencia K8s al equipo con bajo riesgo y valida la arquitectura antes de comprometer el 100% del monolito. Timeline realista: 18 meses.
📅 Deadline: Definir RFC antes de contratar nuevos devs
3
Definir SLOs formales y adoptar Buy en 4 de los 5 componentes
Implementar SLOs con error budget antes del Q3 2026: disponibilidad API 99.5%, latencia p95 <200ms, error rate <0.5%. Simultáneamente, reemplazar motor de IA in-house por Azure OpenAI API (ahorro 114.000€), adoptar Clerk para auth (elimina la deuda técnica + CVEs, ahorro 56.000€), y Knock para notificaciones. El equipo contratado debe incluir un DevOps con experiencia K8s como primer hire, no el último.
📅 Deadline: SLOs en dashboard antes del próximo sprint de migración