Skip to main content

Control Plane / Data Plane

Se adopta un modelo de database-per-tenant (no schema-per-tenant): cada célula recibe su propia base de datos física en la misma instancia de SQL Server 2022, separada de una base de datos de catálogo que actúa como control plane.

Figura 1. Separación entre control plane (catálogo) y data plane (bases tenant).

Por qué así

El enunciado exige que cada base de datos aprovisionada tenga un peso máximo estricto y un ciclo de vida (TTL) propio que pause o elimine la base completa. Esto solo es limpio con aislamiento físico real: un esquema compartido no permite aplicar MAXSIZE por tenant a nivel de motor ni hacer DROP DATABASE de un tenant sin afectar a los demás. Database-per-tenant también acota el radio de explosión de un ataque o bug: un problema en la DB de una célula nunca cruza hacia la de otra.

Rol del catálogo (control plane)

La base de datos de catálogo almacena: células registradas, tenants por célula, connection strings (cifradas), cuotas de almacenamiento, marcas de última actividad para el TTL, y el mapeo de rutas (célula/tenant → base de datos física). Es la única fuente de verdad que el backend consulta para resolver a qué base de datos conectarse en cada petición.

Rol de las bases de datos tenant (data plane)

Cada base de datos tenant contiene exclusivamente los objetos de negocio de esa célula: sus tablas, sus Stored Procedures, sus Views y sus Functions. No tiene visibilidad ni acceso a otras bases de datos tenant ni al catálogo.