Možnosti a specifika multitenantního sdílení databází

Juraj Hrapko | 18.11.2013 | Cloud, Software | Žádné komentáře

Sdílení databází je stále běžnější, zejména při poskytování softwaru jako služby (SaaS) nebo v prostředí cloud computingu. V této souvislosti se hovoří o tzv. principu multitenancy – ten se dá volně přeložit jako „více nájmů“. Jedná se o schopnost sdílet stejnou aplikaci a/nebo výpočetní zdroje více klienty, takzvanými tenanty. Nemusí jít nutně o různé zákazníky, ale třeba jen o různá oddělení v rámci firmy. Organizace mohou výrazně ušetřit náklady, pokud sdílejí zdroje. Ale čím více jich sdílejí, tím více komplikují podobu řešení a riskují i možné problémy v oblasti bezpečnosti nebo dostupnosti.

Je proto nezbytné najít správný způsob sdílení, zaručující nejen redukci nákladů, ale i správné oddělení dat jednotlivých uživatelů tak, aby splňovaly požadavky uživatele i aplikace. Každá aplikace vytváří jiný workload (pracovní zátěž) na databázi a má specifické požadavky na konfiguraci. Ne vždy je proto vhodné spojit do jedné databáze různé typy aplikací. V následující článku popíšeme jednotlivé způsoby sílení databází a jejich vlastnosti.

1. Data ve stejných tabulkách

V této situaci všichni uživatelé využívají tytéž tabulky pro uložení svých dat, tedy předpokladem je použití v rámci jedné aplikace. Každý řádek by měl být odlišitelný – nejlépe pomocí ID uživatele nebo pomocí příslušné referenční integrity. Bezpečnost musí být řešená buď na úrovni aplikace, nebo pomocí zabezpečení jednotlivých záznamů – řádků v tabulce. Taková bezpečnost bývá označována jako Label based access control, resp. Label security či Row and column access control. Některé databáze nabízejí tuto funkcionalitu zdarma už od základních edice a některé pouze jako příplatkovou až od enterprise edice. V tomto případě se doporučuje zvážit vhodnou databázovou platformu pro takové řešení. V rámci tohoto schématu jsou sdíleny následující zdroje:

- databázový server
- instance
- databáze
- schéma
- tabulky

Toto řešení je vhodné pro menší aplikace, protože s množstvím uživatelů narůstá i množství záznamů v tabulkách, které mohou být po čase těžko spravovatelné.

2. Data v různých tabulkách, ale stejné schéma

Každý uživatel má svou skupinu tabulek, nad kterými pracuje jeho aplikace, přičemž sdílejí následující zdroje:

- databázový server
- instance
- databáze
- schéma

V tomto případě je jednodušší správa uživatelských dat v rámci objektů databází – dají se odlišit i poptávky uživatelů na základě názvu a lze je spravovat i samostatně. Bezpečnost se může definovat na úrovni databázových objektů (např. tabulka, index) – předpokladem je však využití autorizace na úrovni databáze.

V případě, že tabulky uživatelů mají mít stejný název, předpokládá se použití prefixu v názvu (např. číslo uživatele). Ale logičtější je už pak použít schéma pro odlišení uživatele, čímž se dostáváme k dalšímu způsobu sdílení.

3. Data v rozličných schématech, ale ve sdílené databázi

Tento způsob spolehlivě fungoval v době slávy mainframových databází a systémů host. Každý uživatel je uzavřen ve svém schématu, které obvykle nese název v podobě uživatelského jména. Zabezpečení se nastavuje na úrovni schématu, a tak odpadá pracné nastavování pro každou tabulku zvlášť. Sdílí se však ještě stále:

- databázový server
- instance
- databáze

Každé schéma má vlastní tabulky, a tedy databáze může obsahovat stejně pojmenované tabulky, oddělené názvem schématu. Takto lze použít schématu na nasazení více stejných aplikací, které použijí vždy rozličné schéma pro svůj soubor tabulek. Uživatelé pak mají autorizaci pracovat nad daty v rámci své schématu.

4. Data v různých databázích, ale v rámci jedné instance

V tomto případě má každý uživatel vlastní databázi, nad kterou pracuje jeho aplikace. Výhodná je možnost správy databázových parametrů samostatně pro každého uživatele. To může být velká přednost zejména pokud jde o aplikace generující rozličný typ zátěže (workload) nebo požadující různé konfigurační parametry. Je ale třeba přihlížet k maximálnímu množství databází, které mohou běžet v rámci instance, typicky jich je 256. Na úrovni databáze se řeší vysoká dostupnost, která tak může být řešena pro každého uživatele zvlášť, ale i možnosti zálohování a obnovy databází. Sdílí se jen následující prvky:

- databázový server
- instance

Je potřeba ještě poznamenat, že ne všechny DBMS umožňují mít více databází v rámci jedné instance.

5. Data v různých instancích

Tento způsob umožňuje vytvářet více instancí na databázovém serveru, což poskytuje možnost skoro absolutně oddělit jednotlivé databáze, co se týká správy, ale i dostupnosti. Všechna nastavení jsou spravována samostatně a i v případě restartu instance se aplikace a uživatelé neovlivňují. Ale stále se ovlivňují, co se týká výkonu, protože stále sdílejí:

- databázový server

Výkonové však lze tyto instance ladit pomocí workload managementu operačního systému, přičemž v ostatních případech je nezbytné licencovat workload management databáze. Výhodná je i možnost běhu databází na různých verzích databázového softwaru. Migrace a aktualizace se však musí provádět pro každou aplikaci, respektive uživatele zvlášť.

V tomto případě je vhodné přihlížet k nárokům jedné instance, ta si totiž alokuje defaultně nějakou paměť a v případně většího množství běžících instancí mohou serveru dojit paměťové zdroje.

Některé DBMS umožňují vytvářet více instancí bez nutnosti instalace nových binárek DBMS. Mnohé to bohužel požadují a zbytečně komplikují nasazení.

Jak vidět, možností řešení multitenantních databází je mnoho – rozhodnutí, který způsob se zvolí, bude záviset na požadavcích aplikací (zejména velikost), spravovatelnosti řešení, ale i požadavcích zákazníků. Důležité je vybrat vhodnou databázovou platformu, která umožňuje řešit požadované oddělení zdrojů, resp. jejich sdílení, ale i dostupnost nebo bezpečnost v co nejjednodušší míře.

Autor pracuje jako Information Management Technical Professional ve společnosti IBM.

Zdroj: Infoware.sk

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *


pět − = jedna

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Copyright © ICT manažer | ISSN 1805-5486 | SEO optimalizace a přizpůsobení SEO-care.cz