Informační systém MU: architektura a implementace v rozsáhlém prostředí velké organizace
Michal Brandejs, Miroslav Křipač
článek na konferenci Datakon 2007 (20. – 23. 10. 2007)
Abstrakt: Masarykova univerzita již devátým rokem provozuje vlastní jednotný systém na evidenci a celkovou elektronickou podporu studia.
Jedná se o striktně webový on-line informační systém s přímým přístupem přibližně 40.000 aktivních uživatelů a bezprostřední propagací změn v
datech na všech úrovních. Cílem této přednášky je seznámit posluchače s hlavními principy architektury systému. Během prezentace budou rovněž
diskutovány výhody, úskalí a získané praktické zkušenosti s principem distribuovaného ukládání dat, které se stává v poslední době populárním.
Představeno tak bude několik produkčně používaných metod ukládání dat včetně využití databázových clusterů, plně distribuovaných datových
úložišť a technologií z oblasti tzv. High-Performance Databases.
Klíčová slova: Informační systém Masarykovy univerzity, databázové systémy, databázove clustery, webové systémy.
1. Úvod a motivace
Informační technologie podporující základní chod velkých organizací nebo podniků se postupem času staly běžnou a zejména nezbytnou součástí
našeho života. Bez snadno dostupných elektronicky evidovaných údajů se neobejdeme. Ne vždy je však implementace složitých procesů tak úspěšně
použitelná v malém prostředí snadno rozšiřitelná do heterogenních prostředí rozsáhlých organizací.
Jeden z prvních přirozených požadavků na takový systém je přístupnost údajů pro kohokoliv. Počítačový systém, který eviduje důležité údaje
není již v praxi dostačující ve chvíli, kdy tyto údaje jsou přístupné (byť plně elektronicky) pouze jednomu nebo několika málo vybraným
pracovníkům, kteří se pak stávají nutnými prostředníky pro ostatní uživatele, kteří data skutečně využívají. Například finanční účtárna se
může stát úzkým místem pro efektivní správu finančních toků ve chvíli, kdy bude jako jediná schopna zadávat do elektronického systému data a
číst z něj výstupy. Ve skutečnosti je potřeba, aby každý člen organizace mohl zadávat finanční operace na které má právo a číst výstupy, které
z nich plynou. Tento přirozený a snad dnes již úsměvný požadavek však není jednoduché ve skutečnosti implementovat takto doslova. Jak
navrhnout systém, který bude umožňovat plný přístup k úplně všem kritickým údajům nejen pro deset ale i pro tisíc nebo deset tisíc lidí? Jak
takový systém nasadit a jak jej udržet v chodu? Jak pružně a nejlépe obratem reagovat na závažné softwarové chyby?
Druhým kritickým požadavkem je rychlost zpracování dat. Jaký čas je ještě akceptovatelný pro zpracování transakce nad daty, které potřebujeme
evidovat, abychom se dozvěděli výsledek? Stačí pro naše interní procesy tři dny, které stačí bankám pro plně elektronicky zadaný přenos peněz
z jednoho běžného účtu na druhý?
V případě velkých organizací se pak setkáváme s dalšími problémy, které musí informační technologie podchytit a podporovat. Tím je například
organizační struktura, řízení a vůbec celková vnitřní provázanost. Stačí zmínit přínos, který přináší jednotné informační prostředí bez ohledu
na to, ve které části (oddělení, pobočce, závodu) k údajům přistupujeme. Propojování dat (a s nimi souvisejících znalostí) napříč různými (a v
principu dost odlišnými) částmi rozsáhlé heterogenní organizace vede k usnadnění nejen vnitřních procesů, ale zejména k jednotnému a
transparentnímu fungování navenek a tím i k výraznému zkvalitnění poskytovaných služeb pro koncové zákazníky nebo uživatele.
Toto jsou jen některé z problémů, které stojí také za motivacemi pro zavedení plně elektronizované podpory výuky na Masarykově univerzitě. Ta
je v současné době realizovaná pomocí tzv. Informačního systému Masarykovy univerzity (IS MU). Konkrétně tedy každý uchazeč, student,
absolvent, učitel či zaměstnanec administrativy (studijní referent, ekonom ale i vedoucí na všech úrovních) má přímý přístup do systému s
možností plného ovlivnění (ale také plné zodpovědnosti) všech dat, které souvisí s jeho posláním na univerzitě. Samozřejmostí tak jsou nejen
plně elektronizované výkazy známek (dříve známé jako indexy) a další evidence (seznamy studentů v daném kurzu, přihlášených ke zkoušce), které
jsou už dávno evidovány výhradně elektronicky, ale i jejich naprostá vzájemná provázanost. Evidence těchto dat je pak prováděna striktně
on-line. To znamená, že pokud například student v určenou dobu projeví zájem o studium konkrétního předmětu, systém sám vyhodnotí celou řadu
obecně složitých předpokladů a v případě úspěchu zaeviduje studenta jako řádně zapsaného k danému předmětu. Student se tak ihned dozví
případné důvody, proč si daný předmět právě on zapsat nemůže, neboť důvody jsou zcela individuální. Vzniká tak rychlá a přesná evidence, která
navíc podporuje zmiňovanou integraci napříč velmi různorodých součástí. Není administrativně složité, aby si například student specializující
se na mezinárodní obchod navštěvoval oficiálně v rámci svého studia kurz japonštiny, který je vyučován v jiné části města apod.
Toto jsou pouze některé základní principy, na kterých IS MU dnes funguje. Samozřejmostí jsou i další služby jako je elektronická podpora
samotné výuky (on-line testování na počítači přímo v IS MU včetně udělení známky, scanování a rozpoznání písemných testů, systém pro
odhalování plagiátů ve studentských pracích, multimediální výukové materiály), bezpečná správa a vyhledávání v dokumentech, správa
identifikačních karet a přístupů, komunikace (e-mail, akademické i volné diskuse, elektronické nástěnky) a v poslední době také podpora pro
on-line prodej vzdělávacích aktivit široké veřejnosti. Všechny tyto a mnohé další služby těží z jednotného plně sdíleného prostředí, které
přináší zmiňované vlastnosti včetně široké dostupnosti a rychlé propagace změn. Na druhé straně však implementace takového systému včetně
dosažení vysoké stability systému a nezbytné reakce na různé formy přetížení vyžaduje řadu různých implementačních rozhodnutí, které budou
diskutovány v následujících kapitolách.
2. Architektura systému
Základem architektury systému je plně webové prostředí pro všechny uživatele bez rozdílu. Pokud odhlédneme od komunikace s ostatními systémy
univerzity, není do systémy možný jiný přístup, než pomocí webového prohlížeče. Bez ohledu, zda se připojuje student z mobilního telefonu na
prázdninovém pobytu, nebo referentka provádějící různorodé datové operace po celou pracovní dobu z vlastní kanceláře, vždy je přistupováno
pomocí webového prohlížeče.
Základní výhoda tohoto přístupu spočívá ve velmi snadné správě a údržbě aplikací. Na straně koncového klienta je nutná pouze běžná podpora pro
standardní prohlížeč, která často nepřináší další náklady oproti běžné správě výpočetní techniky. V prostředí, kdy i zmíněných referentů jsou
řádově stovky nebo tisíce, Jakákoliv změna v aplikaci je pak propagována všem a ihned, což přináší v podstatě největší možnou flexibilitu vůči
reakcím na chyby všeho druhu a tím i požadovanou stabilitu.
Druhou výhodou je samozřejmě přístup z libovolného místa připojeného do Internetu, kterou stále častěji využívají nejen uživatelé pro
prezentační část, ale i ti, kteří se systémem pracují velmi intenzivně (například práce z domova apod. ).
Naopak tento přístup přináší také řadu úskalí. Ve chvíli, kdy podnikový informační systém stavíme primárně na klasických aplikacích a webové
rozhraní použijeme pouze pro prezentaci nebo sběr základních údajů nezpracovaných on-line, je možné mnohem přesněji určovat požadovaný výkon
a optimalizovat chování aplikací při zátěži. Obecně otevřený webový systém jakým je IS MU se tak mnohem snadněji stane terčem problémů
souvisejících s přetížením a nebo naopak většinu doby jeho hardwarové kapacity nejsou využity. V takovém případě je nutné využít další
sofistikovaná řešení pro řízení přetížení, která jsou nad rámec této přednášky.
Nespornou nevýhodou webových řešení je pak složitější přizpůsobení uživatelských rozhraní pro snadné zadávání velkého množství údajů a podpora
dalších periferií (jako například kvalitní grafické výstupy a tisk obecně), které jsou v tomto případě složitější, než s využitím
standardizovaných rozhraní operačních systémů.
Jiný je rovněž náhled na zajištění bezpečnosti systému, se kterou je také nutné počítat.
3. Základní komponenty systému
Kromě běžných webových prohlížečů, které se také nemalou měrou podílejí na chodu systému a zpracování aplikací jsou všechny součásti systému
plně pod kontrolou Vývojového týmu IS MU, který zajišťuje také samotný provoz systému. Ten je pak umístěn na několika základních místech v
budovách univerzity po městě Brně. Základní jádro systému je pak připojeno do sítě CESNET a tím i do Internetu dvěma obecně nezávislými
linkami. Ty jsou obsluhovány nezávislými routery, které se starají také o primární ochranu vnitřní sítě IS MU například na paketové úrovni.
Další sada strojů, tzv. brány, slouží při vzájemné zástupnosti pro distribuci požadavků klasického HTTPS spojení na aplikační servery. Cluster
aplikačních serverů pak provádí jak zpracování HTTPS komunikace (včetně šifrování a reakcí na nestandardní stavy), tak běh aplikací, které
jsou přímo navázány na jednotlivé fáze zpracování HTTPS požadavků. Kromě mechanismu lokálních vyrovnávacích pamětí jsou data, se kterými
aplikace pracují, přístupná na další vrstvě, databázovém serveru. Ten je realizován jako jeden systém se sdílenou pamětí a jeho princip je
popsán dále.
Kromě těchto základních součástí jsou v rámci provozu IS MU k dispozici další servery například pro automatický převod různých formátů
dokumentů (formáty Microsoft Office, OpenOffice, PDF, běžný text), fulltextové vyhledávání, generování sestav, přesné a bezpečné vyhledávání
podobností v dokumentech, zálohování a zabezpečení včetně automatické antivirové ochrany nad uloženými dokumenty.
Základním a v současné době téměř jediným využitým operačním systémem na všech serverech je Linux ve dvou různých distribucích. Jako webový
server je použit Apache HTTP Server a aplikace využívají vlastní aplikační prostředí v jazyce Perl. Databáze je spravována pomocí produktu
Oracle Database ve verzi Enterprise Edition.
4. Distribuce dat
Základním předpokladem pro zpracování dat uvnitř IS MU je sdílení všech potřebných údajů napříč všemi součástmi. Tím dochází k bezprostřední
propagaci změn a jednodušší správě jednotlivých údajů. Na druhou stranu sdílení údajů může vést ke snížení spolehlivosti v případě chyby
(výpadku) v některé z kritických částí sdíleného systému a zároveň ne vždy lze snadno navýšit potřebné zdroje (ať už disky pro samotné uložení
dat nebo výpočetní součásti jako procesory a paměti pro jejich zpracování).
Z pohledu zpracování dat využívá IS MU dvou základních přístupů. První z nich slouží pro zpracování velice strukturovaných dat s velmi častou
frekvencí změn. Tato data jsou všechna plně spravována pomocí databázového systému Oracle Database s využitím vlastního mechanismu vyrovnávací
paměti na straně aplikačních serverů pro data, která jsou velmi často čtena, ale málo měněna. Příkladem takových dat je seznam studentů
navštěvujících daný kurz nebo samotné údaje o kurzu.
Druhý typ údajů představují rozsáhlé dokumenty a jiná objemná data, které je potřeba ukládat jako celek (nejsou vnitřně strukturovaná z
pohledu systému), neprovádí se v nich změny přímo, ale systém slouží pouze jako prostředník pro jejich uchování a sdílení. Pro tento typ údajů
slouží v IS MU speciální distribuované úložiště, které pomocí vlastní infrastruktury ukládá tyto dokumenty na disky jednotlivých aplikačních
serverů, které by jinak zůstaly téměř nevyužity. Tímto způsobem dochází jednak k velmi efektivnímu využití (a případnému nárůstu) diskové
kapacity a jednak k optimální distribuci zátěže při masivní práci s těmito dokumenty. Každý dokument pro případ výpadku je pak uložen na
nejméně dvou uzlech. Příkladem dat v distribuovaném úložišti jsou studentské práce (obecně textové, tabulkové a další dokumenty),
multimediální výukové materiály či celé obrazy kompaktních disků používaných ve výuce.
Výhody, které skýtá interní distribuce dat uvnitř navenek integrovaného systému se sdílením všech dat, je možné využít také pro data relačního
typu. Zejména v poslední době k tomuto účelu vznikají různá řešení databázových systémů obecně označované jako databázové clustery. Nabízí se
tedy otázka, proč IS MU v současné době nevyužívá toto řešení také pro ostatní typy dat.
Prvním cílem pro nasazení databázového clusteru pro zpracování dat je zvýšení dostupnosti v případě chyby uvnitř datového systému. Tato
myšlenka předpokládá, že v případě chyby například v hardware databázového serveru je k dispozici druhý server, který je okamžitě schopen
převzít provoz a obsluhu aplikačních serverů. Za tímto účelem je však nutné použít tzv. databázové clustery se sdíleným diskem, který
předpokládá, že data z chybného uzlu budou dostupná i z dalších uzlů. Omezení, které toto řešení ale nabízí, je v případě rozsáhlých systémů
dáno celkovým objemem zpracovaných dat, které je nutné při „překlopení“ načíst na náhradní uzel. V případě systémů typu IS MU, a tyto
zkušenosti potvrzuje i řada autorů dalších rozsáhlých databázových řešení, je celková doba na načtení všech potřebných dat natolik velká, že
systém fakticky během této doby není schopen zajistit rozumné fungování stejně, jako je tomu v případě hardwarové rekonfigurace (restartu)
vadného uzlu.
Při zvažování zvýšení dostupnosti je také nutné brát v úvahu velké navýšení složitosti databázového clusteru oproti systému s jednou instancí
a dále pak celkové vysoké vnitřní propojení všech uzlů v clusteru, které může vést k propagaci naopak softwarové chyby na všechny uzly
clusteru. Teoretická výhoda „nezávislosti“ clusterů se tak v praktickém provozu stává naopak zdrojem dalších chyb a výpadků.
V neposlední řadě pak do uvažování o skutečném nasazení databázových clusterů pro zvýšení dostupnosti vstupuje celková cena za takové řešení
daná nejen cenou za databázové licence. V případě clusterů s vysokým výkonem je totiž nezřídká výhodnější použít „nekomoditní“ hardwarové
řešení, které obsahuje řadu vlastností pro zvýšení výkonu včetně on-line výměny vadných komponent bez nutnosti výpadku celého systému,
fyzického oddělení základních částí apod.
Druhou výhodou pro obecné použití databázových clusterů je navýšení výkonu. V případě, že výkon stávajícího počtu uzlů nedostačuje, je velmi
jednoduché přidat další uzel do clusteru. Toto řešení, které úspěšně funguje na aplikační úrovni (a zde to i IS MU hojně využívá), je však
velmi závislé na nutnosti zajištění konzistence mezi masivně paralelním čtením a zápisem dat na různých uzlech současně. Toto softwarové
zajištění konzistence, které musí nutně provádět databázový server, výrazně zvyšuje režii potřebnou pro běžný chod aplikace. U on-line
přepočítávaných dat je pak tento způsob zpracování při masivním přístupu uživatelů přirozeně výrazně méně výkonný, než přístup do sdílené
paměti realizovatelný hardwarově.
Z tohoto důvodu IS MU opustil v minulém roce koncepci databázových clusterů a soustředí se plně na tzv. „vertikální distribuci dat“ v rámci
jednoho „single system image“ řešení. Za tímto účelem byla využita technologie SGI Altix z oblasti tzv. High Performance Databases, která
umožňuje, podobně jako databázové clusteru, jednoduchým přidáním uzlu do systémové infrastruktury navyšovat a případně přesouvat výkon mezi
různými částmi systému a to transparentně vůči databázovému software. Zároveň umožňuje vícenásobné zařazení všech komponent nutných pro běh
systému tak, aby i v případě výpadku jakékoliv komponenty byl zajištěn provoz poskytovaných služeb pouze s minimálním omezením výkonu.
5. Závěr
V tomto příspěvku jsme se pokusili ilustrovat aktuální praktické zkušenosti s provozem velkého systému pro desítky tisíc uživatelů. Jistě není
možné obsáhnout všechny aspekty celého řešení. Vedle principů zvolené architektury a jejich motivací jsme se proto zaměřili na klíčovou oblast
z hlediska správného a efektivního fungování, čímž je správa dat. Podle našich aktuálních znalostí se ukazuje, že oproti všeobecně
prosazovanému trendu zavádění databázových clusterů a podnikových gridů, není v řadě zejména rozsáhlých integrovaných systémů distribuce dat
tímto horizontálním způsobem přínosná. Naopak existují alternativy, které přináší pro praktický provoz více možností.