Bloque 1: Los 12 Principios Inmutables¶
Los principios definen el qué y el por qué de SmallCountry. Son la constitución del sistema: no dependen de herramientas concretas, versiones de software ni tecnologías específicas. Son inmutables por diseño.
1. Fuente única de verdad versionada¶
Todo cambio en el sistema —infraestructura, configuración, documentación, automatizaciones y prompts de IA— nace como un commit en Forgejo. Cualquier divergencia entre el estado declarado y el real detiene los despliegues y fuerza una decisión humana.
2. Reconstruibilidad total desde cero¶
El sistema completo debe poder regenerarse desde un entorno base limpio usando exclusivamente declaraciones automatizadas. La infraestructura es efímera; el código y los datos son lo permanente.
3. Aislamiento del núcleo y perímetro único de acceso¶
Los servicios internos no se exponen a redes externas. Un único punto de entrada controlado (NetBird) verifica la identidad antes de permitir tráfico. Los servicios públicos se sirven desde un enclave externo aislado y unidireccional (Zona Cero).
4. Segmentación estricta de redes con denegación por defecto¶
Los dominios funcionales —gestión, servicios de usuario, IoT— operan en bridges independientes con política Default Deny entre ellos. Una intrusión en un servicio no se propaga.
5. Resiliencia física delegada al hardware¶
Los elementos con consecuencias irreversibles (bomba del pozo, riego) mantienen su capacidad de operación autónoma aunque todo el software falle. La lógica de supervivencia reside en el hardware.
6. Arquitectura por capas funcionales independientes¶
Tres capas separadas: Edge (autonomía local), Tiempo real (Node-RED + MQTT (protocolo de mensajería ligera para IoT)), Lógica (n8n). Ninguna depende de la superior para su función crítica.
7. Soberanía operativa y operación local¶
El sistema no depende de servicios externos. Los datos externos se cachean localmente. La operación normal es en modo local; internet es aprovisionamiento voluntario.
8. Observabilidad integral desde el origen¶
Todo servicio nace instrumentado. Push (MQTT (protocolo de mensajería ligera para IoT)) para el edge, Pull (Prometheus/Alloy) para la infraestructura. OpenTelemetry como tejido transversal del ecosistema.
9. Silencio operativo y notificación por síntomas¶
El sistema solo interrumpe cuando hay que actuar. Las tareas exitosas no notifican. Las alertas se disparan ante síntomas, no ante causas.
10. Asistencia inteligente con supervisión humana obligatoria¶
La IA puede analizar, sugerir y diagnosticar, pero nunca ejecuta acciones sin revisión humana. La última palabra es siempre de la persona.
11. Contención de recursos y degradación planificada¶
Cada LXC (contenedor ligero de Proxmox) tiene límites duros de RAM y CPU. Ante saturación, se degrada de forma ordenada: primero lo accesorio, siempre lo esencial.
12. Conocimiento compartido y autonomía de las personas usuarias¶
El sistema se documenta y versiona. Cada usuario puede realizar sus tareas sin intervención administrativa. Si requiere admin, es deuda de diseño.