{
 "subtemas": [
  "Fundamentos y organización",
  "IAM y seguridad",
  "Redes",
  "Compute y contenedores",
  "Serverless",
  "Almacenamiento",
  "Bases de datos",
  "Mensajería y eventos",
  "Analítica de datos",
  "DevOps y CI/CD",
  "Observabilidad y SRE",
  "gcloud y herramientas"
 ],
 "sub_old": {
  "G01": "Compute y contenedores",
  "G02": "Compute y contenedores",
  "G03": "Almacenamiento",
  "G04": "Mensajería y eventos",
  "G05": "Bases de datos",
  "G06": "IAM y seguridad",
  "G07": "IAM y seguridad",
  "G08": "Redes",
  "G09": "Redes",
  "G10": "DevOps y CI/CD",
  "G11": "IAM y seguridad",
  "G12": "Serverless",
  "G13": "Fundamentos y organización",
  "G14": "Observabilidad y SRE",
  "G15": "Bases de datos",
  "G16": "Redes",
  "G17": "IAM y seguridad",
  "G18": "IAM y seguridad",
  "G19": "Fundamentos y organización",
  "G20": "Fundamentos y organización"
 },
 "tarjetas": [
  {
   "sub": "Fundamentos y organización",
   "q": "Región vs zona vs multi-región: decisiones de arquitectura",
   "a": "Zona: datacenter físico (latencia mínima, riesgo de caída).\nRegión: conjunto de zonas independientes (latencia baja entre zonas <2ms).\nMulti-región: conjunto de regiones — máxima disponibilidad y cercanía global (Cloud Storage multi-region, Spanner).\nDiseño: producción crítica = mínimo 2 zonas; global = multi-región para datos, LB global para tráfico.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "¿Cuántos proyectos y cómo organizarlos? (patrón de referencia)",
   "a": "Por límite de cuota/aislamiento y por ciclo de vida:\nhost proyecto de red (Shared VPC), un proyecto por entorno (dev/stage/prod) por servicio, proyectos de sistema (logging, billing, artifact registry).\nCarpetas por equipo o por producto bajo la Organization.\nVentaja: blast radius pequeño, IAM granular, presupuestos por proyecto.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Cuotas y límites: qué son y cómo gestionarlos",
   "a": "Techo por recurso/servicio por proyecto-región (CPUs, IPs, API QPS) — protege de errores de costo y abuso.\nVer: gcloud compute project-info describe, console IAM > Quotas.\nPedir aumento: console quota request (algunos instantáneos).\nDiseño: no dependas de cuotas altas sin alertas (403 QUOTA_EXCEEDED en producción duele).",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Labels vs tags vs nombres: qué usar para qué",
   "a": "Labels: pares key-value en recursos FACTURABLES — cost attribution (team=api, env=prod); heredables a Billing export.\nNetwork tags: para FIREWALL rules de Compute (target-tags).\nResource name: identificador inmutable del recurso.\nGobernanza: org policy que exija labels obligatorios en instancias nuevas.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Organization policies vs IAM policies",
   "a": "IAM: QUIÉN puede hacer QUÉ (permisos, aditivo).\nOrg policy: QUÉ se permite hacer EN GENERAL (restricciones): solo IPs externas permitidas, solo ubicaciones específicas (gcp.resourceLocations), deshabilitar service account key creation, VMs sin IP pública.\nSe heredan por la jerarquía y aplican a TODOS (incluso owners) — guardrails de compliance.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Cloud Shell y Cloud Editor: qué te dan sin instalar nada",
   "a": "Terminal Linux en el navegador con gcloud/gsutil/kubectl preinstalados y 5GB de home persistente.\nEditor web integrado; permite deploy de ejemplo en minutos.\nÚtil: emergencias desde cualquier equipo, prototipos de APIs, administrar cuando no tienes el SDK local.\nLimitación: no para cargas largas (timeout de sesión).",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "gcloud: configuración, proyecciones y comandos esenciales",
   "a": "gcloud init / config set project ID; config list.\nProyectos: gcloud projects create/list.\nCompute: gcloud compute instances list/create; Run: gcloud run deploy svc --image ... --region ...\nFormato: --format=\"value(name,zone)\" o --format=json; --filter=\"status=RUNNING\".\nComponentes: gcloud components update.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Billing export: cómo saber quién gasta qué",
   "a": "BigQuery export detallado: Billing > Export → tabla de línea por SKUs con labels, proyecto, servicios.\nQueries: costo por label team=api en el mes, tendencia día a día.\nBudgets con alertas (50/90/100%) y notificación a Pub/Sub para acciones automáticas.\nRecommender sugiere rightsizing y committed use.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Committed Use Discounts vs Spot VMs vs Sustained Use",
   "a": "Committed (CUD): 1-3 años por uso estable → hasta 57% off (paga compromiso de vCPU/RAM).\nSpot: hasta 91% off pero PUEDE ser evicted — solo cargas tolerantes a fallos (batch, workers con retry).\nSustained use: descuento automático por uso mensual alto (solo en algunas regiones/máquinas).\nEstrategia: base en CUD, picos en estándar, batch en Spot.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Recommender y right-sizing: cómo bajar la factura sin romper nada",
   "a": "Active Assist Recommender: sugiere instancias sobredimensionadas (p95 de CPU/mem), imágenes huérfanas, IPs sin usar.\nIDLE resources: discos sin attach, IPs estáticas sin usar (¡cobran!)\nAplicar con métricas a mano: cambiar machine type requiere stop/start (o live migration en algunos casos).\nReporte mensual de ahorros = credibilidad con finance.",
   "nivel": "basico",
   "clave": true
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Infraestructura como código: por qué Terraform y no console",
   "a": "Console manual = estado invisible, irreproducible, sin code review, drift.\nTerraform: HCL declarativo, plan antes de apply, state como fuente de verdad, módulos reutilizables, CI/CD de infra.\nGoogle provider: google_compute_instance, google_cloud_run_service...\nRegla de oro: si no está en Terraform, no existe.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Terraform state: por qué importa y buenas prácticas",
   "a": "State guarda el mapeo recursos-reales ↔ código.\nRemoto + lockeado: bucket GCS con versioning (backend \"gcs\") — evita corruption y race conditions en equipo.\nNunca editar a mano; import para recursos existentes (terraformer/import block).\nState contiene secretos → bucket privado + acceso controlado.",
   "nivel": "avanzado",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Cloud Resource Manager y jerarquía por API",
   "a": "APIs: projects.create, folders.create, setIamPolicy — automatiza el bootstrap de entornos.\nPatrón: repo de infraestructura crea proyecto + APIs + budget + SA con Terraform; equipos solo despliegan apps.\nLímites: 100 etiquetas? no — recursos por proyecto varían por servicio; API rate limits a considerar en tooling masivo.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Soporte GCP y roles de emergencia (break-glass)",
   "a": "Planos de soporte: Basic, Standard, Enhanced, Premium (SLA de respuesta).\nBreak-glass: cuenta admin de emergencia con credencial offline sellada, alertada al usarse, auditable (log de admin activity).\nRunbooks con escalamiento y contactos de soporte versionados junto al código.",
   "nivel": "basico",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "SLAs reales de los servicios: qué esperara tu arquitectura",
   "a": "Compute Engine 99.9% (instancia), multi-zona MIG 99.99%; Cloud Storage multi-region 99.95% (SLA de clase); Cloud Run 99.95% regional; Spanner 99.999% multi-región.\nTu SLA compuesto = producto de los SLAs de los componentes del path crítico.\nDiseño por demanda: cada 9 extra cuesta complejidad — no todo necesita 99.99%.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Regiones: cómo elegir entre latencia, costo y residencia de datos",
   "a": "Prioridad: 1) requisitos legales de residencia (PII en país X), 2) latencia a usuarios, 3) costo (regiones caras vs baratas hasta 2x), 4) catálogo de servicios disponible.\nHerramientas: ping/latency de Cloud CDNs, pricing calculator, página de regiones por servicio.\nMulti-región para datos + routing global resuelve mayoría de casos.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Disaster recovery: RTO/RPO y niveles de estrategia GCP",
   "a": "RTO: tiempo para recuperar; RPO: datos máximos a perder.\nNiveles: backup & restore (horas/días), pilot light (BD replicada, cómputo apagado — minutos), warm standby (réplica chica corriendo), hot/active-active (multi-región — segundos).\nHerramientas: snapshots cross-region de Cloud SQL, GCS dual/multi-region, Spanner multi-región, DNS failover.\nProbar el DR (gameday) o no existe.",
   "nivel": "avanzado",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "¿Qué es el Well Architecture Framework de GCP? (5 pilares)",
   "a": "Operational excellence (IaC, observabilidad, automatización), Security (least privilege, encryption, defense in depth), Reliability (HA, DR, quotas), Performance (escalar, caching, regiones), Cost optimization (CUDs, right-size, apagar).\nUsarlo como checklist de revisión de arquitectura antes de lanzar.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Cloud APIs: quotas, rate limits y manejo de errores",
   "a": "Cada API: límites de QPS por proyecto. 429/403 RESOURCE_EXHAUSTED → exponential backoff + retry con jitter (client libs lo hacen por defecto).\nErrores gRPC comunes: UNAVAILABLE (retry transitorio), PERMISSION_DENIED (IAM), FAILED_PRECONDITION (APIs no habilitadas).\nCliente lib vs REST puro: libs manejan auth/retries/ batching.",
   "nivel": "intermedio",
   "clave": false
  },
  {
   "sub": "Fundamentos y organización",
   "q": "Cloud Marketplace y deployments terceros: riesgos",
   "a": "Marketplace: soluciones empaquetadas (DBs partners, software comercial) desplegadas en tu proyecto con billing integrado.\nRiesgos: revisar qué Service Accounts y permisos pide, costos de licencia mensual, soporte del vendor.\nPara POCs acelera; para core business evaluar antes el managed nativo.",
   "nivel": "intermedio",
   "clave": false
  }
 ]
}