Big Data
Korszerű technológiai és szolgáltatási modellek BIG DATA Napjainkban rohamosan nő az informatikai rendszerekben tárolt adatok mennyisége. Nemcsak a klasszikus üzleti, vagy termelési adatok kerülnek tárolásra, hanem óriási adatmennyiséget gyűjtenek a meteorológiai szolgálatok, a kommunikációs eszközök üzemeltetői, műholdas rendszerek, vagy például a térfigyelő kamerák és a közösségi hálók. A világon naponta 2.5 quintillion bájtnyi (2,5*1030 bájt) adat keletkezik, ami azt jelenti, hogy a jelenleg rendelkezésünkre álló adatmennyiség 90 %-a az utóbbi 2 évben keletkezett (forrás: IBM). Az adatok jó része nem elszigetelt rendszerekben kerül tárolásra, hanem széleskörűen hozzáférhető módon, így lehetővé válik az adathalmazok összekapcsolása is. Az így létrejövő hatalmas – sokszor strukturálatlan adathalmazok kezelésére nem megfelelőek a hagyományos relációs adatbáziskezelő rendszerek. A Big Data technológia célja, hogy nagyméretű adathalmazok esetén biztosítsa az adatok gyűjtését, kezelését, elfogadható idő alatti visszakereshetőségét, feldolgozását. Big Data technológiát számos területen alkalmazhatnak: tudományos célokra, például a Nagy Hadronütköztető (LHC CERN) rendszerben végzett kísérletek során keletkező adatok, vagy a rádióteleszkópos űrmegfigyelések adatainak feldolgozása, kiértékelése, az emberi genom feltérképezése társadalomtudományi kutatásokra, például a mobiltelefonok cellainformációinak elemzésével következtetni lehet az emberek mozgására, mobilitására államigazgatási célokra, például az USA kormányzatában, vagy Magyarországon a népszámlálási adatok feldolgozásában elektronikus kereskedelemben, például az Amazonnál, vagy az eBaynél A Big Data rendszereket az adatok nagy mennyisége, változatossága és komplexitása jellemzi. Többdimenziós adatmodell szerint épülnek fel, melyben az adatok alapegysége a tenzor, amely egy többdimenziós mátrixnak felel meg. Ennek kezelésére speciális tenzor-alapú számítási eljárásokat alkalmaznak. Az adatok feldolgozása tipikusan több száz, vagy akár több ezer nagy sebességű, párhuzamosan működő processzort tartalmazó számítógéprendszereken történik (Massively Parallel Processing – MPP). Sok esetben az adatkezelés alapja egy keresésalapú alkalmazás (Search-Based Applications - SBA), mely képes aggregálni, normalizálni és osztályozni a strukturált, részben strukturált, vagy akár strukturálatlan adatokat.
Big Data
A nagy adatmennyiség kezelésére széleskörűen alkalmazott programozási technika a Google által 2004-ben kidolgozott MapReduce modell. A map funkció szűrést és rendezést végez, a reduce pedig összegzi az eredményt. A map a feladatot sok kis feladategységre bontja, melyet a master node szétoszt a többi node között, így azok párhuzamosan hajtódnak végre, ezzel lényegesen lerövidítve a futási időt. Mivel az adatfeldolgozás egyik szűk keresztmetszete a háttértárolók sebessége, az adatokat osztott fájlrendszeren kell elhelyezni. Az osztott fájlrendszerben az összetartozó adatok fizikailag különböző háttértárakra kerülnek, ez lehetővé teszi, hogy a feldolgozáshoz szükséges adatok beolvasása párhuzamosan történjen. Ez a programozási modell jól használható például minta alapú keresésre, vagy elosztott rendezésre. A Google ezzel a programmal végzi a világháló indexének felépítését, ezt az indexet használják a Google keresőmotorjai. Az egyik legelterjedtebb MapReduse elven működő open source alkalmazás a Hadoop. Ezt használja például a Yahoo és a Facebook is. A Big Data rendszerekből kinyert adatok további feldolgozására alkalmazott szoftverek között megtalálhatók az üzleti informatikában használt statisztikai hipotézisvizsgálatok, adatbányászati szoftverek, a mesterséges intelligencia körébe tartozó szoftverek - mint például a genetikus (az evolúció biológiából kölcsönzött alapelv szerint működő) algoritmusokon alapuló keresési technikák, gépi tanulás, és beszédfelismerés -, jelfeldolgozás, szimuláció és az idősorok elemzése. Memóriaalapú adatbázisok (In-Memory DataBase – IMDB) A memóriaárak meredek csökkenésével lehetővé vált, hogy a számítógépeket nagyon nagy kapacitású RAM memóriával építsék fel. A memóriában tárolt adatok írása, olvasása nagyságrendekkel gyorsabb, mint a háttértáron találhatóké, így egy adatbázis működését lényegesen gyorsítani lehet azzal, ha az adatbázis adatait a memóriában tároljuk. Ahhoz, hogy a nagy memória lehetőségeit jól ki lehessen használni, új adatszervezési és kezelési elvek alapján működő adatbáziskezelő rendszerekre van szükség. A memóriaalapú adatbáziskezelők oszlop alapú formátumban kezelik az adatokat a hagyományos sor alapú formátummal szemben. Míg ez utóbbi nagyon hasznos a tranzakciókezelésnél, az oszlop alapú formátum lényegesen meggyorsítja a lekérdezéseket. A legnagyobb szoftverfejlesztő cégek már megjelentek a piacon a memóriaalapú adatbáziskezelést lehetővé tevő rendszereikkel, az SAP a HANA, a Microsoft az SQL Server 2014-be integrált Hekaton, az Unicom Global cég a SolidDB, az Oracle pedig a Database In-Memory (az Oracle 12c kiegészítő csomagja) elnevezésű programcsomagot kínálja a felhasználóknak. Az IBM a saját fejlesztésű Informix adatbáziskezelő rendszerét egészítette ki memóriaalapú, oszlopszervezésű modell kezelésére alkalmas modullal. Ezek a rendszerek támogatják a hagyományos sor alapú feldolgozást is, így a nagymennyiségű tranzakció kezelése ugyanúgy megoldható velük, mint az adatok szűrése, csoportosítása, összegzése, melyet az oszlopformátumú adatkezelés tesz lényegesen gyorsabbá.
Big Data
A memóriaalapú adatkezeléshez megfelelő hardvereszközökre van szükség, ilyenek például az ORACLE cég által fejlesztett SPARC M5 és SPARC M6 alapú szervergépek, melyek 32 terabájtig bővíthető operatív memóriával rendelkeznek. A SPARC M6-32 szerverben 32 párhuzamosan működő, egyenként 12 magos processzor található.
Felhő technológia
MŰKÖDÉSI MODELLEK Virtualizáció A virtualizáció során egy fizikai számítógépen programok segítségével egy, vagy több számítógép működését szimulálják. Rendszer szintű virtualizáció esetén egy teljes számítógépet szimulálnak, mely saját operációs rendszerrel rendelkezik. Így egy fizikai gépen több operációs rendszer futtatható egy időben, tehát fizikailag egyetlen számítógép úgy működik, mintha több párhuzamosan működő számítógép lenne. Az egyik legismertebb virtualizációs szoftver a VMware. Folyamat szintű virtualizációval egyetlen program, egyetlen folyamat futtatható. A virtuális környezet a folyamat indításakor jön létre, és a folyamat befejeződésekor szűnik meg. Az egyik legismertebb ilyen környezet a Java Virtual Machine. A virtualizáció során a környezet beállításánál az erőforrásokat fixen hozzá kell rendelni a virtuális gépekhez, azonban szükség esetén az erőforrások átcsoportosíthatók. A virtualizáció lehetővé teszi az erőforrások jobb kihasználását, növeli a rendszerek rugalmasságát, megbízhatóságát és így lehetővé válik a költségek csökkentése is. Virtualizált környezetben a felhasználó nem tudja, hogy az általa futtatott alkalmazások milyen fizikai hardveren futnak, vagy éppen az adatai hol kerültek tárolásra. Felhő technológia A felhő alapú szolgáltatások szintén a virtualizáción alapulnak, de itt már a felhasználó elől teljesen rejtve marad, hogy a számára nyújtott szolgáltatások működtetése hol, és milyen eszközökkel történik, mintha egy felhő takarná el azokat. A technológia innen kapta a nevét, az ilyen rendszerek működését bemutató ábrákon felhővel jelzik a hálózaton keresztül elérhető erőforrásokat, szolgáltatásokat. A felhőalapú szolgáltatásnál az erőforrások szétosztása a folyamatok között rugalmasan és automatikusan, az üzemeltető beavatkozása nélkül történik. Hatékony felhőalapú szolgáltatást akkor lehet nyújtani, ha a felhőben sok folyamat kiszolgálása történik, így válik lehetővé az erőforrások jó kihasználása. Egy hagyományos rendszerben az erőforrásokat a legnagyobb terhelésre kellett méretezni, a felhő esetén erre nincs szükség, hiszen valószínűtlen, hogy minden folyamatnak egy időben jelentkezne a legnagyobb erőforrásigénye. Mivel a rendszer rugalmasan át tudja csoportosítani az erőforrásokat a folyamatok között, összességében sokkal kevesebb erőforrásra van szükség, mint ha minden folyamat csúcsterhelésével számolnának. Mivel az erőforrások hozzárendelése a folyamathoz az igény megjelenésekor azonnal megtörténik, a felhasználó számára úgy tűnik, hogy korlátlan erőforrások állnak rendelkezésére. Amint a folyamat már nem tart igényt egy erőforrásra, azt a rendszer elveszi tőle és akár át is adhatja egy másik folyamatnak. Mivel a felhő szolgáltatója jelentős erőforrással és szakembergárdával rendelkezik, a felhő alapú szolgáltatásokat nagy megbízhatósággal és állandó
Felhő technológia
rendelkezésre állással tudja a felhasználók számára nyújtani. A felhő szolgáltatásait szabványos mechanizmusokon keresztül lehet elérni, így különböző eszközökkel (például vékony vagy vastag kliens, mobiltelefon, laptop, PDA) is igénybe vehetők. A felhő alapú szolgáltatásoknál lehetőség van az igénybe vett szolgáltatások pontos mérésére, így a felhasználó csak azt fizeti meg, amit ténylegesen használt. Egy felhő alapú szolgáltatás jellemzői: rendelkezésre álló jelentős erőforráskészlet az erőforrások dinamikusan, és automatikusan kerülnek szétosztásra a felhasználók folyamatai között - skálázhatóság a szolgáltatások heterogén eszközökkel elérhetők a felhasználók nem ismerik a biztosított fizikai erőforrások pontos helyét és elemeit az igénybevett szolgáltatások és erőforrások pontos mérése nagyfokú hibatűrés és megbízhatóság
1. ábra: Felhőalapú rendszer
Szolgáltatási modellek (Service Models) Szolgáltatásként kínált infrastruktúra (Infrastructure as a Service IaaS) Ebben a modellben a szolgáltató csak az infrastruktúrát, a szükséges erőforrásokat biztosítja, vagyis a virtuális gépeket, a tárhelyet, a hálózati és a
Felhő technológia
tűzfalszolgáltatásokat. A felhasználó telepíti az operációsrendszert és az alkalmazásokat a virtuális gépekre, így az ő feladata azok kiválasztása, üzemeltetése és karbantartása. A modell előnye, hogy a felhasználó maga dönthet minden szoftverelemről és teljes egészében felügyeli azok működését. Hátránya, hogy az üzemeltetési költség ugyanakkora, mintha saját informatikai rendszert üzemeltetnének, egyedül a hardvereszközök beszerzésére és karbantartására nem kell költeni. Szolgáltatásként kínált platform (Platform as a Service - PaaS) Ebben a modellben a szolgáltató nemcsak az infrastruktúrát, hanem a szoftverkörnyezetet is biztosítja, így például a virtuális gépeken futó operációs rendszereket, web-szervert, adatbázisszervert is. Az alkalmazások kiválasztása a felhasználó feladata, így akár saját fejlesztésű alkalmazásokat is használhat. Az alkalmazások karbantartása, üzemeltetése továbbra is a felhasználó feladata. A modell előnye, hogy nem kell kialakítani a hardver infrastruktúrát, nem kell licencelni a platformot biztosító rendszerszoftvereket, nem kell azok üzemeltetésével, frissítésével foglalkozni. A felhasználó maga választja ki az alkalmazásokat és maga állítja be azok működési paramétereit is. Hátránya, hogy az alkalmazások üzemeltetését is neki kell megoldania, így az előző modellhez képest kevesebb, de még mindig jelentős üzemeltetési költsége van a rendszernek. Szolgáltatásként kínált szoftverek (Software as a Service - SaaS) Ez a legmagasabb szolgáltatási szint, itt nemcsak a környezetet, hanem az alkalmazásokat is a szolgáltató biztosítja. A felhasználó az alkalmazások csak néhány konfigurációs beállítását tudja megváltoztatni, egyébként semmi ráhatás nincs a rendszer és az alkalmazások kiválasztására, üzemeltetésére. A felhasználó különböző eszközökkel kapcsolódhat a szolgáltatáshoz, így normál, vagy vékony kliens gépekkel, tabletekkel, esetleg mobiltelefonokkal. Az alkalmazások általában web-böngésző program segítségével használhatók. A modell előnye, hogy nincs szükség informatikai beruházásra, a rendszer használata gyorsan bevezethető, a szoftverek napra kész állapotát, megfelelő rendelkezésre állását a szolgáltató biztosítja, a megfelelő adatvédelemről, hálózati biztonságról szintén ő gondoskodik, a felhasználónál a rendszer üzemeltetési költsége minimális, IT beruházásra pedig – a kliens gépeket leszámítva - egyáltalán nincs szükség. A szolgáltatás díját a felhasználó havonta, vagy évente fizeti a szolgáltatónak az igénybe vett szolgáltatásoknak megfelelően, így ez a költség jól tervezhető. Hátránya, hogy kész alkalmazások közül lehet csak választani, nincs lehetőség a felhasználó egyedi igényeinek kiszolgálására.
Felhő technológia
2. ábra Felelősségi körök megoszlása a szolgáltatási modellekben Telepítési modellek (Deployment Models) Privát felhő (Private cloud) Privát felhő esetén a felhő infrastruktúrát csak egyetlen felhasználó (szervezet) használhatja. Ebben az esetben a szolgáltató többnyire csak az infrastruktúrát biztosítja, a rendszer felügyelete a felhasználó hatáskörébe tartozik. Előnye a nagy adatbiztonság, az érzékeny adatok feletti teljes kontroll. Hátránya, hogy a maximális terhelésre kell tervezni, és az IT költségek nem csökkenthetők lényegesen az alkalmazásával. Egy szervezet dönthet úgy, hogy nem külső szolgáltatót vesz igénybe, hanem saját adatközpontjában hozza létre a felhő infrastruktúrát, ezt belső felhőnek (internal cloud) nevezzük. Előnye, hogy teljesen biztonságos és kontrollálható. Hátránya, hogy komoly beruházást igényel, jelentős üzemeltető személyzettel működtethető. Csak olyan nagy cégeknél éri meg ezt a modellt alkalmazni, ahol rendkívül érzékeny adatokkal dolgoznak, és nagyon fontos az adatok megfelelő védelme. Közösségi felhő (Community cloud ) Közösségi felhő akkor jön létre, ha egy privát felhő infrastruktúrát több szervezet megosztva használ. Csak olyan szervezeteknek érdemes társulniuk
Felhő technológia
egy közösségi felhő létrehozásában, amelyek azonos elvárásokat támasztanak a szolgáltatással szemben, pl. azonos biztonsági és megfelelési követelményeket. A felhő működhet valamely szervezet saját adatközpontjában, de működtetheti akár külső szolgáltató is. Előnye, hogy az üzemeltetési költségek megoszlanak a szervezetek között. Hátránya azonban a privát felhőhöz képest, hogy az egyedi igényeket nem lehet figyelembe venni. Sok esetben a társult szervezetek hasonló működésűek, így ugyanakkor jelentkezik mindegyiknél a legnagyobb erőforrásigény, ezért az infrastruktúrát a legnagyobb terhelésre kell tervezni. Publikus felhő (Public cloud) A publikus felhőt egy szolgáltató cég a saját adatközpontjában, a saját eszközeivel működteti számos szervezet számára, melyek a szolgáltatást az Interneten keresztül tudják igénybe venni. Itt nagyon fontos annak biztosítása, hogy az egyes felhasználók teljesen el legyenek izolálva egymástól. Előnyei, hogy a felhasználónál nincs szükség komolyabb IT beruházásra és személyzetre, a fizetés pedig a felhasználás alapján történik, így lényegesen olcsóbb, mint a privát felhő. Hátránya, hogy az adatok egy külső cég által működtetett tárolón kerülnek elhelyezésre - így kikerülnek a felhasználó közvetlen felügyelete alól -, és nyilvános hálózaton közlekednek a felhasználó és a szolgáltató rendszere között. E két dolog jelentős biztonsági kockázatot rejt magában, ezért nagyon fontos az adatok megfelelő titkosítása és védelme. Technikai kialakításában a privát és a publikus felhőtípus nem sokban különbözik egymástól, a jelentős eltérés a nyújtott biztonsági szintben van. Hibrid felhő (Hybrid cloud) Hibrid felhő két, vagy több felhőszolgáltatás összekapcsolásával jön létre. Ezek között lehet privát, közösségi, vagy publikus felhő is. A felhők továbbra is különálló egységként működnek, de szabványosított kapcsolaton keresztül adatokat, alkalmazásokat tudnak átadni egymásnak. Az egyik tipikus alkalmazása, amikor egy cég az érzékeny adatait egy privát felhőben kezeli, de ezt a felhőt összekapcsolja egy publikus felhővel, ahol különböző üzleti intelligencia szoftverek által nyújtott szolgáltatásokat vesz igénybe. Másik lehetséges alkalmazása, ha a cég a saját privát felhőjének kiterjesztéseként vesz igénybe publikus felhőszolgáltatást. Ilyenkor az alapvető feladatokat a privát felhőben végzi, de ha annak erőforrásai kevésnek bizonyulnak, igénybe veszi a publikus felhőt is. Ezt a cloud bursting technológia teszi lehetővé, mely tulajdonképpen egy alkalmazás, ami a privát felhőben fut, és amikor az erőforrásigény megnövekszik, a feladatokat áthelyezi a publikus felhőbe. Ennek a megoldásnak az az előnye, hogy a publikus felhőszolgáltatást csak akkor veszi igénybe, ha szüksége van rá, fizetni pedig a használat arányában kell érte.
Felhő technológia
3. ábra Hibrid felhő A felhő technológia előnyei Költségkímélő A belső felhő kivételével nincs szükség jelentős informatikai beruházásra és az üzemeltetési költségek is jóval alacsonyabbak, mint a saját informatikai rendszer esetén. Méretezhető A szolgáltatás mindig az igényeknek megfelelő mennyiségű erőforrást biztosítja, így plusz erőforrásokat tud adni, ha megnövekszik a számolási igény, amelyekre pedig nincs szükség, azokat elveszi. Helyfüggetlen Nincs jelentősége annak, hogy az eszközök fizikailag hol helyezkednek el, a felhasználó számára bárhonnan igénybe vehető a szolgáltatás. Rendelkezésre állás A szolgáltató cégek jelentős eszközparkkal rendelkeznek, így az esetleges hardverhibák esetén is folyamatosan biztosítani tudják a szolgáltatást, a megfelelő szakembergárda pedig biztosítja a szolgáltatás magas színvonalát. Folyamatos támogatás A szolgáltató szakemberei segítséget nyújtanak a felhasználóknak a megfelelő szolgáltatás kiválasztásában és a felhasználás során felmerülő problémák megoldásában.