3.14

View in English

3.14 Fjölleiga og SaaS-arkitektúr

Yfirlit og tilgangur

Fjölleiga (multitenancy) er sú venja að reka eitt tilvik hugbúnaðarins þannig að það þjóni mörgum aðskildum viðskiptavinum í einu og haldi gögnum og stillingum hvers viðskiptavinar rökrænt aðskildum meðan þeir deila sama kóða og oft sömu innviðum. Hver viðskiptavinur er leigjandi. Þessi eina hugmynd er hagfræðivél hugbúnaðar sem þjónustu (SaaS), líkansins þar sem þú selur aðgang að keyrandi forriti frekar en eintak til uppsetningar. Þegar þúsund leigjendur deila sömu uppsetningu plástrarðu einu sinni, stigvaxar eitt kerfi og jaðarkostnaður næsta viðskiptavinar nálgast núll. Þess vegna getur vel smíðuð fjölleiguvara þjónað tveggja manna sprotafyrirtæki og hundrað þúsund sæta fyrirtæki úr sama kóðagrunni, og þess vegna mótar leigulíkanið sem þú velur framlegð þína, öryggisstöðu og rekstrarálag árum saman.

Fyrir stór teymi ná hagsmunirnir dýpra en kostnaður. Fjölleiga setur harða kröfu í miðju arkitektúrsins: leigjandi A má aldrei sjá gögn leigjanda B, aldrei, undir neinum galla, kapphlaupsskilyrði eða rangstillingu. Einn þvert-leigjenda leki getur bundið enda á fyrirtæki. Á sama tíma er allur tilgangur deilingarinnar hagkvæmni, svo sérhver hönnunarákvörðun situr á sviði milli sterkrar einangrunar (öruggara, dýrara) og þéttrar deilingar (ódýrara, áhættusamara). Að fá þetta rétt er munurinn á vöru sem stigvaxar mjúklega og vöru sem annaðhvort setur þig á hausinn í innviðum eða kemur þér í fréttirnar. Þessi kafli byggir á skýjaarkitektúr (kafli 3.11), styðst mikið við gagnaarkitektúr (kafli 3.4) og skýjaöryggi (kafli 4.3) og tengist stigvexti og seiglu (kafli 3.5) og kostnaðarskiptingu (kafli 9.4).

Fyrirtæki og ríkisstjórnir hækka múrinn enn frekar. Fyrirtækjakaupendur semja um samningsbundnar gagnaábyrgðir, krefjast sérstakrar einangrunar fyrir þrep sitt og búast við að þú flytjir þá milli umhverfa án niðurtíma. Ríkisstjórnir bæta við gagnabúsetulögum, flokkunardrifnum aðskilnaði og tíðri kröfu um að hver stofnun sé sinn eigin leigjandi með eigin úttektarmörk. Leiguákvarðanirnar hér eru ekki útfærsluatriði. Þær eru skuldbindingar sem þú gefur hverjum viðskiptavini sem treystir þér fyrir gögnum sínum.

Meginreglur

  • Einangrun er svið, ekki rofi. Silo-, sjóðs- og brúarlíkön skipta hagkvæmni fyrir aðskilnað. Veldu fyrir hvert þrep og hvert tilfang, ekki einu sinni fyrir allt.
  • Leigjendasamhengi er heilagt. Sérhver beiðni, fyrirspurn, skráarlína og bakgrunnsverk verður að bera leigjendaauðkenni og sérhver gagnaaðgangur verður að vera afmarkaður með því.
  • Þvert-leigjenda leki er bilunin sem skiptir mestu. Hannaðu þannig að ein vantandi sía geti ekki afhjúpað gögn annars leigjanda. Vörn í dýpt, ekki ein WHERE-skilyrði.
  • Hávær nágranni er arkitektúrvandi. Án kvóta og sanngirni rýrir einn þungur leigjandi öllum. Skipuleggðu fyrir það áður en það gerist.
  • Stilling á hvern leigjanda stigvaxar, kóði á hvern leigjanda gerir það ekki. Beygðu vöruna með gögnum og flöggum, ekki með klofningum.
  • Leigjendalífsferillinn er vörueiginleiki. Innleiðing, útvegun, útskráning og gagnaútflutningur verða að vera fyrsta flokks, sjálfvirk og úttektarhæf.
  • Þú getur ekki stýrt því sem þú getur ekki rakið. Sýnileiki og kostnaður verða að vera sneidd eftir leigjanda, annars flýgurðu blindandi bæði í áreiðanleika og framlegð.

Ráðleggingar

Veldu leigulíkan fyrir hvert þrep, eftir sviðinu einangrun-á-móti-hagkvæmni

Þrjú líkön festa sviðið. Í silo-líkani (sérstökum) fær hver leigjandi sinn eigin einangraða stakk: aðskilið reikniafl, aðskilinn gagnagrunn, stundum aðskilinn reikning eða net. Einangrun er sterkust og sprengjusvæði galla er einn leigjandi, en þú borgar fyrir aðgerðalausa getu á hvern viðskiptavin og rekur mörg afrit. Í sjóðs-líkani (sameiginlegu, pool) deila allir leigjendur sama reikniafli og gagnagrunni, aðskildir aðeins með rökfræði og leigjendaauðkenni. Hagkvæmni er hæst og jaðarkostnaður leigjanda nærri núlli, en einangrun er nú algjörlega háð því að kóðinn þinn sé réttur. Brúar-líkanið (blendings) blandar hvoru tveggja: sameiginlegt reikniafl með gagnagrunnum á hvern leigjanda, eða sameiginlegur sjóður fyrir litla leigjendur og sérstök silo fyrir stóra eða eftirlitsskylda.

