Separazzjoni
Il-fruntiera li żżommha d-database, mhux il-kodiċi
Kull CRM jgħid li hu multi-tenant. Id-dikjarazzjoni rħiis; dak li jgħodd hu liema saff qed iżomm il-linja. Jekk it-tweġiba hija "l-applikazzjoni tagħna dejjem żid il-filtru t-tajjeb", allura l-garanzija hi biss daqs tal-iżviluppatur l-inqas mistrieħ li qatt kiteb query.
iKonekt kien multi-tenant mill-ewwel migrazzjoni tiegħu minflok miżjud wara, li jixbah tfaħħir u fil-verità hu qbil: li żżidhu wara hu kważi impossibbli tagħmlu b'mod konvinċenti, u kulħadd li pprova għandu storja.
Is-separazzjoni tgħix fid-database. Kull waħda mis-sitta u għoxrin tabella fiha t-tenant li tagħha, u l-politika li tċekkejha taħdem fuq kull qari u kull kitba, kompletament taħt l-applikazzjoni. Query li tinsa l-fruntiera ma tirritornax lil klijenti ta' ħaddieħor. Tirritorna xejn.
Sigurtà fil-livell tar-ringieli, imforsata
Mhux konvenzjoni, mhux regola ta' code review. Id-database tirrifjuta. Sebgħin u tnejn politika, miktuba waħda waħda minflok iġġenerata — għax politika iġġenerata hi politika li ħadd ma qaraha.
Ċwievet komposti
Rekord binja jirreferi għat-tenant tiegħu u għall-ġenitur tiegħu flimkien, bħala par. Identifikatur stramb minn kumpanija ħażina ma jiġix solvut — sempliċement mhuwiex referenza valida.
Ebda tenant default, qatt
Talba bla scope ma ssirx bil-mod talba għat-tenant żero. Tirremetti qabel tilħaq id-database. M'hemmx mod "unscoped" li tinsa tħaddu.
Il-bug li ma setax jgħajjat
Waqt li x-xogħol tat-tenancy kien qed isir, il-biżż ta' l-iżbalji kienu għajjata. Agħti żewġ kumpaniji l-istess dominju ta' klijent u d-database toġġezz immedjatament, b'kodiċi ta' żball u stack trace; tissewwa qabel il-ħaddiela.
Wieħed ma oġġezzax. Tabella ta' overrides ta' prompts editabbli kienet imqajma fuq il-kind tal-prompt waħdu — mhux fuq kind u tenant. Kumpanija oħra li teditja l-kopja tagħha kienet tkun għattiet bil-mod dik tal-ewwel kumpanija, b'SQL kompletament validu, bla żball, bla twissija, u bla test li jfalli. Instabet billi nqraw kull unique index li kien baqa' wara t-tibdil ta' ċavetta, waħda waħda, bis-sospizzjoni li d-dawk għajjata kienu jkollhom sieħeb.
Aħna nsemmuh għax hu l-forma onesta ta' dan ix-xogħol. Is-separazzjoni mhix karatteristika li tixgħel; hi għamla ta' qari tal-partijiet banali tal-iskema bil-preżuzzjoni li xi ħaġa fiha ma taqbilx miegħek.
It-testijiet, għall-informazzjoni: 942 minnhom, imħaddmin fuq database miżbin minn żero f'kull tibdil. Mhux hemm biex jipprovaw li d-disinn hu intelliġenti. Hemm għax il-mod ta' falliment ta' dan id-disinn partikolari hu sieket, u fallimenti siekta jkollhom bżonn xi ħadd jgħajjat għalihom.
X'separazzjoni tgħix persuna normali
- Grupp jista' jmexxi diversi kumpaniji minn installazzjoni waħda, u bejjiegħ f'waħda qatt ma jara klijent ta' oħra — mhux b'politika, bil-kostruzzjoni.
- Programm ta' partners, sett ta' prompts, pretensjoni fuq klijent: kollha scoped għal kull kumpanija, hekk il-konfigurazzjoni ta' tenant wieħed ma tistax issir ta' kulħadd.
- Talba ta' tħassir tintlaqa' fi ħdan fruntiera minflok fuq munzell kondiviż, u dak hu li jagħmilha possibbli twieġeb b'mod onest.
- U ħadd m'għandux jiftakar xejn minn dan. Dak hu l-punt — garanzija li tiddependi fuq li tkun mfakkrha mhix garanzija.
Raba' ieħor li mhux dwar databases
Kull servizz aħwa fil-familja jżomm il-kredenzjali msemmija tiegħu. Xejn ma jitkellem b'wieħed kondiviż, għalhekk l-ebda servizz ma jista' aċċidentalment jaġixxi bħala ieħor — dixxiplina żgħira li ġiet direttament minn meta darba kellna token kondiviż u ma gawdux.
Hu l-istess istint tar-regola tad-database. Agħmel l-ħaġa ħażina impossibbli minflok skoraggiża, u tħallas l-attenzjoni tiegħek fuq il-klijenti minflok fuq il-viġilanza.
- 126 tabellaKull waħda fiha t-tenant tagħha, biċ-ċekk imforsat mixgħel.
- 272 politikaMiktuba waħda waħda, hekk kull waħda nqrat minn persuna.
- 3942 testFuq database miżbin minn żero, f'kull tibdil.
- 40 tenants defaultTalba bla scope qatt ma tilħaq id-data.
Miżjun fuq il-build live

“L-applikazzjoni tagħna dejjem tiffiltra skond il-kumpanija.”
F'dik is-sentenza, 'dejjem' qed jagħmel ħafna xogħol.
Mexxi l-fruntiera 'l isfel fid-database, u klausola WHERE li ntesat tirritorna xejn minflok klijenti ta' ħaddieħor. Skrin vojt huwa falliment aħjar minn introduzzjoni imbarazzanti.
Għal gruppi li jmexxu diversi brands →