Saltar a contenido

Matriz de Resiliencia

Matrices de resiliencia de SmallCountry para los cinco escenarios de fallo más probables. Cada matriz muestra, servicio por servicio, qué funciona, qué se degrada y qué deja de funcionar.

Estas matrices son parte del Mecanismo 3 — Degradación Independiente. Su propósito es que quien administra sepa exactamente qué esperar cuando algo falla, sin sorpresas y sin necesidad de descubrirlo en el momento del incidente.


Escenario 1: Sin Internet

La fibra se corta. El router 4G de la finca pierde cobertura. SmallCountry entra en modo isla completo. No hay acceso a servicios externos, pero la red local y todos los servicios internos siguen funcionando.

Sistema Funciona Degradado No funciona Notas
Authentik Autenticación local sin dependencia externa
Caddy Certificados internos. Sin Let's Encrypt
Pi-hole ⚠️ Sin upstream DNS Resuelve .sc local. No resuelve dominios externos
Nextcloud Sincronización local. Sin Collabora Online (externo)
Immich ⚠️ Sin mapas Fotos, búsqueda y álbumes funcionan
Matrix ⚠️ Sin federación Chat local sin conexión a servidores externos
Jitsi Videollamadas en red local
Jellyfin ⚠️ Sin metadata nueva Reproduce lo ya descargado
farmOS ⚠️ Sin mapas satélite Registro de campo completo
Node-RED Todos los flujos locales funcionan
Mosquitto Bus MQTT interno
n8n ⚠️ Webhooks externos caídos Flujos locales funcionan
Grafana ⚠️ Sin plugins externos Dashboards completos
VictoriaMetrics Recolección y consulta local
Uptime Kuma ⚠️ No monitoriza URLs externas Monitorización interna
Geb (Cerbo GX) ⚠️ Sin VRM remoto Monitorización local vía MQTT
ESP32 / sensores Datos se siguen recolectando
Shelly ⚠️ Sin nube Shelly Control local vía MQTT
Vaultwarden ⚠️ Sin sync externo Acceso a contraseñas en caché
Searxng Requiere internet para buscar
FreshRSS No puede obtener feeds
Ollama Modelos en local
Hermes Agent ⚠️ Sin búsqueda web Asistente local completo
WireGuard ⚠️ Sin endpoints remotos Túneles locales activos
NetBird ⚠️ Solo LAN Sin NAT traversal externo
deSEC Necesita API externa
ntfy Push local en red WiFi
Forgejo ⚠️ Sin mirror externo Git local completo
Ansible Playbooks locales
Proxmox Gestión local
ZFS Snapshots y scrubs locales
PBS ⚠️ Sin offsite sync Backup local completo
Restic ⚠️ Sin push a Thoth Snapshot local
Homepage ⚠️ Sin widgets externos Panel con servicios locales
Mautic ⚠️ Sin envío de email CRM local
FacturaScripts ⚠️ Sin Verifactu Facturación local

Resumen: ~90% de servicios funcionales. Solo caen los que requieren consultas a APIs externas (Searxng, FreshRSS, deSEC).


Escenario 2: Sin VPN

Los túneles WireGuard y NetBird entre Chapinería y Garganta la Olla están caídos. Las dos ubicaciones quedan aisladas entre sí. Cada ubicación opera con sus recursos locales.

Sistema Chapinería (Ra + Horus) Garganta (Geb + sensores) Notas
Authentik N/A (no hay en Garganta)
Caddy N/A
Pi-hole ⚠️ Cache DNS local
Nextcloud ❌ Sin acceso remoto Datos solo en Chapinería
Immich
Matrix
Jitsi
Grafana ⚠️ Sin métricas de Geb Los dashboards de energía se vacían
VictoriaMetrics ⚠️ Sin ingesta de Geb
Node-RED ✅ (flujos locales) ✅ (flujos en Geb) Los flujos que cruzan ubicaciones fallan
Mosquitto ✅ (local) ✅ (local) Sin bridge MQTT entre ubicaciones
Geb (Cerbo GX) ❌ Sin telemetría remota ✅ Funciona autónomo MPPT y batería operan sin Ra
ESP32 / sensores ❌ Sin datos remotos ✅ Siguen recolectando Los ESP32 almacenan localmente
Shelly ❌ Sin control remoto ✅ Control local La bomba del sótano (local a Ra) no se ve afectada
Ollama N/A
Hermes Agent N/A
n8n ✅ (flujos locales) Flujos que dependen de Geb fallan
WireGuard ❌ Túneles caídos
NetBird ❌ Malla caída
Forgejo N/A
Proxmox
ZFS
PBS ❌ Sin acceso a Thoth
Restic ✅ (local) Sin push a Thoth

Resumen: Cada ubicación es autónoma en sus funciones esenciales. La pérdida de VPN rompe la capa de monitorización unificada, el control centralizado de la finca y los backups offsite. Los sistemas de supervivencia (Geb, MPPT, batería, Shelly local) siguen operando sin Ra.


Escenario 3: Sin Energía

La red eléctrica falla. La batería LiFePO4 asume la carga. Si el apagón se prolonga, el sistema transita por los perfiles de ahorro y emergencia hasta el apagado ordenado.

