Volver al blog
Listado de organizaciones en Keycloak: dieciséis clientes conviviendo como espacios separados dentro de un mismo despliegue.

Un despliegue por cliente o un espacio por cliente

ConsultoríaMulti-tenancyArquitectura

Cualquiera que monte un producto para varias empresas se topa con la misma decisión, normalmente tarde: ¿cada cliente tiene su propio despliegue, o todos comparten uno y los separa la aplicación?

Se decide una vez y condiciona el resto: cuánto cuesta cada cliente nuevo, qué pasa cuando uno pide su copia de seguridad, si puedes actualizar a todos a la vez, y qué respondes cuando el más grande exige que sus datos no compartan base con nadie.

Las dos respuestas, y las dos implementadas

No hablo de esto en abstracto. Tengo las dos formas funcionando y con sus posts detrás: Konect opera un despliegue por cliente, y Zetesis Portal separa a los clientes dentro de un único despliegue.

Un despliegue por clienteUn espacio por cliente
AislamientoFísico: su base, sus credenciales, su realmLógico: validado en cada consulta del servidor
Cliente nuevoUn despliegue más que operarUna fila más
ActualizarTantas veces como clientesUna vez
Un cliente pide sus datosEs su base enteraHay que extraerlos filtrando bien
PersonalizarCada uno puede llevar lo suyoTodos llevan lo mismo
Dónde duele si fallasEn el coste de operaciónEn una consulta sin filtrar
La misma pregunta, dos respuestas que se pagan en sitios distintos.

Lo que decide de verdad

La respuesta no sale de la tabla, sale de tres preguntas sobre tu negocio.

La primera es cuántos clientes esperas. Con diez cuentas grandes, un despliegue por cliente es asumible y da un argumento comercial sólido. Con quinientas, es una plataforma de operación que no habías presupuestado.

La segunda es si te van a pedir cosas distintas. Cuando un cliente necesita lógica propia —un procesamiento particular, una integración que nadie más usa—, el despliegue separado deja de ser un coste y pasa a ser lo que hace el trato posible.

Y la tercera, la incómoda: qué pasa si una consulta se te escapa sin filtrar. Con aislamiento lógico, un fallo así enseña datos de un cliente a otro. Es un riesgo perfectamente gestionable —se gestiona validando en el servidor, no en la interfaz— pero hay sectores donde esa conversación no se gana con argumentos técnicos.

El aislamiento lógico se sostiene en el acceso

Si eliges espacio por cliente, la identidad deja de ser un detalle de implementación. Los permisos tienen que vivir en dos niveles —qué eres en la plataforma y qué puedes hacer dentro de cada espacio—, y el segundo no puede venir firmado en el token, porque una misma persona tiene papeles distintos en espacios distintos. Lo desarrollo en el post sobre identidad centralizada.

La regla que hay que poder demostrar en una auditoría es sencilla de decir y fácil de incumplir: el alcance se aplica en el servidor, en el campo, y una petición directa a la API tropieza con lo mismo que el formulario.

Cómo trabajo

Reviso lo que ya tienes antes de proponer nada. Muchas veces la decisión está tomada a medias —aislamiento lógico con un cliente grande al que ya se le prometió su propio despliegue— y el trabajo no es elegir, es ordenar lo que hay sin parar el producto.

De ahí sale un documento corto con la recomendación, lo que cuesta cada camino en operación y el orden en que se migraría. Si hace falta, lo implemento; si no, tu equipo tiene por dónde tirar.

Cuándo no me necesitas

Si tienes un cliente y medio, esta decisión no te corre prisa: casi cualquier cosa funciona y sobrediseñarlo ahora es tiempo que no dedicas a tener el tercer cliente.

Y si ya tienes la respuesta clara y funcionando, no la toques por tenerla más bonita. Estas migraciones se pagan enteras y solo compensan cuando hay un dolor concreto detrás.

Para quién es

Para quien está montando un producto que van a usar varias empresas y aún puede elegir. Y para quien ya eligió, ha crecido, y empieza a notar que la decisión no acompaña —porque cada cliente nuevo cuesta demasiado, o porque el más grande pregunta cosas que no se pueden responder con un aislamiento lógico.

Las dos formas, contadas

Hablemos

Cuéntame cuántos clientes tienes hoy, cuántos esperas y qué te están pidiendo los grandes. Con eso se ve bastante rápido si la separación que llevas aguanta lo que viene.