¿Qué es Clustron?
Clustron es una familia de bloques de construcción .NET componibles para sistemas distribuidos. Este artículo explica los problemas que resuelve cada bloque, cómo los bloques se componen en el almacén clave-valor distribuido insignia, y por dónde empezar según lo que necesites.
Cada bloque resuelve una parte difícil de ejecutar software a través de más de un proceso, máquina o contenedor — formar un clúster, autorizar a quienes llaman, medir lo que está ocurriendo y almacenar estado compartido — y cada uno es un paquete NuGet que incrustas en tu propia aplicación. No hay ningún coordinador externo que operar (ni ZooKeeper, ni etcd, ni Consul), ningún plano de control separado al que vigilar, y nada que te obligue a adoptar toda la pila de una vez.
Puedes tomar un único bloque por sí solo, o componer varios. El producto insignia, Clustron Zaris, es lo que obtienes cuando todos ellos se componen en un solo sistema: un almacén clave-valor distribuido.
El problema que resuelve Clustron
Una aplicación de un solo proceso tiene respuestas fáciles a preguntas difíciles. ¿Quién está al mando? Este proceso. ¿Está vivo mi colaborador? Es el mismo proceso. ¿Dónde están los datos? En memoria, aquí mismo.
En el momento en que tu aplicación se ejecuta como más de una instancia — por escala, por disponibilidad, o porque vive en contenedores — cada una de esas respuestas se convierte en un problema de sistemas distribuidos:
- Coordinación. ¿Qué instancia ejecuta el trabajo singleton, y cómo se enteran las demás cuando falla?
- Membresía y detección de fallos. ¿Quién está en el clúster en este momento, y cómo distingues entre "lento" y "desaparecido"?
- Autorización. Una solicitud llega a cualquier instancia — ¿cómo decide cada una, de forma consistente, si quien llama puede realizar la acción?
- Observabilidad. ¿Cuál es el rendimiento real por nodo y la tasa de errores, de forma lo bastante barata como para medirla en la ruta crítica?
- Estado compartido. ¿Dónde viven los datos para que cada instancia vea una vista consistente, sobreviva a la pérdida de un nodo y escale a medida que añades capacidad?
Estos problemas son famosos por ser fáciles de resolver casi bien y famosos por ser caros de resolver realmente bien. Clustron proporciona cada respuesta como un componente probado e incrustable para que construyas sobre ellos en lugar de reconstruirlos.
Los bloques de construcción
El diagrama muestra cómo Nodus se compone en Zaris, y cómo Nodus también es utilizable por sí solo.
Nodus — núcleo de clustering y mensajería
Nodus le da a un proceso todo lo que necesita para unirse a un clúster entre pares, acordar un líder, intercambiar mensajes tipados punto a punto o en todo el clúster, y observar la salud de sus pares — sin coordinador externo.
Úsalo directamente siempre que un conjunto de procesos deba descubrirse mutuamente, elegir un coordinador y mantenerse de acuerdo a través de los fallos: un planificador solo-líder, un distribuidor de trabajo, una caché que necesita invalidar a sus pares. Nodus es la base sobre la que Zaris forma clúster, y es plenamente utilizable por sí solo.
Consulta la descripción general de Nodus.
Zaris — almacén clave-valor distribuido
Zaris es el insignia: un almacén clave-valor distribuido y en memoria. Forma clúster sobre Nodus y añade por encima almacenamiento particionado, replicación, transacciones, watches, leases, locks distribuidos, contadores, TTL y un plano de control de gestión y consola web.
La seguridad está integrada — TLS mutuo, tokens bearer verificados sin conexión y control de acceso basado en roles (RBAC) que deniega por defecto — de modo que la autorización se responde localmente en cada punto de aplicación sin una llamada por solicitud a un servidor central. La observabilidad también está integrada — métricas operativas de alta frecuencia (tasas de solicitudes, recuentos de operaciones, medidores y estadísticas del runtime de .NET) registradas en un registro de ventana temporal deslizante que es barato en la ruta crítica y exportado por OTLP.
Úsalo cuando necesites una caché distribuida o un almacén de datos consciente de la coordinación que un equipo pueda ejecutar en producción, en proceso para desarrollo y de forma remota a escala.
Consulta la descripción general de Zaris.
Cómo se componen los bloques
Los bloques están en capas, no enredados. Zaris depende de Nodus, y Nodus es útil por sí solo.
| Capa | Bloque | Depende de | ¿Utilizable de forma independiente? |
|---|---|---|---|
| Datos de aplicación | Zaris | Nodus | Es el producto compuesto |
| Coordinación | Nodus | — | Sí |
Esta es una decisión de diseño deliberada: nunca estás obligado a adoptar toda la familia. Si solo necesitas clustering, toma Nodus. Cuando necesites un almacén distribuido que ya tenga la seguridad, las métricas y la coordinación conectadas entre sí y endurecidas, toma Zaris.
Principios de diseño
Todo en Clustron sigue el mismo puñado de principios, de modo que los bloques se sienten como una sola familia.
- Incrustable, no operacional. Cada bloque es una biblioteca a la que haces referencia, no un servidor que despliegas. Zaris añade un servicio de gestión y una consola opcionales, pero las primitivas en sí se ejecutan dentro de tu proceso.
- Sin coordinador externo. Nodus forma y sana un clúster por sí solo. No hay ningún ZooKeeper, etcd o Consul que levantar, asegurar y mantener vivo junto a tu aplicación.
- Prioridad sin conexión donde cuenta. La capa de seguridad verifica tokens y evalúa la política localmente, con una vigilancia de cambios, de modo que la autorización no añade un salto de red a cada solicitud. Las métricas se registran en un registro en proceso, no en un recolector remoto.
- Amplio alcance de .NET. Las abstracciones centrales tienen como objetivo
netstandard2.0, por lo que se ejecutan tanto en .NET Framework 4.8 como en .NET 8+; los adaptadores más ricos (ASP.NET Core, exportadores, hosts) tienen como objetivonet8.0. - Denegar por defecto y fallar en voz alta. La seguridad rechaza lo que no puede probar; el aprovisionamiento lanza una excepción en lugar de degradarse silenciosamente. El resultado seguro es el predeterminado.
Por dónde empezar
Elige tu punto de entrada según el problema que realmente tienes:
- Una caché distribuida o almacén KV — empieza con Zaris y su guía de primeros pasos. Puedes ejecutarlo en proceso en unas pocas líneas y luego pasar a un clúster real.
- Elección de líder, detección de fallos o mensajería entre pares — empieza con Nodus.
- Entender primero cómo encaja todo — lee La familia Clustron.