Multi-tenant-arkitektur förklarad
Av CodexierPublicerad 5 min läsning
När flera företag använder samma SaaS-produkt måste deras data hållas isär medan koden är densamma. Hur ni gör det är tenancy-modellen, och det är ett av få arkitekturbeslut som är dyra att ändra senare. Den här guiden förklarar de två huvudmodellerna utan jargong, vad var och en kostar i drift, vad var och en låter er lova en säkerhetsmedveten köpare och hur ni håller dörren öppen för att byta.
Vad en kund-instans är
I praktiken är en kund-instans en rad i en organisationstabell, och varje annan post pekar på den. Användare tillhör en instans, och en användare kan tillhöra flera om produkten stödjer byråer eller konsulter. Kund-id:t är nyckeln som varje fråga, varje filsökväg och varje bakgrundsjobb måste bära. Att glömma det en gång är hur en kund ser en annans data, vilket är felet ett SaaS-bolag inte har råd med.
Separata databaser per kund
I den isolerade modellen får varje kund sin egen databas, eller åtminstone sitt eget schema. Inget delas, så en bugg i en fråga kan inte läcka mellan kunder, säkerhetskopian är per kund, och en kund kan placeras i en viss region eller till och med på egen server. Det är vad stora eller reglerade köpare ofta menar när de ber om isolering.
| Aspekt | Delad med radnivåsäkerhet | Databas per kund |
|---|---|---|
| Driftkostnad | En databas, växer med total last | En databas vardera, kostnaden växer med antal kunder |
| Förvaltning | En migrering, ett säkerhetskopieringsjobb | Migreringar och kopior upprepas per kund, kräver automation |
| Isoleringsgaranti | Logisk, upprätthålls av policyer | Fysisk, granskningsbar av kunden |
| Region eller återställning per kund | Svårt | Rakt fram |
| Onboarding av ny kund | Lägg till en rad | Provisionera en databas |
| Passar | De flesta produkter, särskilt tidigt | Storföretag, vård, offentlig sektor, mycket stora kunder |
Avvägningar mellan säkerhet och kostnad
Den delade modellen är inte mindre säker i princip. Radnivåsäkerhet som upprätthålls av databasen är en stark garanti. Den är mindre läsbar för en köpares säkerhetsteam, som inte kan inspektera era policyer och hellre hör att deras data ligger i en egen databas. Den isolerade modellen gör det samtalet till ett ja, till priset av att driva hundratals databaser när kundbasen växer. Kostnad per kund talar därför för delad. Affärsstorlek talar för isolerad. Många bolag hamnar i båda: delad för standardplanen, isolerad som tillval för större kunder.
Datalagring i viss region
Isolerade databaser kan placeras per region. I den delade modellen gäller placeringen hela produkten, så välj en EU-region för alltihop. Se vår genomgång av GDPR för SaaS-bolag.
Prestanda
Delad kräver gränser per kund så att en tung kund inte försämrar för alla. Isolerad kräver kapacitetsplanering per databas i stället.
Säkerhetskopior och återställning
Att återställa en enskild kund är operationen kunder frågar efter när någon raderat i bulk av misstag. Planera för det i den delade modellen med tidsbestämda exporter per kund.
Byta modell senare
Att gå från delad till isolerad är genomförbart om kund-id:t finns på varje tabell och all åtkomst går genom ett datalager: ni kopierar en kunds rader till en ny databas och pekar den kundens anslutning dit. Att gå från isolerad till delad är svårare, eftersom id:n kolliderar och tabeller måste slås ihop. Att gå från en design utan kundbegrepp till någon av dem är en omskrivning. Därför hör beslutet hemma i planeringsfasen, vilket är vad vår MVP-planering täcker innan någon kod skrivs.
När ni inte behöver fundera på det här: ett internt verktyg för ett företag har en kund och behöver inget av det. En konsumentapp där varje användares data är privat har användare, inte kund-instanser, och radnivåsäkerhet per användare gör jobbet. Bygger ni B2B-mjukvara för mer än en kundorganisation är beslutet oundvikligt. Boka ett kostnadsfritt 15-minuterssamtal om ni vill prata igenom det mot er kundlista, eller läs vår översikt över SaaS och MVP först.
Vanliga frågor
Vilken modell ska en MVP börja med?
Delad databas med radnivåsäkerhet, i nästan alla fall. Den är billigast i drift, enklast att förvalta och tillräcklig för de flesta kunder. Villkoret är disciplin: ett kund-id på varje tabell från första migreringen.
Uppfyller en delad databas GDPR?
Ja. GDPR kräver lämpliga tekniska åtgärder, inte fysisk åtskillnad. Radnivåsäkerhet, kryptering och åtkomstloggning uppfyller det för de allra flesta produkter. Vissa kunder kan ändå avtalsmässigt kräva isolering, vilket är en kommersiell fråga.
Kan en kund göra det långsamt för de andra?
I den delade modellen, ja, om en kund kör tunga rapporter eller importer utan gränser. Anropsgränser per kund, tidsgränser för frågor och köer för bakgrundsjobb är standardsvaret, och de behövs tidigt snarare än sent.
Vad kostar isolering per kund?
Varje isolerad databas har en fast månadskostnad även när den står stilla, plus förvaltningskostnaden för att köra migreringar och säkerhetskopior över alla. Det vanliga svaret är att ta betalt för det som en funktion för större kunder i stället för att bära kostnaden själv.
Ska ni bestämma hur kundernas data ska bo?
Berätta vilka era första kunder är och vad de kommer att be om. På femton minuter säger vi vilken modell som passar, och vad ni ska bygga nu så att den andra förblir möjlig.
Boka ett kostnadsfritt 15-minuterssamtal