{
 "tarjetas": [
  {
   "sub": "Fundamentos y decisiones",
   "nivel": "intermedio",
   "clave": false,
   "q": "Microservice chassis: la base común de todo servicio",
   "a": "Plantilla/framework que resuelve lo TRANSVERSAL para que cada servicio solo programe su negocio: config externalizada, health checks, logging/metrics/tracing, seguridad, registro.\nSpring Boot ES un chassis de facto; otros: Micronaut, Quarkus.\nEn la práctica: un starter/template interno de la organización (golden path).\nSin chassis: cada servicio inventa su propio logging y su on-call sufre."
  },
  {
   "sub": "Fundamentos y decisiones",
   "nivel": "avanzado",
   "clave": false,
   "q": "Branch by abstraction: refactor sin big bang",
   "a": "Cuando un cambio ESTRUCTURAL es grande (cambiar una librería clave, dividir un módulo):\n1) Creas una ABSTRACCIÓN (interfaz) sobre el código a cambiar.\n2) El código viejo la implementa; todo el resto del sistema usa la abstracción.\n3) En un branch desarrollas la NUEVA implementación.\n4) La activas por feature flag/config y migras llamada por llamada.\nPermite refactors largos sin congelar el trunk."
  },
  {
   "sub": "Plataforma y despliegue",
   "nivel": "basico",
   "clave": false,
   "q": "¿Qué es DevOps?",
   "a": "Cultura + prácticas que unen DESARROLLO y OPERACIONES: los mismos equipos que construyen despliegan y operan (you build it, you run it).\nPrácticas: CI/CD, infraestructura como código, monitoreo, postmortems sin culpa.\nNo es un puesto ni una herramienta: es acortar el ciclo idea → producción CON calidad.\nSe mide con las métricas DORA (deploy frequency, lead time, MTTR, change failure rate)."
  },
  {
   "sub": "Plataforma y despliegue",
   "nivel": "basico",
   "clave": true,
   "q": "¿Qué es CI/CD?",
   "a": "CI (integración continua): cada push compila + testea automáticamente (todos integran a un trunk varias veces al día) → los conflictos se detectan temprano.\nCD (entrega/despliegue continuo): el artefacto verificado se DESPLIEGA automáticamente (entrega = listo para producción con 1 click; despliegue = va a producción solo).\nPipeline típico: build → unit tests → análisis estático → imagen → deploy staging → smoke → prod.\nEn GCP: Cloud Build + Cloud Deploy."
  },
  {
   "sub": "Plataforma y despliegue",
   "nivel": "basico",
   "clave": true,
   "q": "¿Qué es Kubernetes (K8s) y para qué sirve?",
   "a": "Orquestador de CONTENEDORES: despliega, escala, cura y expone tus contenedores en un clúster de máquinas.\nFunciones clave: autorreparación (pod muerto → reinicia), escalado (HPA), despliegues sin downtime (rolling), balanceo, config/secretos.\nVocabulario: Pod (contenedor+), Deployment (réplicas+updates), Service (IP/DNS estable), Ingress (entrada HTTP).\nEn GCP: GKE (gestionado); si no quieres operar nodos → Autopilot."
  },
  {
   "sub": "Plataforma y despliegue",
   "nivel": "basico",
   "clave": true,
   "q": "Contenedor vs máquina virtual: diferencia clave",
   "a": "VM: virtualiza HARDWARE — cada una lleva SO completo (GBs), arranque en minutos, aislamiento fuerte.\nContenedor: virtualiza solo el SO (comparte kernel del host) — imagen de MBs, arranque en ms, proceso aislado con su filesystem propio (Docker).\nConsecuencia: en una VM caben pocos servicios; con contenedores empaquetas un proceso por contenedor y Kubernetes orquesta cientos.\nEl contenedor es la unidad natural de un microservicio."
  }
 ]
}