Veldu ekki eitt líkan fyrir alla vöruna. Rétta svarið er yfirleitt brú sem varpast á verðþrep þín. Settu langa halann af litlum leigjendum í hagkvæman sameiginlegan sjóð þar sem hagfræði þeirra gengur upp. Bjóddu sérstaka eða einsleigjenda uppsetningu sem úrvalsþrep fyrir fyrirtækjaviðskiptavini sem munu borga fyrir einangrunina og samningsbundnu ábyrgðirnar. Skrifaðu varpið niður sem arkitektúrákvörðunarskrá (kafli 3.11), því „hverjir leigjendur deila hverju“ er fullyrðing sem öryggis-, sölu- og fjármáladeildir þínar reiða sig allar á.

Skiptu gögnum af ásetningi og gerðu leigjendaafmörkun ómögulega að gleyma

Gögn eru þar sem fjölleiga lifir eða deyr, svo líttu á skiptingarvalið sem kjarna gagnaarkitektúrákvörðun (kafli 3.4). Þrjár aðferðir samsvara leigulíkönunum. Aðskilinn gagnagrunnur á leigjanda gefur sterkasta einangrun, auðvelda afritun og endurheimt á leigjanda og einfaldan gagnaútflutning, á kostnað margra gagnagrunna til að reka og skemaflutninga til að dreifa. Aðskilið skema á leigjanda innan sameiginlegs gagnagrunns er millileið: einn þjónn, rökræn aðskilnaður, enn mikið af hlutum til að flytja. Sameiginlegar töflur lyklaðar á leigjendadálk, þar sem hver lína ber tenant_id, er þéttasta og ódýrasta, og hættulegasta, því nú lekur ein fyrirspurn sem vantar leigjendasíu sína gögnum milli viðskiptavina.

Ef þú deilir töflum skaltu ekki treysta á að hönnuðir muni eftir síunni. Framfylgdu leigjendaafmörkun í lagi sem ekki er hægt að sniðganga: línustigsöryggi gagnagrunns (row-level security) sem festir skyldubundna skilyrðingu við hverja fyrirspurn byggða á leigjanda setunnar, ORM eða gagnaaðgangslag sem sprautar leigjendaskilyrðinu sjálfvirkt inn, eða hvort tveggja. Belti og axlabönd er rétt hér. Þegar leigjendur vaxa verður sneiðing eftir leigjanda eðlileg: settu hópa leigjenda á ólíkar gagnagrunnssneiðar svo ekkert eitt tilvik haldi öllum, sem takmarkar líka sprengjusvæði bilunar einnar sneiðar og leyfir þér að færa stóran leigjanda á eigin sneið án þess að breyta líkaninu.

Berðu leigjendasamhengi alls staðar og verðu gegn þvert-leigjenda leka í dýpt

Leigjendaauðkennið verður að fylgja hverri vinnueiningu. Festu það á jaðrinum, yfirleitt úr auðkenndu setunni eða undirléni, staðfestu það og þræddu það gegnum beiðnasamhengið, hvert niðurstraumsþjónustukall, hverja gagnagrunnssetu, hvert biðraðað verk og hverja skráarlínu og mælikvarða. Hættulegu götin eru ósamstilltu: bakgrunnsvinnumaður sem vinnur verk án þess að endurfesta leigjendasamhengi, skyndiminni lyklað án leigjanda, webhook-meðhöndlari sem treystir leigjendaauðkenni frá kallandanum. Hvert þeirra er leið til að afgreiða gögn eins leigjanda til annars.

Líttu á þvert-leigjenda einangrun sem öryggiseiginleika með vörn í dýpt og vísaðu smáatriðum til kafla 4.3. Beittu lágmarksréttindareglunni svo jafnvel brotinn íhlutur nái aðeins til leigjandans sem hann starfar fyrir. Taktu aldrei við leigjendaauðkenni úr inntaki sem biðlari stýrir fyrir heimildarákvarðanir. Leiddu það af auðkenndu auðkenni. Nafnaskiptu skyndiminni, forskeyti hlutageymslu og leitarvísitölur eftir leigjanda svo lyklaárekstur geti ekki farið yfir mörkin. Prófaðu síðan mörkin af ásetningi: sjálfvirk próf sem fullyrða að skilríki leigjanda A geti ekki lesið skrár leigjanda B og reglulegar rauðliðaæfingar sem reyna að brjótast út úr leigjanda. Leki sem prófasafnið þitt finnur er galli. Leki sem viðskiptavinur finnur er kreppa.

Haltu háværu nágrönnum í skefjum með kvótum, hraðatakmörkunum og sanngirni

Þegar leigjendur deila tilföngum verður toppur eins leigjanda að rekstrarrofi allra. Þetta hávær-nágranna vandamál er ekki jaðartilvik. Það er sjálfgefin hegðun sameiginlegs sjóðs undir álagi. Hannaðu gegn því frá byrjun. Settu kvóta á leigjanda á tilföngin sem skipta máli (beiðnir á sekúndu, samtímis verk, geymslu, fyrirspurnarkostnað) og framfylgdu þeim með hraðatakmörkun á jaðrinum og á dýrum innri mörkum. Kjóstu sanngjarna tímasetningu sem gefur hverjum leigjanda hlut frekar en fyrstur-kemur-fyrstur-fær raðir sem leyfa einum leigjanda að svelta hina.

