Ir al contenido
Moonin
EN

Arquitectura

Este documento describe la arquitectura de alto nivel de Moonin con foco en los componentes visibles hoy en el producto y en el flujo público de despliegue.

Moonin es una plataforma SaaS multi-tenant desplegada sobre Kubernetes. Los clientes instalan el chart moonin-agent dentro de sus clusters. Ese chart hoy incluye el Discovery Agent y el Scaling Rules Agent, ambos autenticados con el mismo secreto de credenciales.

  • observa Deployments, Jobs, CronJobs, HPAs, Namespaces y Services
  • envia metadata de deployment, snapshots de nodos, CronJobs y cloud metadata
  • usa leader election
  • aplica cambios temporales de HPA
  • guarda estado de rollback
  • restaura los valores anteriores al vencer o deshabilitar la regla

Centraliza seguimiento de deployments, clusters, CronJobs, políticas, administración y billing.

Entrega:

  • overview
  • clusters, nodos y namespaces
  • deployments, revisiones e imagenes
  • CronJobs y ejecuciones
  • errores, notificaciones y políticas

Administra:

  • organizaciones y usuarios
  • proyectos y registro de clusters
  • canales de notificación
  • billing

Un worker en segundo plano que evalua las alert policies y las event notification policies, y despacha las notificaciones a los canales configurados con horarios, control de ritmo y silencios.

  • los usuarios se autentican con Google OAuth o con correo y contraseña
  • los agentes se autentican con un token propio del cluster
  • las aplicaciones web hacen proxy de las llamadas al backend del lado del servidor
  • el servidor MCP expone tokens de acceso de solo lectura y con alcance acotado
  • la metadata de organizaciones, proyectos, clusters, revisiones, snapshots de nodos y CronJobs se guarda en una base de datos relacional
  • los extractos de log de los CronJobs que fallan se guardan junto al registro de la ejecución
  • las métricas agregadas y los resumenes se guardan aparte para que los tableros respondan rápido
  • toda la comunicación de los agentes usa HTTPS
  • los tokens de cluster se comparan en tiempo constante
  • el navegador nunca recibe tokens internos de la API
  • los manifiestos sanitizados conservan la identidad de los recursos, como el nombre de un Secret, y ocultan solo los valores sensibles