Multi-tenancy is een softwarearchitectuur waarin één installatie van een applicatie veel klanten bedient, de zogeheten tenants. Alle tenants delen dezelfde code en infrastructuur, maar de gegevens, gebruikers en instellingen van elke tenant zijn strikt gescheiden, zodat geen klant de gegevens van een ander kan zien. Multi-tenancy is de basis van vrijwel elk SaaS-product: de leverancier draait en vernieuwt één platform voor alle klanten in plaats van een aparte installatie per klant.
Datamodellen voor multi-tenancy
- Gedeelde database, gedeelde tabellen: elk record heeft een tenant-ID en elke query filtert daarop. Het meest efficiënt en het makkelijkst te schalen naar veel tenants, maar de scheiding hangt volledig af van de applicatie (of van databasefuncties zoals row-level security in PostgreSQL).
- Gedeelde database, schema per tenant: elke tenant heeft eigen tabellen in dezelfde database. Sterkere scheiding, meer beheer bij veel tenants.
- Database per tenant: de sterkste scheiding, eenvoudige back-up, herstel en datalocatie per tenant, maar hogere kosten en complexere migraties.
- Hybride: kleine klanten delen, grote of gereguleerde klanten krijgen een eigen database of omgeving.
Multi-tenant of single-tenant?
Bij single-tenant krijgt elke klant een eigen installatie. Dat biedt maximale scheiding en ruimte voor maatwerk, maar elke installatie moet apart worden uitgerold, bijgewerkt en bewaakt, en dat wordt duur naarmate het aantal klanten groeit. Multi-tenancy is goedkoper in beheer en houdt alle klanten op dezelfde versie, maar vraagt meer zorg in het ontwerp.
Waar moet u op letten?
- Overal scheiden: niet alleen in de database, maar ook in bestandsopslag, caches, zoekindexen, achtergrondtaken en logs.
- Lawaaierige buren: één zware tenant mag de anderen niet vertragen; limieten en quota per tenant helpen.
- Configuratie per tenant: functies, huisstijl, gebruikersrollen en koppelingen per klant, zonder aparte codeversies.
- Beheer per tenant: de gegevens van één tenant exporteren, herstellen of verwijderen, en monitoring per tenant.
- Beveiliging en compliance: geautomatiseerde tests die aantonen dat tenants niet bij elkaars gegevens kunnen, en duidelijke afspraken over waar gegevens worden opgeslagen.
Multi-tenancy is ook de basis van white-label software, waarbij elke tenant onder een eigen merk verschijnt. Zie onze multi-tenant platformen en SaaS-platform ontwikkeling.
Veelgestelde vragen over multi-tenancy
Wat is een tenant?
Een tenant is één klant van een multi-tenant applicatie, meestal een organisatie met eigen gebruikers, gegevens en instellingen.
Is multi-tenancy veilig?
Ja, als de scheiding vanaf het begin is ontworpen en in elke laag wordt afgedwongen, niet achteraf toegevoegd. De meeste datalekken tussen tenants ontstaan door één query of bestandspad dat het tenantfilter vergeet.
Kan een bestaande single-tenant applicatie multi-tenant worden?
Ja, maar het is een ingrijpende wijziging: datamodellen, query's, bestandsopslag en achtergrondprocessen moeten allemaal tenant-bewust worden. Dat gebeurt meestal stap voor stap, met grondige tests.
Welk multi-tenant model past bij mij?
Voor veel kleine klanten zijn gedeelde tabellen met een tenant-ID meestal het beste. Voor enkele grote of gereguleerde klanten kan een database per tenant de extra kosten waard zijn. Een hybride model geeft de flexibiliteit om beide te bieden.