Láttu framfylgdina samsvara leigulíkani þínu. Í sameiginlegum sjóði eru kvótar og sanngirni helsta vörnin, svo fjárfestu í þeim. Fyrir leigjanda þar sem álag fer raunverulega umfram það sem sanngjörn deiling getur gleypt er svarið oft að stækka hann út úr sjóðnum í brúar- eða silo-uppsetningu, sem er eiginleiki sem þú getur selt frekar en bilun. Tengdu þetta við stigvaxtar- og seigluvinnu þína (kafli 3.5): álagslosun, rofar og bakþrýstingur þurfa öll að vera leigjendameðvituð svo að losa umframálag eins leigjanda verndi hina í stað þess að rýra allt kerfið.

Stilltu leigjendur með gögnum, ekki klofningum á kóðanum þínum

Sérhver viðskiptavinur mun vilja eitthvað örlítið ólíkt: merki sitt, vinnuflæðisreglur sínar, samþættingar sínar, reit sem þú hefur ekki. Stigvaxandi leiðin til að segja já er stilling á hvern leigjanda: eiginleikaflögg, stillingar, réttindi og framlengingarpunktar sem eru gögn, metin í keyrslu og deilt af einum kóðagrunni. Leiðin sem eyðileggur SaaS-rekstur er kóði á hvern leigjanda: útibú eða klofningur eða sérstakt tilvik í kóðaleiðinni fyrir stóran viðskiptavin. Tíu slík og þú hefur ekki lengur vöru, þú hefur tíu vörur í trenchkápu, og hver breyting verður að prófast tíu sinnum.

Dragðu fasta línu. Mótaðu ásana í breytileika sem þú ert tilbúinn að styðja sem fyrsta flokks stillingu og líttu á beiðnir utan þeirra ása sem annaðhvort vegvísi vörunnar eða fast nei. Þegar viðskiptavinur þarf raunverulega sérsníðingu skaltu gefa þeim framlengingarpunkta (webhooks, API, viðbætur, sérsniðna reiti) sem keyra rökfræði þeirra án þess að kvíslast þína. Taktu raunverulega sérsmíðaðar uppsetningar frá fyrir einsleigjenda úrvalsþrepið, þar sem einangrunin er tilgangurinn og hærra verðið dekkar rekstrarkostnaðinn.

Gerðu leigjendalífsferilinn sjálfvirkan, sýnilegan og kostnaðarskiptan

Innleiðing leigjanda ætti að vera sjálfsafgreiðsluflæði og sjálfvirkt: útvegaðu gagnaskiptingu leigjandans, sáðu sjálfgefin gildi, settu réttindi og vertu tilbúinn á sekúndum, ekki miði til rekstrarteymis. Útskráning skiptir jafn miklu máli og er auðveldara að vanrækja. Þegar leigjandi fer verður þú að geta flutt út gögn hans á nothæfu sniði og síðan eytt þeim sannanlega, því samningar og persónuverndarlög munu krefjast hvors tveggja. Hannaðu gagnaútflutning og eyðingu á degi eitt. Að bæta þeim við sameiginlegt töfluskema eftir á er sársaukafullt.

Mældu allt á hvern leigjanda. Merktu skrár, rekjun og mælikvarða með leigjendaauðkenninu svo þú getir svarað „er þetta rekstrarrof allra leigjenda eða eins?“ og „hvaða leigjandi knýr þennan kostnað?“ á sekúndum. Skiptu innviðakostnaði á leigjendur svo þú vitir raunverulega framlegð á viðskiptavin og getir komið auga á leigjandann þar sem notkun gerir hann óarðbæran á núverandi verði (kafli 9.4). Leigjendameðvitaður sýnileiki og kostnaðarskipting breyta fjölleigu úr svörtum kassa í kerfi sem þú getur í raun rekið og verðlagt.

Málamiðlanir: kostir og gallar

LeigulíkanKostirGallar
Silo (sérstakur stakkur á leigjanda)Sterkasta einangrun, minnsta sprengjusvæði, auðveld regluvarsla og útflutningur á leigjanda, einföld hávær-nágranna sagaHæsti kostnaður, aðgerðalaus geta á leigjanda, mörg afrit til að reka og plástra
Sjóður (fullkomlega sameiginlegur)Lægsti jaðarkostnaður, þéttasta pökkun, eitt kerfi til að stigvaxa og uppfæraEinangrun alfarið háð réttleika kóða, versta hávær-nágranna áhætta, erfiðasti útflutningur og eyðing á leigjanda
Brú (blendingur, þrepaskipt)Hagkvæm fyrir litla leigjendur, sérstök einangrun fyrir stóra, varpast á verðlagninguFleiri líkön til að smíða og reka, kynningarleið milli þrepa til að viðhalda
Sameiginlegur gagnagrunnur, sameiginlegt skema (leigjendadálkur)Ódýrasta geymsla, einn flutningur, einfaldasti reksturEin vantandi sía lekur gögnum. Þarfnast línustigsöryggis sem varaleiðar
Sameiginlegur gagnagrunnur, skema á leigjandaRökræn einangrun, einn þjónn, sæmilegur útflutningurMörg skemaobjekt, flutningar dreifast, stigvaxtartakmörk á þjón
Gagnagrunnur á leigjandaSterk gagnaeinangrun, afritun og útflutningur á leigjandaMargir gagnagrunnar, flutningadreifing, hærri kostnaður

