Datos básicosPlataformaPlan Scale (registro de tenants)

Backends SaaS multitenant

Sirve a muchos clientes desde un clúster, cada uno limitado a sus propias claves con ACL, con un registro de tenants que anota quién pertenece a dónde.

tenants por servidor
256
patrones de claves para aislar
ACL
usuarios y registros de cuota
Por tenant
Paso 1 de 5
Registra un tenant

Un id, un nombre visible y valores de cuota registrados con el tenant.

Sesión de ejemploplaying
# Registra un tenant
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

Un recorrido animado con comandos reales de HotKV y respuestas de ejemplo. Haz clic en cualquier paso para saltar a él. Los comandos y las respuestas se quedan en inglés, tal como los escribes y los ves en HotKV.

El problema

Ejecutar una caché o un almacén de datos por cliente es caro y engorroso de operar, pero compartir uno implica que necesitas un aislamiento fuerte entre clientes y un registro de qué usuarios pertenecen a qué cliente.

Cómo lo resuelve HotKV

Los usuarios ACL con patrones de claves limitan la aplicación de cada tenant a su propio prefijo de claves. El registro de tenants anota qué usuarios pertenecen a qué tenant, junto con los valores de cuota. El registro es el mismo en todos los nodos de un clúster.

Paso a paso

Qué ocurre, comando a comando

  1. 01

    Registra un tenant

    Un id, un nombre visible y valores de cuota registrados con el tenant.

    TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
  2. 02

    Limita a sus usuarios

    El usuario ACL solo puede tocar claves bajo acme: y no puede ejecutar comandos peligrosos.

    ACL SETUSER acme-app on >s3cret ~acme:* +@all -@dangerous
  3. 03

    Vincula el usuario al tenant

    El registro anota qué usuarios pertenecen a qué tenant.

    TENANT.BIND acme acme-app
  4. 04

    El aislamiento en acción

    La app de acme lee sus propias claves. La ACL rechaza una lectura de la clave de globex.

    GET globex:billing:plan
  5. 05

    Lee el registro del tenant

    Los valores de cuota registrados para el tenant. En esta versión, el tráfico de los clientes no rellena los contadores de uso, así que marcan 0.

    TENANT.STATS acme
Dónde encaja

Escenarios reales

SaaS B2B

Los datos de caché y de sesión de cada cliente viven bajo su propio prefijo en un clúster compartido, aislados por ACL.

Agencias y revendedores

Los proyectos de los clientes son tenants con sus propios usuarios, así el acceso se puede conceder y revocar por cliente.

Integrado

Qué obtienes

Aislamiento por patrón de claves

Usuarios ACL limitados a un prefijo de claves y a un conjunto de comandos.

ACL SETUSER

Registro de tenants

Tenants con nombres, estados, valores de cuota y usuarios vinculados, iguales en todos los nodos.

TENANT.CREATETENANT.BIND

Registros de tenants

El nombre, el estado, los valores de cuota y los usuarios vinculados de cada tenant.

TENANT.INFOTENANT.STATS

Bloquea a un tenant

Desactiva los usuarios ACL del tenant.

ACL SETUSER off

Preguntas frecuentes

¿Se aplican los valores de cuota?

No. Se registran y se muestran en TENANT.STATS, pero HotKV no los aplica a los comandos, y en esta versión el tráfico de los clientes no rellena los contadores de uso. El aislamiento viene de las reglas ACL.

¿Suspender un tenant lo bloquea?

TENANT.SUSPEND registra un estado para tus herramientas. Para dejar fuera a los usuarios de un tenant, desactívalos con ACL SETUSER.

¿Qué planes lo incluyen?

Las ACL funcionan en todos los planes. El registro de tenants forma parte del plan Scale.

Casos de uso relacionados

Pruébalo con tu propia carga de trabajo

HotKV habla el protocolo de Redis, así que puedes apuntar un cliente que ya usas hacia él y ejecutar estos mismos comandos.