utorok 25. októbra 2011

Multi-tenancy čo toto je?

Čítal som článok v CIO - Business world  "Oracle nachází inspiraci u Applu." a vyskytlo sa tam slovo multi-tenancy v súvislosti so Salesforce, tak som trosku popátral čo to znamená a zistil som, že význam je veľmi známy. 



Multitenancy odkazuje na princíp softvérovej architektúry , kde jedna inštancia softvéru beží na serveri, ktorý slúži pre viac organizácií (nájomcov). Multitenancy kontrastuje s viacerými stupňami architektúry, kde sú samostatné softvérové ​​inštancie (alebo hardvérové systémy), nastavené pre rôzne klientske organizácie. Multitenant architektúra aplikácie je navrhnutá tak, aby rozdelila dáta a konfiguráciu, a každá organizácia pracuje s vlastnou virtuálnou inštanciou aplikácie v spoločnej databáze.

Multitenancy je považované za jeden zo základných atribútov Cloud Computing .


História Multitenant aplikácií :
  • Predchodcom multitenant aplikácií  bolo zdieľanie výpočtového výkonu na sálových počítačoch - približne od roku 1960.
  • Pokračovaním bolo tradičné poskytovanie aplikačných služieb (ASP) hosting aplikácii - približne od roku 1990
  • Populárne spotrebiteľsko orientované webové aplikácie (ako je Hotmail ) sú funkčne navrhnuté ako jedna inštancia aplikácie, ktorá slúži všetkým zákazníkom.  Multitenant aplikácie predstavujú prirodzený vývoj od tohto modelu, ktorý ponúka ďalšie prispôsobenie sa skupine alebo užívateľovi v rámci tej istej organizácie klienta.

Odlíšenie od virtualizácie.
V multitenancy prostredí viac zákazníkov zdieľa rovnaké aplikácie, bežiace na rovnakom operačnom systéme, na rovnakom hardware, s rovnakým mechanizmom pre ukladanie dát. Rozdiel medzi zákazníkmi je dosiahnutý pri návrhu aplikácie, takže zákazníci nezdieľajú ani nevidia navzájom dáta. Porovnajte to s virtualizáciou , ktorá zabezpečuje pre zákazníka oddelenie už na úrovni operačného systému, ktorý sa prevádzkuje na oddelenom virtuálnom stroji.

Niektoré firmy aktívne presadzujú princíp multitenancy a používajú to ako zdroj konkurenčnej výhody a to hlavne preto, že multitenancy prináša úsporu nákladov z dôvodu zdieľania fyzických zariadení.
Pre zákazníkov multitenancy umožňuje úsporu nákladov nad rámec základných úspor dosiahnuteľných z konsolidácie IT zdrojov v jednej organizácii tým, že zdieľajú fyzické zariadenia ako pamäť, procesor, diskový priestor, ... Vhodné je to hlavne pre menšie alebo stredné spoločnosti, ktoré nemajú potrebné zdroje investície.
Okrem toho znižuje náklady na vyškolený IT personál, pretože starostlivosť o IT prenáša zákazník na prevádzkovateľa aplikácie.

Pre prevádzkovateľa a tvorcu multitenancy aplikácie je však vývoj o niečo náročnejší ako pri klasických aplikáciách, pretože ďalšie prispôsobenie aplikácie je potrebné zachovať pre každého zákazníka bez narušenia jeho existujúcich metadát. Multitenant aplikácie vyžadujú väčšie úsilie vývojárov a tým aj zvýšenie nákladov na vývoj takýchto aplikácii.

Multitenancy zjednodušuje proces vydávania verzii, pretože stačí nainštalovať novú verziu len na jeden server pre všetkých zákazníkov. V tradičnej procese by bolo nutné zopakovať toto nasadenie pre každého zákazníka zvlášť. Tým sa výrazne zjednodušuje proces vydávania nových verzii. Nevýhodou môže byť zvýšené riziko výpadku pri nasadzovaní novej verzie aplikácie a tým aj výpadok všetkých zákazníkov prevádzkovateľa.

Multitenant aplikácie musia zabezpečiť vysokú mieru prispôsobenia na podporu jednotlivých cieľových a potrieb zákazníka. Prispôsobenie typicky zahŕňa nasledujúce aspekty:

  •     Branding: umožňuje každej organizácii prispôsobiť vzhľad a správanie aplikácie tak, aby zodpovedali ich firemnej značke.
  •     Workflow : umožnuje jednoduchú modifikáciu  workflow tak, aby vyhovovala zákazníkovi presne podľa jeho business procesov.
  •     Rozšírenie dátového modelu : podpora rozšíriteľnosti dátový modelu poskytuje zákazníkom možnosť prispôsobiť dátové prvky aplikácie, aby splnili svoje špecifické potreby.
  •     Riadenie prístupu : prístupové práva a obmedzenia pre každého používateľa si nastavúje zákazník tak aby vyhovoval jeho business procesom a organizačnej štruktúre.

Od multitenant aplikácií sa očakáva, že zabezpečenie primeranú úroveň bezpečnosti a odolnosti , ktoré poskytuje operačný systém v prípade viacerých inštancií aplikácie.
Náklady na novú koncepciu aplikácie pre multitenancy môžu byť značné, najmä pre dodávateľa softvéru, ktorí aj naďalej ponúka priestor na jednotlivý prenájom alebo inštaláciu svojho produktu. Typickým predstaviteľom multitenant aplikácie je práve Salesforce CRM.

Všeobecne však táto koncepcia ustupuje virtualizácii a cloudovým riešeniam, ktoré zabezpečujú fyzické oddelenie dát jednotlivých zákazníkov a tým samozrejme aj vyššiu mieru bezpečnosti.

Athena framework