Meginspennan er einangrun gegn hagkvæmni og hún liggur í gegnum hverja röð. Þéttari deiling margfaldar framlegð þína og margfaldar áhættu þína í sömu hreyfingu. Sterkari einangrun kaupir öryggi og einfaldleika á raunverulegum kostnaði á leigjanda. Lausnin er ekki að velja annan pólinn heldur að staðsetja hvern leigjanda af ásetningi á sviðinu, yfirleitt eftir þrepi: pakkaðu litlu leigjendunum þétt þar sem hagfræðin krefst þess og áhættan er afmörkuð, einangraðu stóru og eftirlitsskyldu leigjendurna þar sem þeir munu borga fyrir það og sprengjusvæðið verður að vera lítið. Gerðu síðan þétta endann öruggan með framfylgdri leigjendaafmörkun og gerðu einangraða endann ódýran með sjálfvirkni, svo hvorugur pólinn skaði jafn mikið og barnalega útgáfan myndi gera.

Spurningar til að ræða með teyminu

  1. Ef ein leigjendaafmörkunarsía vantaði á morgun, myndi viðskiptavinur sjá gögn annars viðskiptavinar? Þetta er spurningin sem aðgreinir verjanlega fjölleiguvöru frá slysi sem bíður þess að gerast. Heiðarlega prófið er að rekja raunverulega lesleið og spyrja hvað framfylgir leigjendamörkunum: er það ein WHERE-skilyrðing skrifuð af hönnuði, eða er varaleið eins og línustigsöryggi gagnagrunns eða gagnaaðgangslag sem sprautar afmörkuninni inn hvað sem tautar? Komdu með raunverulegar fyrirspurnarleiðir þínar, bakgrunnsverk og skyndiminni, því lekinn felur sig næstum alltaf í ósamstillta horninu sem enginn afmarkaði. Þú ættir líka að koma með niðurstöður prófs sem vísvitandi notar setu leigjanda A til að biðja um skrár leigjanda B og fullyrðir synjun. Ef mörkin hvíla á mannlegri árvekni einni saman hefurðu leyndan leka og lagfæringin (vörn í dýpt) ætti að stökkva efst á verkefnalistann.

  2. Hvaða leigu- og gagnaskiptingarlíkan notar hvert viðskiptavinaþrep í raun og passar það við það sem við seldum þeim? Mörg teymi reka inn í eitt líkan sjálfgefið, uppgötva síðan að verðlagning þeirra og arkitektúr eru ósammála: fyrirtækjaviðskiptavinum var lofað einangrun sem sameiginlegi sjóðurinn veitir ekki, eða litlir viðskiptavinir sitja í dýrum sérstökum uppsetningum sem eyðileggja framlegðina. Varpaðu hverju þrepi á raunverulegt líkan þess (silo, sjóður eða brú. Gagnagrunnur á leigjanda, skema eða sameiginleg tafla) og leggðu það við hlið samningsbundnu gagnaábyrgðanna sem söluteymið þitt gefur. Þar sem þau víkja hefurðu annaðhvort regluvörsluáhættu eða kostnaðarvanda, og hvort tveggja er þess virði að draga fram áður en viðskiptavinur eða endurskoðandi finnur það. Sönnunargögnin til að koma með eru þrepa-á-líkan varpið, kostnaður á leigjanda og raunverulegt orðalag í fyrirtækjasamningum þínum.

  3. Þegar álag stórs leigjanda rýkur upp, hver annar finnur fyrir því og hver er áætlunin? Í sameiginlegum sjóði er svarið oft „allir“, og teymi vita það oft ekki fyrr en atvik gerir það augljóst. Farðu í gegnum hvað gerist þegar stærsti leigjandi þinn keyrir magninnflutning eða fær umferðarbylgju: halda kvótar á leigjanda og sanngjörn tímasetning því í skefjum, verndar álagslosun nágrannana eða rýrnar allt kerfið saman? Komdu með álagsgögn og söguna af síðasta hávær-nágranna atviki þínu, því leigjandinn sem skaðar þig er venjulega einn sem þú getur nefnt. Svarið ætti að móta bæði hraðatakmörkunarfjárfestingu þína og þrepastefnu, því hreinasta lagfæringin fyrir leigjanda sem vex út fyrir sanngjarna deilingu er að færa hann upp í brúar- eða sérstaka uppsetningu sem þú getur rukkað fyrir.

  4. Þegar leigjandi skráir sig út á morgun, getum við rétt honum hreinan útflutning og sannað að við eyddum hverju spori, eða værum við í óðagoti? Útskráning er hluti leigjendalífsferilsins sem teymi vanrækja þar til útgönguákvæði samnings eða persónuverndarbeiðni neyðir málið fram, og þá gerir sameiginlega skemað útdrátt og eyðingu sársaukafull. Fyrir stórt teymi safnast áhættan, því gögn leigjanda eru dreifð yfir aðalgagnagrunninn, skyndiminni, hlutageymslu, leitarvísitölur, afrit og greiningarleiðslur, og hvert verður að flytja út á nothæfu sniði og síðan hreinsa sannanlega. Sjónarmiðin sem togast á eru raunveruleg: þéttar sameiginlegar töflur sem gefa þér ódýra geymslu eru einmitt þær sem gera útdrátt og eyðingu á leigjanda erfiðasta, svo hagkvæmnina sem þú keyptir á geymslulaginu gætir þú borgað til baka við útgönguna. Komdu með lifandi gegnumgang útskráningar á raunverulegum leigjanda, lista yfir hverja geymslu sem heldur leigjendagögnum og sönnunargögnin sem þú myndir sýna um að eyðing hafi í raun gerst. Fyrir fyrirtækja- og opinbera leigjendur verður útflutningur að vera vottaður og eyðing sannanleg til að fullnægja skjalavörslu- og persónuverndarlögum, svo líttu á vantandi eyðingarleið sem regluvörslugalla til að loka núna, ekki eiginleika til að bæta við þegar viðskiptavinur fer.

  5. Hve mörg einnota sérstök tilvik fyrir einstaka viðskiptavini búa nú þegar í kóðaleið okkar og hvar er línan sem við neitum að fara yfir? Kóðaklofningar á leigjanda eru hljóðláta leiðin sem SaaS-rekstur hættir að vera ein vara og verður margar vörur undir einu nafni, þar sem sérhver breyting verður að prófast gegn hverju sérstöku tilviki og hraði rýrnar eftir því sem þú bætir við viðskiptavinum. Spennan er að stór viðskiptavinur með raunverulega þörf er erfitt að hafna, og kvísl í kóðaleiðinni finnst hraðari en að smíða stillingarflöt, svo sérstöku tilvikin safnast upp eina eðlilega undantekningu í einu. Komdu með heiðarlega skrá: leitaðu í kóðagrunninn eftir viðskiptavinanöfnum og þrepasértækum kvíslum, teldu þær og metaðu aukapróf- og rýnikostnaðinn sem hver leggur á ótengda breytingu. Umræðan ætti að draga fasta línu milli breytileika sem þú mótar sem fyrsta flokks stillingu (flögg, réttindi, framlengingarpunkta) og raunverulegrar sérsmíði sem þú tekur frá fyrir einsleigjenda úrvalsþrep þar sem hærra verðið dekkar rekstrarkostnaðinn. Fyrir fyrirtækjakaupendur sem krefjast djúprar sérsníðingar er varanlega svarið framlengingarpunktar sem keyra rökfræði þeirra án þess að kvíslast þína, svo stjórnarhættir og úttekt haldist viðráðanleg yfir flotann.

  6. Getum við sagt, á hvern leigjanda, bæði hvað atvik kostar hvern og hvaða viðskiptavinir eru óarðbærir á núverandi verði? Fjölleiga verður svartur kassi um leið og skrár, rekjun, mælikvarðar og innviðakostnaður bera enga leigjendavídd, því þá geturðu ekki svarað hvort rekstrarrof er einn leigjandi eða allur flotinn, og þú getur ekki nefnt leigjandann sem notkun gerir að tapi á samningsverði hans. Fyrir stórt teymi er þessi skipting það sem aðgreinir að reka vettvanginn frá að giska á hann, og hún mótar beint bæði áreiðanleikaviðbrögð og verðlagningu. Sjónarmiðin toga gegn mælingakostnaði og fjöldaeigind: að merkja allt eftir leigjanda er ekki ókeypis og mælikvarðar með háa fjöldaeigind (high-cardinality) þenja sýnileikafjárhagsáætlun þína, svo þú velur af ásetningi hvað á að sneiða á leigjanda og hvað á að úrtaka. Komdu með núverandi leigjendamerkingarþekju þína, raunverulega fyrirspurn sem skiptir skýjaútgjöldum á einn leigjanda og framlegðartöfluna sem myndi leyfa þér að nefna óarðbærasta viðskiptavininn þinn. Í fyrirtækja- og opinberu umhverfi nærir kostnaður á leigjanda og úttektarafmarkaður sýnileiki líka gjaldfærslu, getuáætlun og úttektarmörkin sem hver stofnun eða viðskiptaeining á rétt á, svo leigjendavíddin er stjórnarháttakrafa jafn mikið og rekstrarleg.

