🐘 Caso 12 - PHP 8.3 con comparación legacy vs conocimiento distribuido#
Implementación operativa del caso 12 para contrastar dependencia de conocimiento tribal contra una postura más resiliente.
⬅️ Caso 12 · ⚖️ Comparativa de los 7 stacks · 🐘 Perfil de PHP · 🧬 Todos los perfiles
🎯 Qué resuelve#
Modela incidentes donde importa quién sabe qué:
incident-legacydepende demasiado de una persona o de un procedimiento no compartido;incident-distributedcombina runbooks, backups y drills;share-knowledgepermite subir madurez del dominio para ver el cambio real.
💻 Interfaz Visual Nativa#
Al abrir la ruta raíz en tu navegador (Accept: text/html), este caso inyecta automáticamente un Dashboard visual interactivo renderizado en Vanilla JS/CSS. Esto permite observar las métricas y efectos simulados en tiempo real sin perder la capacidad de responder a consultas JSON de CLI o Postman.
💼 Por qué importa#
Este caso deja visible que la continuidad operacional también es una propiedad del conocimiento. Un sistema “estable” puede seguir siendo frágil si solo una persona sabe cómo operarlo bajo presión.
🔬 Análisis Técnico de la Implementación (PHP)#
El bus-factor y el conocimiento silencioso son factores operativos abstractos con un impacto tangible en la sintaxis y ejecución de hilos en PHP bajo presión.
- Sintaxis Tribal (
legacy): Representa código que depende de convenciones implícitas y tipado débil. Al intentar mutar estructuras de datos profundas sin validación asertiva (ej:$opaqueData['config']['system'][2]), PHP dispara unErrorExceptionde tipo "Undefined array key" si el payload de entrada es asimétrico. En este modo, el script carece de control de errores granular, provocando una detención inmediata del hilo con HTTP 500, lo que imposibilita la resolución del incidente sin intervención manual del experto original. - Aseguramiento y Tipado Fuerte (
distributed): Implementa el uso dedeclare(strict_types=1)y validadores de esquema defensivos. Utiliza mecanismos del lenguaje como el Null Coalescing Operator (??) yisset()para garantizar que el acceso a propiedades sea determinista:$active = $data['system'][2]['is_active'] ?? false. Este enfoque algorítmico permite que el sistema se degrade a unsafe_fallbacken lugar de colapsar, distribuyendo la capacidad de resolución entre cualquier operador mediante lógica de código que se auto-documenta y protege.
🧱 Servicio#
app-> API PHP 8.3 con dominios operativos, puntajes de runbook, backups, drills y simulación de incidentes.
🚀 Arranque#
docker compose -f compose.yml up -d --buildComo consumir (dos opciones)#
Hub PHP (recomendado, 8100 en compose.root.yml): este caso queda servido en http://localhost:8100/12/... junto a los otros 11 casos.
Modo aislado (8112 en este compose.yml): levanta solo este caso, util cuando la medicion necesita procesar limpio (sin otros casos compartiendo runtime).
🔎 Endpoints#
curl http://localhost:8100/12/
curl http://localhost:8100/12/health
curl "http://localhost:8100/12/incident-legacy?scenario=owner_absent&domain=deployments"
curl "http://localhost:8100/12/incident-distributed?scenario=owner_absent&domain=deployments"
curl "http://localhost:8100/12/share-knowledge?domain=deployments&activity=runbook"
curl http://localhost:8100/12/knowledge/state
curl http://localhost:8100/12/incidents?limit=10
curl http://localhost:8100/12/diagnostics/summary
curl http://localhost:8100/12/metrics
curl http://localhost:8100/12/metrics-prometheus
curl http://localhost:8100/12/reset-lab🧪 Escenarios útiles#
owner_absent-> revela el bus factor real.night_shift-> muestra la diferencia entre memoria tribal y operación preparada.recent_change-> enfatiza contexto compartido después de cambios recientes.tribal_script-> hace visible el riesgo de procedimientos críticos fuera de runbooks.
🧭 Qué observar#
- cómo cambia el
mttr_minentre ambos enfoques; - cuántos bloqueos aparecen cuando falta la persona clave;
- si sube
handoff_qualityal compartir conocimiento; - cómo mejora el dominio después de
runbook,pairingodrill.
⚖️ Nota de honestidad#
No sustituye una organización real, on-call ni gestión formal de conocimiento. Sí reproduce el riesgo operativo importante: depender de memoria tribal versus construir continuidad compartida.