KerndataPlatformScale-plan (tenantregister)

Multi-tenant SaaS-backends

Bedien veel klanten vanuit één cluster, elk beperkt tot zijn eigen sleutels met ACL's, met een tenantregister dat vastlegt wie waar bij hoort.

tenants per server
256
sleutelpatronen voor isolatie
ACL
gebruikers- en quotumrecords
Per tenant
Stap 1 van 5
Een tenant registreren

Een id, een weergavenaam en quotumwaarden, vastgelegd bij de tenant.

Voorbeeldsessieplaying
# Een tenant registreren
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

Een geanimeerde walkthrough met echte HotKV-commando's en voorbeeldantwoorden. Klik op een stap om ernaartoe te springen. Commando's en antwoorden blijven Engels, precies zoals je ze in HotKV typt en ziet.

Het probleem

Eén cache of datastore per klant draaien is duur en lastig te beheren, maar er één delen betekent dat je sterke isolatie tussen klanten nodig hebt en een overzicht van welke gebruikers bij welke klant horen.

Hoe HotKV het aanpakt

ACL-gebruikers met sleutelpatronen beperken de applicatie van elke tenant tot zijn eigen sleutelprefix. Het tenantregister legt vast welke gebruikers bij welke tenant horen, samen met quotumwaarden. Het register is hetzelfde op elke node van een cluster.

Stap voor stap

Wat er gebeurt, commando voor commando

  1. 01

    Een tenant registreren

    Een id, een weergavenaam en quotumwaarden, vastgelegd bij de tenant.

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

    Zijn gebruikers beperken

    De ACL-gebruiker kan alleen sleutels onder acme: aanraken en kan geen gevaarlijke commando's uitvoeren.

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

    De gebruiker aan de tenant koppelen

    Het register legt vast welke gebruikers bij welke tenant horen.

    TENANT.BIND acme acme-app
  4. 04

    Isolatie in actie

    De app van acme leest zijn eigen sleutels. Een read van een sleutel van globex wordt door de ACL geweigerd.

    GET globex:billing:plan
  5. 05

    Het tenantrecord lezen

    De quotumwaarden die voor de tenant zijn vastgelegd. In deze release worden de gebruikstellers niet door clientverkeer gevuld, dus ze lezen 0.

    TENANT.STATS acme
Waar het past

Praktijkscenario's

B2B SaaS

De cache- en sessiedata van elke klant staat onder een eigen prefix op een gedeeld cluster, geïsoleerd via ACL.

Bureaus en resellers

Klantprojecten zijn tenants met eigen gebruikers, zodat toegang per klant kan worden verleend en ingetrokken.

Ingebouwd

Wat je krijgt

Isolatie via sleutelpatronen

ACL-gebruikers beperkt tot een sleutelprefix en een set commando's.

ACL SETUSER

Tenantregister

Tenants met namen, statussen, quotumwaarden en gekoppelde gebruikers, hetzelfde op elke node.

TENANT.CREATETENANT.BIND

Tenantrecords

Naam, status, quotumwaarden en gekoppelde gebruikers van elke tenant.

TENANT.INFOTENANT.STATS

Een tenant buitensluiten

Zet de ACL-gebruikers van de tenant uit.

ACL SETUSER off

Veelgestelde vragen

Worden de quotumwaarden afgedwongen?

Nee. Ze worden vastgelegd en getoond in TENANT.STATS, maar HotKV dwingt ze niet af op commando's, en de gebruikstellers worden in deze release niet door clientverkeer gevuld. Isolatie komt van ACL-regels.

Blokkeert het opschorten van een tenant hem?

TENANT.SUSPEND legt een status vast voor je tooling. Om de gebruikers van een tenant buiten te sluiten, zet je ze uit met ACL SETUSER.

Welke plannen bevatten het?

ACL's werken op elk plan. Het tenantregister maakt deel uit van het Scale-plan.

Verwante use cases

Probeer het op je eigen workload

HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.