Sjónarhorn eftir geirum

Sprotafyrirtæki. Afhentu einn sameiginlegan sjóð frá fyrsta degi og settu knappa verkfræðiathygli þína í það eina sem ekki er hægt að bæta við eftir á: framfylgda leigjendaafmörkun. Stýrt Postgres með línustigsöryggi, tenant_id á hverri töflu og leigjendasamhengi leyst á jaðrinum kaupir þér örugga þéttleika án rekstrarteymis. Smíðaðu ekki silo-þrep eða innviði á leigjanda í getgátum. Bættu við brúarþrepi aðeins þegar borgandi fyrirtækjahorfur gera einangrunina kostnaðarins virði.

Lítið fyrirtæki. Án vettvangssérfræðings og með þröngt fjárhagsáætlun skaltu hallast að því sem skýið þitt og ramminn gefa þér þegar frekar en að smíða einangrunarvélbúnað sjálfur. Stýrðir gagnagrunnar með línustigsöryggi, vettvangur sem þjónusta sem afmarkar leigjendur fyrir þig og auðkenningarveita sem ber leigjendaauðkenni eru yfirleitt ódýrari og öruggari en handsmíðuð jafngildi. Líttu á fjölleigu sem kaupa-eða-smíða ákvörðun á hverju lagi og taktu sérsmíði frá fyrir leigjendamarkaprófin sem aðeins þú getur skrifað.

