Virtualizációs technlógiák és alkalmazásaik Számítási felhők (Clud cmputing) Tóth Dániel Budapesti Műszaki és Gazdaságtudmányi Egyetem Méréstechnika és Infrmációs Rendszerek Tanszék
Definíció? Mi a Clud Cmputing, mi nem a Clud Cmputing? Buzzwrd Valami mágikus izé az Interneten, ami végtelen számítási kapacitást és tárhelyet ad Olcsó alternatíva MS Office-ra Olcsó alternatíva a saját infrastruktúrára Virtualizáció Grid cmputing Ez mind kicsit igaz is, meg nem is Nem fgunk tudni frappáns definíciót adni rá Mire való? Még az ipar sem tudja pntsan - de alakul
Definíció? Szlgáltatás rientált architektúra Virtualizáció, Autnóm üzemeltetés Clud Alapvetően egy üzleti mdell Utility cmputing Egy hatéknyabb módja annak, hgy az erőfrrásk és az igények találkzzanak SOA: értéknövelt szlgáltatásk, más szlgáltatásk egymásra építésével mint a beszállítók, gyártók, visznteladók Utility cmputing: számítási erőfrrásk, mint közművek legyen lehetőség skálázásra ne kelljen kezdeti befektetés Virtualizáció: hatéknyság növelése érje meg anyagilag használjuk ki, hgy autmatizáltan felügyelhető
Clud vs. Virtualizáció Mi vlt idáig? Virtuális gépek autmatikus elhelyezése Alkalmazáskkal is fglalkzni kell! Mi kerül ebbe? Talán a felhasználó? Ezt ki indítja és Egy bizts: hgyan? API-n keresztül! Template kezelés ne Ezt ki csinálja a végfelhasználó meg? felelőssége legyen! Induljn Ezt ki indítja és autmatikusan, ha miért? nő a terhelés! Virtualizáció közpnti felügyelő Ne kelljen a Ezt ki felhasználónak üzemelteti? fglalkznia vele Mindenütt és ki fg költségelszámlás ezért az egészért fizetni, milyen kell! alapn? Ezt ki üzemelteti? Ne kelljen beruházni, hardverrel fglalkzni. Kapjuk készen!
Clud rétegei SaaS Sftware as a Service Szlgáltatás a végfelhasználók számára Ggle Apps, Ltus Live, WebEx, Facebk PaaS Platfrm as a Service ( platfrm virtualizáció!) Alkalmazás futtatókörnyezet, servlet knténer, adatbázis PHP, JavaEE, OSGi, ASP.NET, SQL, NSQL, *MQ IaaS Infrastructure as a Service Szlgáltató nagy gépparkkal Virtuális gépek, hálózat, tárhely
Ötlet: Prbléma Alkalmazási példa vlt Bármi hasnlóság a Farmville-lel a véletlen műve : ) csináljunk egy buta kis játékt, lehessen benne fejlődni vigyünk bele szciális aspektust, akkr már kevésbé lesz buta kis játék a lényeg, hgy kellően addiktív Facebk? próbáljuk meg eljuttatni Ez vlt a a példa lehető krábban legtöbb emberhez Bele kéne próbáljunk pénzt Mi történt keresni velük rajta az reklámmal, elmúlt évben? virtuális javak árusításával stb. integrálni - Minden csda 3 napig tart a Farmville népszerűsége csökken Bérelni kéne Hgyan - Más hzm hasnlóan be a szciális sikeres játéka aspektust? mst nincs Nulláról a cégnek felépíteni nehéz, lassú pnt annyit - Szmrúak vagyunk? Nem: tökéletes alkalmazási példa Hgyan fgm eljuttatni sk emberhez, amennyi mekkra éppen cludra, miután szükségtelenné vált, egyszerűen nem infrastruktúra bérlik kell hzzá? kell tvább az erőfrráskat Ha bejön, 10000 szerver is kevés Ha nem jön be, 1 szervert is kár vlt rááldzni Mennyi idő kiépíteni ezt az infrastruktúrát? Ha nem építem ki az emberek ráunnak az elérhetetlen szerverre bukás!
Élő alkalmazási példa Vide streaming szlgáltatás Régebbi nevén VOD (Vide n demand) Bnylult Prémium tartalm srzatk, filmek, architektura, élő közvetítések -> a Terhelésfüggő felhasználók fizetnek érte! PaaS NSQL Szerteágazó kapcslódó szlgáltatásk igénybevétel Kihívásk skálázás Kedvencek, hasnló tartalmak, személyreszabás, számlázás Több régióra szétsztás, cache nde-k Nagyn ingadzó össz-igénybevétel Ráadásul a különböző tartalmak népszerűsége nagyn eltérő Nagy tárlt adatmennyiség Nagy sávszélesség-igény Földrajzi elsztás Jó rendelkezésreállás (Fizető ügyfelek! Itt nincs lyan, hgy best effrt )
IaaS Virtualizációval közvetlen kapcslatban lévő réteg Lényegében virtuális gépek létrehzása, törlése, klónzása, átméretezése, visszatöltése felhasználók számára könnyen igénybevehető módn (a szlgáltató részéről emberi közreműködés nélkül) Fnts új követelmények: Több felhasználó egy infrastruktúrán elválasztás Számlázás, használattal aránysan
IaaS tipikus fgalmai Image előtelepített virtuális gép sabln Flavur virtuális gép díjcsmag, CPU, RAM, diszk erőfrrás méretek Virtual machine / instance / server etc. Netwrk Address virtuális géphez rendelhető IP cím Netwrk általában van külön publikus és privát hálózat, néha VPN is Security Grups szlgáltató-ldali tűzfal Blck strage virtuális géphez rendelhető tárhely File strage virtuális gép Image-ek, telepíteni való szftverek tárlása (kicsit PaaS jellegű)
Egy IaaS clud cntrller feladatai API-t biztsítani a felhasználók felé Beleértve jgsultságkezelés, hitelesítés Elszámlás, költségek kezelése Infrastruktúra erőfrrásainak kezelése Nyilvántartás Allkáció, vezérlés Virtuális gép életciklus kezelése Virtuális gép indításakr sablnból máslat készítés esetleg knvertálás Hst név, hálózati cím beállítása Hzzáférési kulcsk, jelszavak virtuális gépbe injektálása Leállítás, megsemmisítés Menet közben reknfigurálás Opcinális: hálózati cím menet közbeni átadása, blkks eszköz menet közbeni fel/lecsatlása Akár virtuális gép átméretezése
Kereskedelmi IaaS szlgáltatók Amazn EC2 (Elastic Cluds) Rackspace CludServers Terremark GGrid Privát (saját telepítésű vezérlő) Eucalyptus (EC2 API) OpenStack (EC2+Rackspace API) OpenNebula (OCCI API) VMware vclud Directr (VClud API)
Privát, hibrid IaaS Privát clud? Nem ellentmndás ez? Megldatlan prblémák publikus cludban: Biztnság gyakrlatilag a szlgáltatóban meg kell bízni, virtuális gépek a hszt felől kiszlgáltatttak Rendelkezésre állás szlgáltatóban meg kell bízni (apró betűs részt ellvasni a szerződésben) Szlgáltatási szint szlgáltatóban meg kell bízni, + apró betűs rész Nem minden feladatt lehet kivinni Egy cégnek lehet már meglévő infrastruktúrája is, amit házn belül szeretne minél jbban hasznsítani Hibrid clud: Egyféle futtatókörnyezet van kívül és belül, tetszőlegesen átrakható Érzékeny feladatkat házn belül tartani Kevésbé érzékeny feladatkat ha elfér házn belül futtatni, ha nem fér el, akkr kívülről kipótlni az erőfrráskat
IaaS clud belseje (Eucalyptus) Walrus Filestre S3 API Eucalyptus Clud EC2 API Strage Cntrller Blck devices Availability Zne Cluster Cntrller Firewall Netwrk CC Hst Hst Hst Hst VM Image dwnlad Nde Cntrller VM VM NC NC Nde Cntrller VM VM iscsi Vlume VM VM
IaaS clud belseje (Openstack)
Finmságk: NaaS Netwrk as a Service IaaS felhőben a hálózati architektúra kötött Pl. EC2, Eucalyptus: egy hálózati interfész, egy privát IP címmel + NAT-tal egy publikus IP cím a privátra irányítva Esetleg IP szintű tűzfal a VM előtt Ha ennél több kell: Saját magam akark címeket sztani (mert lyan az alkalmazásm) Nem jó a NAT-lt publikus IP cím (biznys alkalmazásk nem szeretik: JMX, MySQL cluster) Több hálózati interfész kell Több szeparált hálózat kell (egy adtt felhasználónak) Nem elég az IP szintű ( layer3 ) hálózat Skálázhatósági prblémák (max 4096 VLAN lehet) Visznylag új terület Példa: Openstack Quantum
Kitekintés, PaaS, SaaS PaaS már nem virtuális gép, hanem alkalmazás kmpnens a fő fgalm Futtatókörnyezet majd megldja a terheléselsztást, skálázást stb Nem könnyű megvalósítani, tipikus feladatk Futtatókörnyezet telepítése virtuális gépekbe Igény esetén virtuális gép indítása Futtatókörnyezet reknfigurációja pl. új gép belépésekr Alkalmazás kmpnensek telepítése futtatókörnyezetre (alkalmazásfüggő!) Mnitrzás, alkalmazás szintjén is (alkalmazásfüggő!) Szabályzás, autnóm döntések a mnitrztt metrikák alapján Költségek követése Régi alkalmazásk cludra illesztése?
Kitekintés, PaaS, SaaS Terhelés IP address Ezt kell egy PaaS vezérlőnek autmatikusan leszerveznie Virtual Machine Virtual Machine Virtual Machine AC1 AC2 AC1 App. runtime! Agent App. runtime Agent Lad balancer Agent OS OS OS Infrastruktúra, valahl tt lenn Alul nyilván egy IaaS vezérlő található
PaaS PaaS vezérlők (saját alkalmazást lehet integrálni bele) Rightscale Kaav Enstratus MS Azure Manapság tipikus: képesek az ügyfél saját privát IaaS rendszerét is vezérelni, DE a vezérlő a szlgáltató infrastruktúráján fut PaaS szlgáltatásk (alkalmazást eleve rá kell fejleszteni) Amazn Simple DB, Simple Queue Service, Simple Strage Service (S3)
DEMO Publikus IaaS szlgáltató Rackspace CludServers Webes kezelőfelület Belépés a létrehztt virtuális gépbe Virtuális hardver megtekintése Költségelszámlási felület
Amazn AWS Rackspace http://aws.amazn.cm/prducts/ Tvábbi infrmáció IaaS szlgáltatásk: EC2 (cmpute), S3 (file strage), EBS (blck strage), VPC (EC2 VPN mögött), CludWatch (mnitring), AutScale (autmatikus EC2 gép indítás) PaaS szlgáltatásk: RDS (relációs adatbázis), SQS (message queue), SNS (ntificatins), FPS (nline fizetés Amaznn keresztül) API dkumentációk: http://aws.amazn.cm/dcumentatin/ IaaS: CludServers, CludFiles http://www.rackspaceclud.cm/clud_hsting_prducts/servers/ PaaS: CludSites (PHP/MySQL,.NET/MsSQL hsting) http://www.rackspaceclud.cm/clud_hsting_prducts/sites/ API dkumentáció: http://dcs.rackspaceclud.cm/servers/api/cs-devguide-latest.pdf IaaS API aggregátrk http://deltaclud.rg/ (szlgáltatófüggetlen általáns API - egyszerű) http://dasein-clud.surcefrge.net/ (szlgáltatófüggetlen általáns API - fullextrás) http://www.jcluds.rg/ (Java kliens könyvtár mindenféle szlgáltatóhz)