Yksi lähdekoodi, satoja vuokralaisia, nolla tietovuotoa – skaalautuvan SaaS-liiketoiminnan perusta.

Olet rakentamassa alustaa, joka palvelee useita asiakkaita yhdestä jaetusta käyttöönotosta. Jokainen asiakas odottaa eristettyä dataa, brändättyjä käyttökokemuksia ja vuokralaiskohtaista laskutusta – mutta sinulla ei ole varaa ylläpitää erillistä infrastruktuuria jokaiselle. Tarvitset jaetun infrastruktuurin taloudellisuuden yhdistettynä omistettujen järjestelmien eristystakeisiin. Tämä on SaaS-arkkitehtuurin perimmäinen ristiriita, ja eristysmallin virheellinen valinta alkuvaiheessa on yksi kalleimmista virheistä alustakehityksessä.
Explore more design patterns and system architectures
Arkkitehtehtemme voivat auttaa suunnittelemaan ja rakentamaan järjestelmiä käyttäen tätä mallia omiin vaatimuksiin.
Ota yhteyttäMonivuokralaisen SaaS-arkkitehtuuri tarjoaa loogisen tai fyysisen erottelun vuokralaisten välillä samalla, kun se jakaa taustalla olevat laskenta-, tallennus- ja verkkoresurssit. Malli sisältää vuokralaisten provisionoinnin, datan eristyksen, ominaisuuksien hallinnan, laskutuksen mittauksen ja white-label-räätälöinnin. Ydinratkaisu on eristysmalli: jaettu tietokanta rivitason tietoturvalla (RLS), skeema vuokralaista kohti tai tietokanta vuokralaista kohti. Jokainen malli tasapainottaa eristyksen lujuuden operatiivisen monimutkaisuuden ja kustannustehokkuuden kanssa.
Järjestelmä on jaettu kolmeen kerrokseen. Vuokralaiskohtainen yhdyskäytävä hoitaa autentikoinnin, vuokralaisen tunnistuksen (aliverkkotunnuksen, JWT-vaateen tai API-avaimen avulla) ja pyyntöjen reitityksen. Sovelluskerros toimii kokonaan vuokralaisen kontekstissa – jokainen kysely, jokainen välimuistin avain, jokainen jonoviesti on rajattu tunnistettuun vuokralaiseen. Datakerros panee täytäntöön eristyksen tallennustasolla rivitason tietoturvakäytäntöjen, vuokralaiskohtaisen yhteyspoolin ja levossa salatun osioinnin avulla.
tenant_id:n mukaan. Skeema per vuokralainen: dynaaminen yhteysreititys yhteyspoolinhallinnalla. Tietokanta per vuokralainen: provisionoinnin automatisointi Terraform/Pulumi-työkaluillaacme.yourapp.com) ovat siistimpiä white-label-tuotteissa ja mahdollistavat vuokralaiskohtaiset TLS-varmenteet. Polkuun perustuva (yourapp.com/acme/) on yksinkertaisempi toteuttaa ja välttää wildcard DNS:n monimutkaisuuden. MW suosittelee aliverkkotunnuspohjaista tunnistusta B2B SaaS-ratkaisuille, joissa on white-label-vaatimuksia, ja polkupohjaista sisäisiin monivuokralaisen työkaluihin.tenant_id:lle. Tämä kuulostaa ilmeiseltä, mutta välimuistin avainten törmäykset eri vuokralaisten välillä ovat yksi yleisimmistä monivuokralaisen virheistä. Vahvistamme tämän välimuistin avaimia luovalla tehtaalla, joka etuliitteistää vuokralaiskontekstin automaattisesti.| Kerros | Teknologiat |
|---|---|
| Laskenta | Node.js (NestJS), Python (FastAPI), kontitoitu ECS Fargatella tai Kubernetesilla |
| Data | PostgreSQL RLS:llä, Redis (vuokralaiskohtainen), S3 (vuokralaisittain osioidut säiliöt) |
| Identiteetti | Clerk, Auth0 tai Okta vuokralaiskohtaisten organisaatioiden kanssa |
| Laskutus | Stripe Connect (markkinapaikkamalli), Stripe Billing (mitatut tilaukset) |
| Havaittavuus | Datadog vuokralaisdimensiotageilla, strukturoitu lokitus tenant_id:llä jokaisessa merkinnässä |
| Käytä kun | Vältä kun |
|---|---|
| Rakennat B2B-alustaa, joka palvelee yli 10 asiakasta jaetusta infrastruktuurista | Jokainen asiakas vaatii täysin oman infrastruktuurin (vaatimustenmukaisuus/sopimusperusteinen) |
| Tarvitset white-label-brändäystä, mukautettuja verkkotunnuksia ja vuokralaiskohtaista ominaisuushallintaa | Sinulla on vähemmän kuin 3 asiakasta – yksinkertaisempi asiakaskohtainen käyttöönotto voi riittää |
| Käyttöön perustuva tai porrastettu hinnoittelu vaatii vuokralaiskohtaista mittausta | Tuote on kuluttajasovellus käyttäjätason tileillä, ei organisaatiotason vuokralaisilla |
| Haluat yhden käyttöönotto-putken, yhden valvontapinon, yhden päivystysvuoron | Vuokralaisilla on pohjimmiltaan erilaiset skeemat tai liiketoimintalogiikka (ei vain konfiguraatio) |
MW käsittelee monivuokralaisuutta poikkileikkaavana huolenaiheena, ei ominaisuutena. Toteutamme vuokralaiskontekstin levityksen middleware-tasolla, jotta sovelluskoodi ei koskaan manuaalisesti suodata vuokralaisen mukaan – sen valvoo kehys. RLS-toteutuksiimme sisältyy automatisoituja testisarjoja, jotka yrittävät vuokralaisten välistä datan käyttöä jokaisella CI-ajolla. Olemme rakentaneet monivuokralaisalustoja, jotka palvelevat yli 500 vuokralaista jaetussa infrastruktuurissa ilman tietovuotoja, ja olemme siirtäneet yksivuokralaisia monoliitteja monivuokralaisarkkitehtuureihin käyttäen strangler fig -mallia.
Mallit eivät toimi itsestään. Putki, joka kouluttaa, validoi, ottaa käyttöön ja valvoo malliasi, on todellinen tuote – malli on vain yksi artefakti.
Optimaalinen valinta riippuu tenanttisi eristysvaatimuksista ja skaalasta. MicrocosmWorks tyypillisesti suosittelee jaettuun tietokantaan ja erilliseen skeemaan perustuvaa lähestymistapaa useimmille B2B SaaS -tuotteille, koska se tasapainottaa kustannustehokkuutta ja tiedon eristystä, vaikkakin toteutamme database-per-tenant -ratkaisuja asiakkaille säännellyillä aloilla, kuten terveydenhuollossa tai rahoitusalalla, joissa tiukka tiedon erottelu on pakollista. Arkkitehtimme arvioivat vaatimustenmukaisuustarpeesi, odotetun tenanttimäärän ja kyselymallit ennen oikean tenancy-mallin suosittelemista.
MicrocosmWorks toteuttaa tenant-tietoisen nopeusrajoituksen (rate limiting), yhteyspoolauksen tenanttikohtaisilla kiintiöillä (per-tenant quotas) ja resurssieristyksen laskentakerroksella (compute layer) estääkseen 'noisy-neighbor' -ongelmat. Käytämme tekniikoita, kuten weighted fair queuing ja tenant-kohtaisia välimuistitasoja (caching tiers), jotta yhden asiakkaan äkillinen piikki ei aiheuta viivettä (latency) muille. Yritystason tenanteille (enterprise-tier tenants) voimme varata omia laskentapartitioita (compute partitions) pitäen jaetun ohjaustason (shared control plane) ennallaan.
MicrocosmWorks tarjoaa arkkitehtuurisuunnittelu- ja toteutuspalveluita konsultointihinnoilla $15–$45/tunti riippuen tarvittavasta monimutkaisuudesta ja tiimin kokemuksesta. Tyypillinen multi-tenant SaaS -arkkitehtuuri projekti — kattaen tietokantasuunnittelun, tenanttien eristyksen, autentikoinnin ja käyttöönotto-putket (deployment pipelines) — kestää 8–16 viikkoa monialaisen tiimin kanssa. Määrittelemme jokaisen projektin kiinteähintaisella löytövaiheella (discovery phase), jotta sinulla on täysi kustannusnäkyvyys ennen rakentamiseen sitoutumista.
MicrocosmWorks rakentaa automatisoituja tenanttien provisiointiputkia (tenant provisioning pipelines), jotka hoitavat skeeman luonnin, DNS-konfiguraation, feature flagien alustuksen ja siementiedon (seed data) käyttöönoton minuuteissa uuden rekisteröitymisen jälkeen. Käytämme infrastructure-as-code -työkaluja, kuten Terraformia tai Pulumiä, yhdistettynä tapahtumalähtöisiin työnkulkuihin (event-driven workflows), jotta jokainen uusi tenantti saa täysin konfiguroidun ympäristön ilman manuaalista puuttumista. Tämä lähestymistapa antaa asiakkaidemme skaalata 10 tenantista 10 000:een muuttamatta onboarding-prosessia.
MicrocosmWorks toteuttaa konfiguraatio-ohjatun mukautuskerroksen (configuration-driven customization layer) käyttäen feature flageja, tenanttikohtaista metadataa ja plugin-arkkitehtuuria, joka mahdollistaa tenanttikohtaisen toiminnan ilman koodihaarautumista (code branching). Suunnittelemme laajennuspisteitä käyttöliittymän teemojen (UI theming), työnkulku-moottorin (workflow engine) ja integraatiokerrosten (integration layers) tasolle, jotta tenanteilla voi olla ainutlaatuinen brändäys, liiketoimintasäännöt ja kolmannen osapuolen yhteydet, jotka kaikki hallitaan konfiguraation avulla. Tämä pitää suunnittelutiimisi ylläpitämässä yhtä koodipohjaa (codebase) samalla kun tuetaan monipuolisia asiakasvaatimuksia.