Stórfyrirtæki. Vandinn er eignasafnsstjórnarhættir yfir mörg teymi: þrepaskipt brúararkitektúr, arkitektúrákvörðunarskrá sem varpar hverju þrepi á leigu- og gagnaskiptingarlíkan þess og kostnaðarskipting á leigjanda svo fjármáladeild viti raunverulega framlegð á hverjum reikningi. Staðlaðu leigjendasamhengisflutning og afmörkunarvaraleiðina svo ekkert teymi finni þau upp aftur, fjárhagsáætlaðu einangrun og lífsferilssjálfvirkni skýrt og haltu studdri, verðlagðri leið til að flytja leigjanda milli þrepa án niðurtíma þegar hann vex eða regluvörsluþarfir hans breytast.

Hið opinbera. Innkaup, gagnabúseta og opinber ábyrgð knýja líkanið. Festu gögn hverrar stofnunar við innlend svæði með stefnu-sem-kóða, silo-aðu viðkvæm eða hárflokkunar vinnuálög í aðskilda reikninga með eigin úttektarmörkum og gefðu hverri stofnun eigin auðkennissamþættingu, varðveislureglur og úttektarslóð svo endurskoðendur einnar stofnunar sjái aldrei virkni annarrar. Útskráning verður að skila vottuðum útflutningi og sannanlegri eyðingu til að fullnægja skjalavörslu- og persónuverndarlögum, og leigjendaábyrgðirnar sem þú skrifar undir verða að vera þær sem arkitektúr þinn getur í raun staðið við.

Dæmi

Sprotafyrirtæki. Fimmtán manna sprotafyrirtæki smíðar vöru sína sem einn sameiginlegan sjóð frá fyrsta degi og hefur rétt fyrir sér. Allir leigjendur deila einum stýrðum Postgres-gagnagrunni með tenant_id á hverri töflu, línustigsöryggi framfylgir leigjendaskilyrðingunni í gagnagrunninum svo gleymd sía geti ekki lekið, og forritið leysir leigjandann úr undirléni á jaðrinum og þræðir hann gegnum hverja beiðni og bakgrunnsverk. Innleiðing er sjálfsafgreiðsla: ný nýskráning útvegar leigjendalínu sína, sáir sjálfgefnum gildum og er lifandi á sekúndum. Tveir verkfræðingar reka allan vettvanginn því það er eitt kerfi til að reka. Þegar fyrstu raunverulegu fyrirtækjahorfurnar krefjast sérstaks gagnagrunns og samningsbundinnar einangrunarábyrgðar bæta þau við brúarþrepi: sami kóðagrunnur, en þessi leigjandi fær eigin gagnagrunn á eigin sneið, seldur á verði sem dekkar kostnaðinn.

Stórfyrirtæki. SaaS-söluaðili sem þjónar stórum fjármálastofnunum rekur þrepaskipta brúararkitektúr. Þúsundir lítilla og meðalstórra viðskiptavina búa í svæðisbundnum sameiginlegum sjóðum, sneiddir eftir leigjanda, með kvótum og sanngjarnri tímasetningu sem halda háværu nágrönnunum í skefjum. Úrvalsbankaviðskiptavinir fá einsleigjenda uppsetningar í einangruðum skýjareikningum, með sérstökum gagnagrunnum, dulritunarlyklum á leigjanda og samningsbundnum gagnabúsetu- og einangrunarábyrgðum skrifuðum inn í rammasamninginn. Vettvangsgeta flytur leigjanda milli þrepa án niðurtíma þegar hann vex eða regluvörsluþarfir hans breytast. Kostnaður hvers leigjanda er skiptur með merkingum svo fjármáladeild viti raunverulega framlegð á hverjum reikningi, og leigjendamerktur sýnileiki leyfir bakvaktarverkfræðingnum að segja á sekúndum hvort viðvörun sé einn leigjandi eða allur flotinn.

Hið opinbera. Landsbundinn vettvangsveitandi hýsir margar ríkisstofnanir sem aðskilda leigjendur og lítur á einangrun sem lagakröfu, ekki val. Gagnabúsetulög festa gögn hverrar stofnunar við innlend svæði, framfylgd af stefnu-sem-kóða sem hindrar hverja auðlind á óleyfilegu svæði (kafli 3.11). Flokkun knýr líkanið: stofnanir sem meðhöndla viðkvæmt efni fá fullkomlega silo-aðar uppsetningar í aðskildum reikningum með eigin úttektarmörkum, á meðan vinnuálög lægri flokkunar deila stýrðum sjóði. Hver stofnun er sinn eigin leigjandi með eigin auðkennissamþættingu, eigin varðveislu- og útflutningsreglur og úttektarslóð afmarkaða við mörk sín, svo endurskoðendur einnar stofnunar sjá aldrei virkni annarrar. Útskráning skilar vottuðum gagnaútflutningi og sannanlegri eyðingu, því skrárnar eru háðar skjalavörslu- og persónuverndarlögum.

Viðskiptarök: hvatar, ávöxtun fjárfestingar og heildarkostnaður