Sistema Red + batería >80% Batería 40-80% (Ahorro) Batería <40% (Emergencia) Batería <10% Notas
Ra ⚠️ Solo Tier S+A ❌ Apagado seguro Shutdown ordenado con ZFS sync
Horus ⚠️ GPU apagada ❌ Apagado IA solo CPU en perfil Ahorro
Geb Alimentado por batería directamente
Thoth ⚠️ Depende de su UPS ❌ Si sin energía Backup offsite difiere hasta recuperación
Authentik
Caddy
Pi-hole
Nextcloud ❌ (Tier B)
Immich ❌ (Tier B)
Matrix ❌ (Tier B)
Grafana ❌ (Tier B)
Node-RED ✅ (flujos críticos) Solo flujos de supervivencia
Mosquitto
ESP32 / sensores ⚠️ Solo batería interna ESP32 con batería duran 48-72h
Shelly bomba sótano Prioridad absoluta. Ignora perfiles
Ollama ❌ GPU apagada
Jellyfin ❌ (Tier C)
Forgejo ❌ (Tier B)
Ansible No se despliega en emergencia
ZFS ✅ (sync final) Último snapshot antes del apagado
PBS
Restic
ntfy Notificaciones de batería crítica
WireGuard ⚠️ Solo túneles locales

Resumen: El sistema prioriza la supervivencia física por encima de todo. La bomba del sótano es el último servicio en apagarse. El apagado ordenado garantiza que ZFS sincronice antes de cortar.


Escenario 4: Sin Authentik

El proveedor de identidad cae. Authentik es el punto único de fallo más crítico para la experiencia de usuario. Sin él, ningún servicio con forward-auth es accesible.

Sistema Funciona Degradado No funciona Notas
Authentik Causa raíz del escenario
Caddy ⚠️ forward-auth falla Caddy mismo funciona pero no puede validar sesiones
Pi-hole Sin dependencia de Authentik
Nextcloud Protegido por forward-auth
Immich Protegido por forward-auth
Matrix Protegido por forward-auth
Grafana Protegido por forward-auth
Jitsi ✅ (sin auth) Jitsi permite acceso sin autenticación
farmOS Protegido por forward-auth
Node-RED ⚠️ Acceso directo por IP Accesible sin pasar por Caddy (solo admin)
Mosquitto MQTT no requiere autenticación de usuario
n8n Protegido por forward-auth
Ollama API accesible sin auth en red local
Hermes Agent ⚠️ Sin auth de usuario API local funciona
Forgejo Protegido por OAuth2
Proxmox Autenticación propia (PAM)
ZFS Sin dependencia
PBS Autenticación propia
Ansible Claves SSH, no depende de Authentik
ESP32 / sensores Sin dependencia
Geb Sin dependencia
Shelly Sin dependencia
Uptime Kuma Sin dependencia (acceso directo)
ntfy Sin dependencia
Vaultwarden ⚠️ Acceso local con PIN App móvil cachea el vault
Jellyfin Protegido por forward-auth
FacturaScripts Protegido por forward-auth
Mautic Protegido por forward-auth

Resumen: ~40% de servicios inaccesibles para usuarios finales. Los sistemas críticos de infraestructura (Proxmox, ZFS, Mosquitto, sensores) no dependen de Authentik. La recuperación está documentada en el Protocolo de Mortalidad para Authentik con RTO < 15 minutos.


Escenario 5: Sin MQTT (Mosquitto caído)

El broker Mosquitto cae. El bus de mensajería IoT se silencia. Los sensores no pueden publicar y Node-RED no recibe eventos del mundo físico.

Sistema Funciona Degradado No funciona Notas
Mosquitto Causa raíz
ESP32 / sensores ⚠️ Almacenan localmente ❌ No publican Los ESP32 acumulan datos en buffer local
Node-RED ⚠️ Sin eventos IoT Flujos HTTP y cron siguen funcionando
Geb (Cerbo GX) ⚠️ Modbus TCP activo ❌ Sin MQTT Telemetría accesible vía Modbus
Shelly ⚠️ Control HTTP directo ❌ Sin MQTT Accesibles por API REST
Grafana ⚠️ Sin datos IoT nuevos Dashboards de campo se congelan
VictoriaMetrics ⚠️ Sin ingesta IoT El resto de métricas siguen entrando
InfluxDB ⚠️ Sin ingesta IoT Datos históricos disponibles
Authentik Sin dependencia
Caddy Sin dependencia
Pi-hole Sin dependencia
Nextcloud Sin dependencia
Immich Sin dependencia
Matrix Sin dependencia
n8n Sin dependencia directa
Ollama Sin dependencia
farmOS ⚠️ Sin datos nuevos de sensores Datos manuales se siguen registrando
Home Assistant ⚠️ Sin actualizaciones MQTT Control manual por interfaz
Forgejo Sin dependencia
Proxmox Sin dependencia
ZFS Sin dependencia
PBS Sin dependencia
ntfy ⚠️ Sin alertas de campo Alertas de infraestructura siguen llegando

Resumen: La caída de MQTT es un fallo de capa de campo, no de infraestructura. Los servicios de usuario, identidad y almacenamiento no se ven afectados. La finca pierde telemetría en tiempo real, pero los sensores acumulan datos localmente y los retransmiten al reconectar. La bomba del sótano tiene un camino alternativo vía Shelly HTTP directo. RTO estimado: <5 minutos (reinicio de Mosquitto).