# Topología distribuida de FourZ

## Fase actual: Control Center por nodo

En la primera fase, FourZ Control Center se despliega como una instancia independiente en cada servidor. Cada instancia administra únicamente sus recursos locales: IIS, sitios, App Pools, Windows Services, disco, logs, backups y scripts de despliegue.

Esto permite iniciar sin conectividad remota, cuentas de servicio compartidas ni permisos de administración entre servidores.

## Roles

> Decisión vigente: para una instalación distribuida, **cada nodo instala Gitea, Jenkins, JDK y su propio Control Center**, además de los componentes que le correspondan. Los roles listados abajo describen los componentes funcionales de cada nodo; el runbook de instalación define la preparación completa de cada uno.

- **Platform node**: Gitea, Jenkins, JDK para Jenkins y su propio Control Center local.
- **Web node**: IIS, el sitio web FourZ y su propio Control Center local.
- **Services node**: IIS/WCF, Windows Services y su propio Control Center local.
- **Build node**: Git, NuGet, MSBuild, herramientas requeridas por Jenkins y, si se requiere diagnóstico local, su propio Control Center. Puede compartir máquina con Platform en instalaciones pequeñas.

Cada nodo conserva `FourZ.Deployment`, sus configuraciones y scripts locales. Su Control Center usa esas rutas locales y no necesita conectividad administrativa hacia los otros nodos.

## Operación

1. Jenkins compila y publica artefactos una sola vez.
2. Cada nodo recibe el artefacto que le corresponde.
3. El Control Center local ejecuta backup, despliegue y smoke test en ese nodo.
4. Los operadores consultan temporalmente el portal de cada nodo.

## Fase futura: vista central

Cuando la operación esté estable, se agrega una instancia central que consulta los Control Center locales o agentes de nodo mediante HTTPS/WinRM. Esa fase consolida inventario, logs y despliegues, sin reemplazar la capacidad local de contingencia.