Kjarnaviðskiptarökin fyrir fjölleigu eru framlegð. Einsleigjendalíkan, þar sem þú setur upp ferskt afrit á viðskiptavin, þýðir að innviða- og rekstrarkostnaður vex nokkurn veginn línulega með fjölda viðskiptavina og verkfræðingar þínir eyða dögunum í að plástra mörg afrit. Sameiginlegt fjölleigulíkan rýfur þessi tengsl: þú plástrarðu einu sinni, stigvaxar eitt kerfi og pakkar viðskiptavinum nógu þétt til að jaðarkostnaður næsta leigjanda nálgist núll. Það er það sem leyfir SaaS-rekstri að vaxa tekjur langt hraðar en kostnað, og þess vegna líta fjárfestar og stjórnir á hreinan fjölleiguarkitektúr sem staðgengil fyrir stigvaxandi fyrirtæki.

Ávöxtunin birtist á þremur stöðum: rekstrarvogarafl (eitt teymi rekur allan flotann), hraðari afhending (lagfæring fer til hvers leigjanda í einu, svo hraði rýrnar ekki eftir því sem þú bætir við viðskiptavinum) og verðlagningarvalkostir (sameiginleg áætlun fyrir langa halann og úrvals einangruð áætlun fyrir fyrirtæki, bæði úr einum kóðagrunni). Settu þetta gegn kostnaðinum sem þú verður að fjármagna heiðarlega: verkfræðina til að smíða framfylgda leigjendaeinangrun, kvóta, lífsferilssjálfvirkni og sýnileika á leigjanda, auk agans til að halda mörkunum óskertum. Kostnaðurinn við að fá það rangt er ósamhverfur og alvarlegur, því einn þvert-leigjenda gagnaleki getur kallað fram eftirlitssektir, fjöldabrottfall og mannorðsskaða sem dvergar innviðina sem þú sparaðir með því að deila. Rammaðu rökin við forystu sem framlegð og stigvöxt á uppleið og tilvistaráhættu á niðurleið. Festu þjónustustigssamninginn og samningsbundnu gagnaábyrgðirnar við leigulíkanið sem þú getur í raun staðið við, því loforð sem arkitektúr þinn getur ekki staðið við er skuld, ekki sala.

Andmynstur og gildrur

  • Leigjendaafmörkun með venju. Að treysta á að hönnuðir muni leigjendasíuna á hverri fyrirspurn, án varaleiðar á gagnagrunnsstigi eða í gagnaaðgangslagi. Ein gleymska er innbrot.
  • Að treysta leigjendaauðkenni frá biðlara. Að taka við leigjandanum úr beiðnainntaki fyrir heimild í stað þess að leiða hann af auðkenndu auðkenni, sem leyfir kallanda að biðja um gögn annars.
  • Óafmarkað bakgrunnsvinna. Verk, skyndiminni, webhooks og útflutningar sem tapa leigjendasamhengi því einhver afmarkaði aðeins samstilltu beiðnaleiðina.
  • Kóðaklofningar á leigjanda. Að sérmeðhöndla stóran viðskiptavin í kóðaleiðinni þar til þú viðheldur mörgum sundurleitum vörum undir einu nafni og hver breyting kostar tífalt meira.
  • Engin hávær-nágranna vörn. Að reka sameiginlegan sjóð án kvóta á leigjanda eða sanngirni, svo fyrsti leigjandinn til að rjúka upp taki alla niður.
  • Útskráning sem eftirþanki. Að smíða án gagnaútflutnings og sannanlegrar eyðingar, og falla síðan á útgönguákvæði viðskiptavinar eða persónuverndarbeiðni því sameiginlega skemað gerir útdrátt sársaukafullan.
  • Að fljúga blindandi á leigjanda. Skrár, mælikvarðar og kostnaður án leigjendavíddar, svo þú getur ekki sagt hvers atvik það er eða hvaða leigjandi er óarðbær.

Þroskalíkan

  • Stig 1, Upphaf: Fjölleiga er spunnin og viðbragðsdrifin. Leigjendaaðskilnaður hvílir á handskrifuðum síum án varaleiðar, líkanið er eitt-fyrir-alla, engir kvótar eru til, innleiðing er handvirk og skrár og kostnaður bera enga leigjendavídd. Teymið lærir um háværa nágrannann og næstum-lekann úr atvikum.
  • Stig 2, Þróun: Grunnvinnubrögð birtast en eru ósamræmd milli teyma. Leigulíkan er valið og leigjendasamhengi er flutt gegnum helstu beiðnaleiðina, varaleið á gagnagrunnsstigi eða í gagnaaðgangi framfylgir afmörkun á kjarnatöflum og grunnkvótar á leigjanda eru til. Innleiðing er að hluta sjálfvirk og skrár bera leigjendaauðkenni, en bakgrunnsleiðir, útflutningur og kostnaðarskipting eru mismunandi frá þjónustu til þjónustu og skrifuð niður hvergi.
  • Stig 3, Stöðlun: Leigunálgunin er skjalfest og framfylgt um alla skipulagsheildina. Þrepaskipt leiga varpast á verðlagningu, með sameiginlegum sjóði fyrir litla leigjendur og einangruðum uppsetningum fyrir fyrirtækja- og eftirlitsskylda, leigjendaafmörkun er framfylgd í dýpt og prófuð af ásetningi, kvótar og sanngjörn tímasetning halda háværu nágrönnunum í skefjum, leigjendalífsferillinn þar með talinn útflutningur og sannanleg eyðing er sjálfvirkur og sýnileiki og kostnaður eru sneidd á leigjanda. Hvert teymi fylgir sama leigustaðli frekar en sínum eigin.
  • Stig 4, Stjórnun: Leiguumhverfið er mælt og stýrt gegn grunnlínum. Einangrun, sanngirni, töf og kostnaður á leigjanda eru rakin sem mælikvarðar með umsömdum markmiðum: þvert-leigjenda prófaþekja, kvótabrot og hávær-nágranna atvikahlutföll, innleiðingar- og útskráningartími og framlegð á leigjanda eru skýrð frá gegn grunnlínum, og ákvarðanir um að færa leigjanda milli þrepa eða endurverðleggja óarðbæran eru teknar á þeim sönnunargögnum frekar en sögusögnum. Búseta og flokkunarsamræmi er vaktað samfellt og rek frá staðlinum kallar fram skjalfest viðbragð.
  • Stig 5, Samhæfing: Leiga er stöðugt bætt og samþætt um skipulagsheildina. Þvert-leigjenda mörk eru æfð með rútínu rauðliðaæfingum, leigjendur færast milli þrepa án niðurtíma þegar þeir vaxa eða regluvörsluþarfir þeirra breytast, framlegð á leigjanda nærir verðlagningu og getuáætlun og búsetu- og flokkunarreglur eru framfylgdar með stefnu frekar en rýni. Líkanið aðlagast eftir því sem viðskiptavinablandan og regluverksmyndin breytast og lærdómurinn nærir vöru, öryggi og fjármál sem eina lykkju.

