Dados essenciaisPlataformaPlano Scale (registro de tenants)

Backends SaaS multi-tenant

Atenda muitos clientes a partir de um cluster, cada um restrito às próprias chaves com ACLs, com um registro de tenants que anota quem pertence a onde.

tenants por servidor
256
padrões de chaves para isolamento
ACL
registros de usuários e cotas
Por tenant
Etapa 1 de 5
Registre um tenant

Um id, um nome de exibição e valores de cota registrados com o tenant.

Sessão de exemploplaying
# Registre um tenant
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

Uma demonstração animada com comandos reais do HotKV e respostas de exemplo. Clique em qualquer etapa para ir direto a ela. Os comandos e as respostas ficam em inglês, exatamente como você os digita e vê no HotKV.

O problema

Manter um cache ou armazenamento de dados por cliente é caro e trabalhoso de operar, mas compartilhar um só significa que você precisa de um isolamento forte entre os clientes e de um registro de quais usuários pertencem a qual cliente.

Como o HotKV resolve

Usuários ACL com padrões de chaves restringem a aplicação de cada tenant ao próprio prefixo de chaves. O registro de tenants anota quais usuários pertencem a qual tenant, junto com os valores de cota. O registro é o mesmo em todos os nós de um cluster.

Passo a passo

O que acontece, comando por comando

  1. 01

    Registre um tenant

    Um id, um nome de exibição e valores de cota registrados com o tenant.

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

    Restrinja os usuários dele

    O usuário ACL só pode tocar nas chaves sob acme: e não pode executar comandos perigosos.

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

    Vincule o usuário ao tenant

    O registro anota quais usuários pertencem a qual tenant.

    TENANT.BIND acme acme-app
  4. 04

    O isolamento em ação

    O app da acme lê as próprias chaves. Uma leitura da chave da globex é recusada pela ACL.

    GET globex:billing:plan
  5. 05

    Leia o registro do tenant

    Os valores de cota registrados para o tenant. Nesta versão, os contadores de uso não são preenchidos pelo tráfego dos clientes, então mostram 0.

    TENANT.STATS acme
Onde se encaixa

Cenários reais

SaaS B2B

Os dados de cache e de sessão de cada cliente ficam sob o próprio prefixo em um cluster compartilhado, isolados por ACL.

Agências e revendedores

Os projetos dos clientes são tenants com os próprios usuários, então o acesso pode ser concedido e revogado por cliente.

Integrado

O que você ganha

Isolamento por padrão de chaves

Usuários ACL limitados a um prefixo de chaves e a um conjunto de comandos.

ACL SETUSER

Registro de tenants

Tenants com nomes, estados, valores de cota e usuários vinculados, iguais em todos os nós.

TENANT.CREATETENANT.BIND

Registros dos tenants

O nome, o estado, os valores de cota e os usuários vinculados de cada tenant.

TENANT.INFOTENANT.STATS

Bloqueie um tenant

Desative os usuários ACL do tenant.

ACL SETUSER off

Perguntas frequentes

Os valores de cota são aplicados?

Não. Eles são registrados e exibidos em TENANT.STATS, mas o HotKV não os aplica aos comandos, e os contadores de uso não são preenchidos pelo tráfego dos clientes nesta versão. O isolamento vem das regras de ACL.

Suspender um tenant o bloqueia?

TENANT.SUSPEND registra um estado para as suas ferramentas. Para bloquear os usuários de um tenant, desative-os com ACL SETUSER.

Quais planos incluem o recurso?

As ACLs funcionam em todos os planos. O registro de tenants faz parte do plano Scale.

Casos de uso relacionados

Experimente com a sua própria carga de trabalho

O HotKV fala o protocolo Redis, então você pode apontar um cliente existente para ele e executar estes mesmos comandos.