Hugmyndir til umræðu

  1. Hvar situr hvert viðskiptavinaþrep þitt á sviðinu einangrun-á-móti-hagkvæmni í dag og er eitthvert þrep í röngu líkani fyrir ábyrgðirnar sem þú seldir eða framlegðina sem þú þarft?
  2. Ef þú þyrftir að sanna fyrir endurskoðanda að leigjandi A hafi ekki aðgang að gögnum leigjanda B, hvaða sönnunargögn gætirðu framleitt núna og hve mikið af þeim er sjálfvirkt á móti fullyrt?
  3. Hverjar af ósamstilltu leiðum þínum (verk, skyndiminni, webhooks, útflutningar, leitarvísitölur) endurfesta leigjendasamhengi og hverjar erfa það aðeins eða treysta kallandanum?
  4. Þegar leigjandi vex út fyrir sanngjarna deilingu, hefurðu studda, verðlagða kynningarleið í brúar- eða sérstaka uppsetningu, eða verður svarið sjálfgefið atvik?
  5. Geturðu skipt innviðakostnaði á einstaka leigjendur nógu vel til að nefna óarðbærasta viðskiptavininn þinn og myndi það breyta því hvernig þú verðleggur?
  6. Fyrir opinberan eða eftirlitsskyldan leigjanda, geturðu framfylgt gagnabúsetu og flokkunardrifinni einangrun með stefnu og skráð út með vottuðum útflutningi og sannanlegri eyðingu?

Helstu atriði

  • Fjölleiga, eitt tilvik sem þjónar mörgum leigjendum, er hagfræðivél SaaS: hún knýr framlegð þína og setur þvert-leigjenda einangrun í miðju arkitektúrsins.
  • Líttu á einangrun á móti hagkvæmni sem svið og þrepaskiptu það: pakkaðu litlum leigjendum í hagkvæman sameiginlegan sjóð, einangraðu stóra og eftirlitsskylda leigjendur í brúar- eða silo-uppsetningum sem þeir munu borga fyrir.
  • Láttu leigjendaafmörkun aldrei hvíla á handskrifaðri síu. Framfylgdu henni í dýpt með línustigsöryggi eða gagnaaðgangslagi og prófaðu mörkin af ásetningi.
  • Berðu leigjendasamhengi gegnum hverja beiðni, verk, skyndiminni og skrá og verðu ósamstilltu leiðirnar þar sem lekar fela sig.
  • Haltu háværu nágrönnunum í skefjum með kvótum á leigjanda, hraðatakmörkunum og sanngjarnri tímasetningu og færðu upp leigjendur sem vaxa út fyrir sjóðinn frekar en að láta þá rýra hann.
  • Beygðu vöruna með stillingu á leigjanda, ekki kóða á leigjanda, og gerðu leigjendalífsferilinn og sýnileika og kostnaðarskiptingu á leigjanda að fyrsta flokks.

Heimildir og frekari lestur

  • Tom Kwok, Thao Nguyen, and Linh Lam, A Software as a Service with Multi-tenancy Support for an Electronic Contract Management Application (IEEE International Conference on Services Computing)
  • Frederick Chong and Gianpaolo Carraro, Architecture Strategies for Catching the Long Tail (Microsoft)
  • Amazon Web Services, SaaS Lens, AWS Well-Architected Framework and SaaS Tenant Isolation Strategies
  • Microsoft, Multitenant SaaS architecture and patterns (Azure Architecture Centre)
  • Google Cloud, Architecture for Multi-tenant SaaS Applications
  • Cor-Paul Bezemer and Andy Zaidman, Multi-Tenant SaaS Applications: Maintenance Dream or Nightmare? (Proceedings of the Joint ERCIM Workshop on Software Evolution)
  • The Open Web Application Security Project, OWASP Application Security Verification Standard (access-control and multi-tenancy requirements)
  • Martin Kleppmann, Designing Data-Intensive Applications (partitioning, sharding, and data isolation)