1 Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod Vývoj webových aplikací v prostředí cloudu D...
Univerzita Hradec Kr´ alov´ e Fakulta informatiky a managementu Katedra informatiky a kvantitativn´ıch metod
V´ yvoj webov´ ych aplikac´ı v prostˇred´ı cloudu Diplomov´a pr´ace
Autor: Martin Tmˇej Studijn´ı obor: Aplikovan´a informatika
Vedouc´ı pr´ace: doc. Ing. Filip Mal´ y, Ph.D.
Hradec Kr´alov´e
Duben 2014
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem diplomovou pr´aci zpracoval samostatnˇe a s pouˇzit´ım uveden´e literatury.
V Hradci Kr´alov´e dne 30. dubna 2014
Martin Tmˇej
Podˇ ekov´ an´ı Dˇekuji vedouc´ımu pr´ace doc. Ing. Filipu Mal´emu, Ph.D. za metodickou, pedagogickou a odbornou pomoc pˇri zpracov´an´ı m´e diplomov´e pr´ace.
Anotace Diplomov´a pr´ace se zab´ yv´a problematikou cloud computingu, konkr´etnˇe poskytovatelem Microsoft Windows Azure. Nejprve popisuje obecnou charakteristiku cloud computingu. Jsou zde uvedeny definice, v´ yhody a rizika a sezn´amen´ı se s nejvˇetˇs´ımi poskytovateli. D´ale n´asleduje pops´an´ı metody v´ yvoje aplikac´ı s vyuˇzit´ım sluˇzeb platformy Microsoft Windows Azure. Posledn´ı ˇc´ast je vˇenov´ana uk´azce implementace cloud sluˇzby v re´aln´e aplikaci a nasazen´ı aplikace do prostˇred´ı Microsoft Windows Azure.
Annotation Title: Developing web appliacation in cloud environment This Diploma Thesis describes the term of cloud computing especially Microsoft Windows Azure provider. Introduction enters the common characteristics of cloud computing. The following section covers benefits and disadvantages and overview the biggest cloud providers. In next chapter is describes the methodology of application development using services of the Microsoft Windows Azure platform. Last chapter is dedicated to a practical illustration of implementation cloud service and her publish into Microsoft Windows Azure environment.
Cloud computing je dnes bˇeˇznˇe vyuˇz´ıvan´ y term´ın. Lze se o nˇem doˇc´ıst t´emˇeˇr vˇsude, v ˇcl´anc´ıch, ˇcasopisech i na internetu. A pˇresto st´ale mnoho lid´ı, nezn´a pˇresn´ y v´ yznam tohoto slova. Proto je tak´e st´ale mnoho prodejc˚ u, kteˇr´ı se chopili term´ınu cloud computing a pouˇzili ho pro produkty, kter´e s n´ım nemaj´ı nic spoleˇcn´eho. Tato pr´ace se zab´ yv´a problematikou v´ yznamu cloud computingu a jeho v´ yhody a nev´ yhody. Velice problematick´a je pˇredevˇs´ım ot´azka bezpeˇcnosti a regulace. Na bezpeˇcnost cloud computingu lze nahl´ıˇzet z mnoha u ´hl˚ u. Nˇekdo je pˇresvˇedˇcen, ˇze cloud je nebezpeˇcn´e m´ısto. Je to pˇredevˇs´ım z toho d˚ uvodu, ˇze jakmile jsou data odesl´any do cloudu, uˇzivatel nem´a ˇza´dn´e informace o tom, kde se jeho data fyzicky nach´az´ı. T´ım p´adem nad nimi nem´a u ´plnou kontrolu a vznik´a vˇetˇs´ı riziko ohroˇzen´ı jejich bezpeˇcnosti. Na druh´e stranˇe cloud computing se neust´ale vyv´ıj´ı a s n´ım i zabezpeˇcen´ı uloˇzen´ ych dat. Existuj´ı i sluˇzby, kter´e bezpeˇcnost dat pˇr´ımo zaruˇcuj´ı, napˇr´ıklad sluˇzba security as a service. Pr´ace je z velk´e ˇc´asti vˇenov´ana platformnˇe Microsoft Windows Azure. Tato platforma je nejmladˇs´ı ze tˇr´ı hlavn´ıch poskytovatel˚ u cloud computingu. Ofici´aln´ı spuˇstˇen´ı probˇehlo v roce 2009. Windows Azure je cloud computing technologie, kter´a umoˇzn ˇuje provozovat aplikace v datov´ ych centrech spoleˇcnosti Microsoft. Podle dˇelen´ı cloud computingov´ ych sluˇzeb, spad´a tato platforma do kategorie PaaS – Platform as a Service. Microsoft uvedl na trh svou platformou v reakci na konkurenˇcn´ı produkty od spoleˇcnosti Amazon a Google. Platforma je nejprve pˇredstavena jako celek v r´amci kapitoly, zab´ yvaj´ıc´ı se v´ yˇse zm´ınˇen´ ymi poskytovateli cloud computingu. Jednotliv´e sluˇzby platformy jsou rozebr´any a pops´any z pohledu poˇzadavk˚ u a v´ yvoje aplikac´ı v cloud computingu. Ke kaˇzd´e sluˇzbˇe je uk´az´an implementaˇcn´ı pˇr´ıklad. S touto platformou, konkr´etnˇeji se sluˇzkou Windows Azure Storage komunikuje i uk´azkov´a aplikace. Z´avˇer pr´ace je vˇenov´an nasazen´ı aplikace do prostˇred´ı Windows Azure. Cel´ y postup nasazen´ı je detailnˇe pops´an jak z pohledu Java tak .NET aplikace.
1.1
C´ıl pr´ ace
C´ılem pr´ace je charakteristika cloud computingu. Jej´ı souˇca´st´ı je definov´an´ı pojmu co je to cloud computing, nast´ınˇen´ı jeho v´ yhod a rizik a sezn´amen´ı se s nejvˇetˇs´ımi poskytovateli. Dalˇs´ım c´ılem je pops´an´ı metodik v´ yvoje aplikac´ı a nast´ınˇen´ı implementace sluˇzeb, kter´e je moˇzn´e vyuˇz´ıt v platformˇe Microsoft Windows Azure. Tato pr´ace si tak´e klade za c´ıl uk´azat
1
implementaci cloud sluˇzby v re´aln´e aplikaci a pops´an´ı nasazen´ı aplikace do prostˇred´ı Microsoft Windows Azure.
2
2
Cloud computing a jeho v´ yznam
Cloud computing je ve sv´e podstatˇe realizace dlouhodob´e ideje unity computing“, kde ” cloud je metafora pro internet, odvozen´a z grafick´eho zn´azornˇen´ı internetu jako poˇc´ıtaˇcov´e s´ıtˇe ve tvaru mraku (obr. 1). Unity Computing je koncept, kter´ y zahrnuje pˇr´ıstup k v´ ypoˇcetn´ım zdroj˚ um a platbu pouze za zdroje, kter´e jsou vyuˇzity. Velikost platby stanov´ı pˇr´ısluˇsn´e mˇeˇric´ı pˇr´ıstroje, jako je tomu napˇr´ıklad u spotˇreby elektˇriny nebo vody.
Obr´azek 1: Grafick´e zn´azornˇen´ı internetu jako poˇc´ıtaˇcov´e s´ıtˇe ve tvaru mraku [1]. Cloud computing pˇredstavuje z´asadn´ı zmˇenu od souˇcasn´eho v´ yvoje, provozu a ˇr´ızen´ı IT syst´em˚ u. Z ekonomick´eho hlediska, m´a jeho pˇrijet´ı nejen potenci´al ve sn´ıˇzen´ı n´aklad˚ u, ale tak´e v mnohem vˇetˇs´ı pruˇznosti a hbitosti pˇri reakci na zmˇeny trhu. Pro rozhodnut´ı, kdy m´a smysl pˇrej´ıt na toto ˇreˇsen´ı, je nutn´e plnˇe pochopit jeho klady a z´apory, kter´e budou pops´any ve druh´e a tˇret´ı kapitole.
2.1
Definice
Jelikoˇz je cloud computing v´az´an na v´ıce technologi´ı (HW virtualizace, v´ıcej´adrov´e procesory, Grid computing, SOA architektura, webov´e sluˇzby a dalˇs´ı) nen´ı jednoduch´e definovat co je a co uˇz nen´ı cloud computing. Definic existuje nˇekolik, ˇz´adn´a nen´ı ovˇsem ofici´aln´ı. 3
Pokud by to bylo vzato z pohledu rozˇs´ıˇrenosti a poˇctu citac´ı vyhr´av´a definice, kterou vydal NIST (N´arodn´ı institut standard˚ u a technologie). “Cloud computing je model umoˇzn ˇuj´ıc´ı pohodln´y pˇr´ıstup ke sd´ılen´ym konfigurovateln´ym v´ypoˇcetn´ım prostˇredk˚ um (s´ıtˇe, servery, datov´a u ´loˇziˇstˇe, aplikace a sluˇzby) odkudkoliv, tzv. on-demand. Tyto prostˇredky mohou b´yt vyuˇz´ıv´any nebo opouˇstˇeny s minim´aln´ım u ´sil´ım v ˇr´ızen´ı a komunikaci s dodavatelem sluˇzby. Model Cloud computingu zvyˇsuje dostupnost sluˇzeb“ [2]. Dalˇs´ı definici vytvoˇrila spoleˇcnost Gartner, kter´a definuje cloud computing jako prostˇredky, kter´e jsou ˇsk´alovateln´e a dok´aˇz´ı pruˇznˇe reagovat na zmˇeny z´atˇeˇze. Tyto prostˇredky jsou nab´ızeny jako sluˇzba v´ıce z´akazn´ık˚ um prostˇrednictv´ım internetu [3]. Ve vˇsech definic´ıch i ve v´ yˇse zde uveden´ ych lze naj´ıt 5 kl´ıˇcov´ ych bod˚ u (princip˚ u), kter´ y jsou stˇeˇzejn´ı pro cloud computing.
2.1.1
Principy cloud computingu
Pˇet hlavn´ıch princip˚ u cloud computingu, kter´e se vyskytuj´ı ve vˇsech definic´ıch [4]. • Samoobsluˇzn´ y syst´em - uˇzivatel si s´am konfiguruje sluˇzbu. M˚ uˇze pˇrid´avat i odeb´ırat v´ ypoˇcetn´ı prostˇredky, aniˇz by musel jakkoliv komunikovat s poskytovatelem nebo technikem sluˇzby. • S´ıt’ov´ y pˇr´ıstup - veˇsker´e sluˇzby jsou dostupn´e pˇres internet. • Sd´ılen´ı zdroj˚ u - poskytovan´ y hardware je sd´ılen mezi vˇsechny uˇzivatele, aby bylo dosaˇzeno maxim´aln´ı efektivity. Sd´ıl´ı se procesorov´ y ˇcas, diskov´a pole, operaˇcn´ı pamˇet’ a s´ıt’ov´a konektivita. Uˇzivatel nem´a informace o um´ıstˇen´ı datov´eho centra, ve kter´em se nach´az´ı jeho data. • Elasticita a ˇsk´alovatelnost - uˇzivatel si s´am zvyˇsuje nebo sniˇzuje v´ ypoˇcetn´ı v´ ykon na z´akladˇe sv´ ych potˇreb, at’ uˇz finanˇcn´ıch nebo v´ ykonnostn´ıch. Jak´ekoli zmˇeny se projev´ı okamˇzitˇe. • Monitoring - spotˇrebov´avan´e zdroje jsou monitorovan´e a za jejich provoz se vˇetˇsinou plat´ı metodou pay-as-you-go. To znamen´a, ˇze uˇzivatel plat´ı pouze za to, co vyuˇz´ıv´a. Druh´a moˇznost platby je pˇres bal´ıˇcky, kter´e nab´ız´ı r˚ uzn´ı poskytovatel´e.
4
Samoobsluˇ zn´ y syst´ em Uˇzivatel´e spravuj´ı sv´e v´ ypoˇcetn´ı prostˇredky pomoc´ı jednoduch´eho rozhran´ı, kter´e umoˇzn ˇuje kompletnˇe automatizovan´e reakce a ˇr´ızen´ı sluˇzeb. Sluˇzby jsou navrˇzeny tak, aby poslouˇzili vˇsem specifick´ ym potˇreb´am uˇzivatel˚ u. D´ıky tomu mohou b´ yt nastaveny atributy, jak´ ymi jsou napˇr´ıklad dostupnost, doba odezvy, pomˇer cena/v´ ykon. Vˇse je plnˇe automatick´e, proto pokud uˇzivatel nechce, nemus´ı se o nic starat. Jednoduˇse si zvol´ı profil poˇzadovan´eho chov´an´ı. Veˇsker´e zdroje jsou poskytov´any on-line a bˇehem nˇekolika minut. Sluˇzba umoˇzn ˇuje automatick´e reakce pˇri nasazen´ı nov´ ych virtu´aln´ıch instanc´ı, stejnˇe tak i jejich voln´e ruˇsen´ı. Pokud jejich vyt´ıˇzen´ı poklesne a nen´ı potˇreba dalˇs´ıch instanc´ı, mohou pˇrej´ıt do stavu off-line, zruˇs´ı se a nebudou u ´ˇctov´any [5]. S´ıt’ov´ y pˇ r´ıstup Veˇsker´e sluˇzby a programy jsou uloˇzeny na serverech, d´ıky kter´ ym k nim mohou uˇzivatel´e pˇristupovat odkudkoliv pomoc´ı webov´eho prohl´ıˇzeˇce, tenk´eho nebo tlust´eho klienta.
Sd´ılen´ı zdroj˚ u Veˇsker´e v´ ypoˇcetn´ı prostˇredky jsou sd´ıleny mezi vˇsechny uˇzivatele, tak aby bylo doc´ıleno co nejvˇetˇs´ı efektivity vyuˇzit´ı v´ ypoˇcetn´ıch prostˇredk˚ u. Multi-tenancy pˇr´ıstup (princip softwarov´e architektury, kde jedin´a instance softwaru bˇeˇz´ı na serveru, kter´ y slouˇz´ı v´ıce uˇzivatel˚ um) zajiˇst’uje sd´ılen´ı hardwaru mezi uˇzivatele, ti si ale t´eto skuteˇcnosti nejsou vˇedomi. Kaˇzd´ y uˇzivatel je bezpeˇcnˇe izolov´an od ostatn´ıch a nem´a tak ˇz´adn´e informace o tom kdo s n´ım hardware vyuˇz´ıv´a. Sd´ıl´ı se procesorov´ y ˇcas, diskov´ y prostor, operaˇcn´ı pamˇet’ i s´ıt’ov´a konektivita. Odliˇsn´e fyzick´e a virtu´aln´ı zdroje jsou dynamicky pˇridˇelov´any a odeb´ır´any na z´akladˇe poˇzadavk˚ u z´akazn´ıka. Pravidlem je nemoˇznost urˇcen´ı pˇresn´e lokality virtu´aln´ıho stroje v datov´em centru poskytovatele. Uˇzivatel si m˚ uˇze pouze zvolit, do jak´eho svˇetad´ılu chce um´ıstit sv˚ uj virtu´aln´ı server [6].
5
Elasticita a ˇ sk´ alovatelnost S pˇr´ıchodem obrovsk´ ych datov´ ych center pˇriˇsla i schopnost ˇsk´alov´an´ı v´ ypoˇcetn´ıch zdroj˚ u. Tato schopnost umoˇzn ˇuje automatick´e sniˇzov´an´ı a navyˇsov´an´ı zdroj˚ u v d˚ usledku jejich vyt´ıˇzenosti a to vˇse bez jak´ehokoliv z´asahu do infrastruktury. Z pohledu poskytovatele je smyslem cloud computingu dos´ahnout co nejvˇetˇs´ıch u ´spor z rozsahu spr´avou velmi velk´ ych v´ ypoˇcetn´ıch datov´ ych center. Obr´azek ˇc. 2. zn´azorˇ nuje n´aklady jednoho uˇzivatele na provoz jedin´e softwarov´e aplikace pomoc´ı r˚ uzn´ ych druh˚ u poˇc´ıtaˇcov´ ych zdroj˚ u. Jedna aplikace bˇeˇz´ı v rozd´ıln´ ych v´ ypoˇcetn´ıch prostˇred´ıch, poˇc´ınaje neefektivn´ım dedikovan´ ym serverem aˇz do masivnˇe ˇsk´alovateln´eho gridu.
´ Obr´azek 2: Uspory z rozsahu v cloud computingu [7] Vlevo je velmi efektivn´ı vyuˇzit´ı poˇc´ıtaˇcov´ ych zdroj˚ u a vpravo, velmi neefektivn´ı vyuˇz´ıv´an´ı zdroj˚ u. Body na kˇrivce oznaˇcuj´ı druhy v´ ypoˇcetn´ıch zdroj˚ u, kter´e slouˇz´ı urˇcit´e skupinˇe [8] : • Neefektivn´ı servery - n´aklady na spr´avu jednoho serveru v datov´em centru jsou pˇribliˇznˇe tis´ıc dolar˚ u roˇcnˇe.
6
• Efektivn´ı servery a mal´e clustery - pokud je uˇzivatelsk´a z´akladna od stovek do tis´ıce uˇzivatel˚ u, m˚ uˇze b´ yt tato varianta pomˇernˇe u ´ˇcinn´a, pokud je na serveru spuˇstˇena pouze jedna aplikace. T´ım vzniknou pomˇernˇe n´ızk´e n´aklady na jednoho uˇzivatele. • Mainframe a velk´e Unix clustery - mohou zpracov´avat velmi velk´e datab´azov´e aplikace tis´ıc˚ u aˇz des´ıtek tis´ıc uˇzivatel˚ u. • Gridy - vyuˇzit´ı od stovek tis´ıc aˇz do jednoho milionu uˇzivatel˚ u, je oblast, kde Software as a Service (SaaS) m˚ uˇze efektivnˇe fungovat. Obchodn´ı aplikace nab´ızen´e SaaS prodejci pˇredstavuj´ı ˇsk´alovateln´ y probl´em, protoˇze vˇetˇsinou jde o aplikace vyuˇz´ıvaj´ıc´ı transakˇcn´ı datab´azi. • Velk´e gridy - soubˇeˇznˇe pracuj´ıc´ıch uˇzivatel˚ u je v´ıce jak jeden milion. • Velk´ y grid s podporou ˇsk´alovatelnosti - populace uˇzivatel˚ u je v ˇra´du des´ıtek milion˚ u. Pˇr´ıklad: Kaˇzd´ y dotaz na vyhled´av´an´ı Googlu je zpracov´av´an aˇz tis´ıcem server˚ u.
Monitoring Syst´em automaticky monitoruje vyt´ıˇzenost v´ ypoˇcetn´ıch zdroj˚ u a snaˇz´ı se je optimalizovat. Tyto zdroje jsou uˇzivateli u ´ˇctov´any platebn´ım modelem pay-as-you-go, tedy plat´ı se pouze za to, co je vyuˇzito. Existuje i moˇznost pauˇs´aln´ıch sluˇzeb, kde je pˇredplacen bal´ıˇcek, kter´ y lze r˚ uznˇe podle potˇreby konfigurovat [9]. Veˇsker´a ˇcinnost v´ ypoˇcetn´ıch zdroj˚ u je monitorov´ana a reportov´ana z´akazn´ıkovi, t´ım je cel´ y proces u ´ˇctov´an´ı transparentn´ı.
2.1.2
Modely prostˇ red´ı
Cloud computing lze rozdˇelit do tˇr´ı skupin podle prostˇred´ı. Kaˇzd´a m´a sv´e v´ yhody a nev´ yhody. V´ ybˇer prostˇred´ı z´avis´ı na typu dat, se kter´ ymi se bude pracovat, dostupnosti au ´rovni bezpeˇcnosti [10].
7
Obr´azek 3: Modely cloud computingu [12] • Veˇrejn´ y cloud computing - kompletn´ı infrastruktura je vlastnˇena tˇret´ı spoleˇcnost´ı. • Hybridn´ı cloud computing - infrastruktura cloudu je sloˇzena ze dvou a v´ıce kombinac´ı veˇrejn´eho a priv´atn´ıho modelu. Modely jsou vz´ajemnˇe propojeny technologi´ı, kter´a umoˇzn ˇuje vz´ajemnou pˇrenositelnost a vyrovn´av´an´ı z´atˇeˇze (load balancing) mezi jednotliv´ ymi infrastrukturami. Navenek se tento hybridn´ı cloud tv´aˇr´ı jako jedna entita. • Priv´atn´ı cloud computing - kompletn´ı infrastruktura je pod kontrolou vlastn´ı spoleˇcnost´ı. Veˇ rejn´ y cloud computing Ve veˇrejn´em cloudu jsou sluˇzby i infrastruktura poskytov´any tˇret´ı stranou pˇre internet. Tento model poskytuje nejvˇetˇs´ı u ´ˇcinnost spoleˇcn´ ych zdroj˚ u, nicm´enˇe je tak´e mnohem zranitelnˇejˇs´ı neˇz priv´atn´ı model. Tento model je vhodn´ y pro: • Aplikace kter´e pouˇz´ıv´a mnoho lid´ı, napˇr. e-mail. • Testov´an´ı a vyv´ıjen´ı aplikac´ı. • SaaS (Software as a Service) aplikace od dodavatele, kter´ y m´a dobˇre implementovan´e bezpeˇcnostn´ı strategie. • Potˇrebu neomezenˇe ˇsk´alovat v´ ypoˇcetn´ı v´ ykon. 8
• Projekty na kter´ ych pracuje souˇcasnˇe v´ıce lid´ı. • V´ yvoj software pomoc´ı platformy jako sluˇzbu (PaaS). Veˇrejn´ y cloud je sada hardwaru, s´ıt´ı, u ´loˇzn´eho prostoru, sluˇzeb, aplikac´ı a rozhran´ı, kter´e vlastn´ı a provozuje tˇret´ı strana pro pouˇzit´ı jin´ ych firem nebo jednotlivc˚ u. Tyto poskytovatel´e vlastn´ı vysoce ˇsk´alovateln´a datov´a centra, kter´a uˇzivateli skr´ yvaj´ı podrobnosti o infrastruktuˇre a sv´em um´ıstˇen´ı.
Hybridn´ı cloud computing Cloud computing se vyv´ıj´ı jiˇz nˇekolik let, a vˇsak hybridn´ı model je pomˇernˇe nov´ y. Vznikl na z´akladˇe impulzu spoleˇcnost´ı, kter´e si uvˇedomily, ˇze potˇrebuj´ı mnoho r˚ uzn´ ych druh˚ u model˚ u sluˇzeb s c´ılem splnit r˚ uzn´e poˇzadavky z´akazn´ık˚ u. Ekonomika a rychlost jsou dvˇe nejvˇetˇs´ı hnac´ı s´ıly ˇzenouc´ı tuto zmˇenu na trh. Je to prostˇred´ı, kter´e vyuˇz´ıv´a jak soukrom´e tak i veˇrejn´e sluˇzby cloudu. Rostouc´ı v´ yznam hybridn´ıch cloudov´ ych prostˇred´ı transformuje cel´e poˇc´ıtaˇcov´e odvˇetv´ı, jakoˇz i zp˚ usob, jak´ ym jsou spoleˇcnosti schopny vyuˇz´ıt technologie k inovaci. Hybridn´ı cloud je priv´atn´ı model v kombinaci s pouˇzit´ım veˇrejn´ ych cloudov´ ych sluˇzeb, kde existuje jeden nebo nˇekolik propojen´ ych bod˚ u mezi prostˇred´ımi. C´ılem je spojit sluˇzby a data z r˚ uzn´ ych model˚ u a vytvoˇrit jednotn´e, automatizovan´e a dobˇre ˇr´ızen´e v´ ypoˇcetn´ı prostˇred´ı. Kombinace veˇrejn´ ych sluˇzeb se soukrom´ ymi cloudy a datov´ ymi centry je hybridn´ı model novou definic´ı firemn´ı v´ ypoˇcetn´ı techniky [11]. Ne vˇsechny spoleˇcnosti, kter´e nab´ızej´ı veˇrejn´e a priv´atn´ı sluˇzby maj´ı v nab´ıdce tak´e hybridn´ı cloud. O hybridn´ı model se jedn´a v pˇr´ıpadˇe ˇze: • Spoleˇcnost pouˇz´ıv´a veˇrejnou platformu pro v´ yvoj, kter´a odes´ıl´a data do priv´atn´ıho cloudu nebo datov´eho centra. • Spoleˇcnost vyuˇz´ıv´a ˇradu SaaS (Software as a Service) aplikac´ı a pˇresouv´a svoje u ´daje do soukrom´ ych datov´ ych center. • Cel´ y podnikov´ y proces je navrˇzen jako sluˇzba tak, ˇze je moˇzn´e se pˇripojit k prostˇred´ım jako by se jednalo o jeden celek. Hybridn´ım cloudem nen´ı pokud: 9
• Nˇekolik v´ yvoj´aˇr˚ u ze spoleˇcnosti vyuˇz´ıv´a sluˇzby veˇrejn´eho cloudu pro testov´an´ı nov´e aplikace, kter´a je zcela odpojena od priv´atn´ıho cloudu nebo datov´eho centra. • Spoleˇcnost pouˇz´ıv´a aplikace SaaS pro projekt, ale nen´ı zde ˇza´dn´ y pohyb dat z t´eto aplikace do datov´eho centra spoleˇcnosti. Priv´ atn´ı cloud computing Priv´atn´ı cloud je sada hardwaru, s´ıt´ı, u ´loˇzn´eho prostoru, sluˇzeb, aplikac´ı a rozhran´ı, kter´e vlastn´ı a provozuje domovsk´a spoleˇcnost pro sv´e zamˇestnance, partnery nebo z´akazn´ıky. Priv´atn´ı cloud m˚ uˇze b´ yt vytvoˇren a spravov´an i tˇret´ı stranou, ale pouze pro v´ yhradn´ı pouˇzit´ı jednou spoleˇcnost´ı. V Priv´atn´ım cloudu je ˇr´ızen´ı prostˇred´ı uzavˇreno pro veˇrejnost t´ım, ˇze je schov´ano za firewallem. V priv´atn´ım cloudu jsou sluˇzby a infrastruktura udrˇzov´any v priv´atn´ı s´ıti. Tento model nab´ız´ı nejvˇetˇs´ı u ´roveˇ n bezpeˇcnosti a kontroly, ale vyˇzaduje, aby spoleˇcnost udrˇzovala veˇsker´ y software a infrastrukturu na sv´e vlastn´ı n´aklady. Tento model je vhodn´ y pokud: • Pˇredmˇetem podnik´an´ı jsou uˇzivatelova data a aplikace. Z tohoto d˚ uvodu, jejich kontrola a bezpeˇcnost je na prvn´ım m´ıstˇe. • Podnik´an´ı je souˇca´st´ı politiky, ve kter´e jsou pˇr´ısn´a bezpeˇcnostn´ı pravidla a ochrana osobn´ıch u ´daj˚ u. • Spoleˇcnost je dostateˇcnˇe velk´a, aby u ´ˇcinnˇe a efektivnˇe provozovala sv´a cloudov´a datov´a centra. 2.1.3
Modely sluˇ zeb
Cloud computing je ˇsirok´ y pojem, kter´ y popisuje velkou ˇsk´alu sluˇzeb. Stejnˇe jako u jin´ ych v´ yznamn´ ych zmˇen v informaˇcn´ıch technologi´ıch, se mnoho prodejc˚ u chopilo term´ınu cloud“ a pouˇzili ho pro produkty, kter´e s n´ım nemaj´ı nic spoleˇcn´eho. Pro z´ısk´an´ı pˇredstavy ” o tom jakou hodnotu m˚ uˇze m´ıt cloud pro spoleˇcnost, je d˚ uleˇzit´e nejprve pochopit, co ve skuteˇcnosti je a z ˇceho se skl´ad´a. Vzhledem k tomu, ˇze cloud je ˇsirok´a kolekce sluˇzeb, kaˇzd´a spoleˇcnost si m˚ uˇze vybrat kde, kdy a jak ho pouˇzije. V t´eto ˇca´sti budou pops´any r˚ uzn´e typy sluˇzeb cloud computing, kter´e se oznaˇcuj´ı: software jako sluˇzba (SaaS), platforma jako sluˇzba (PaaS) a infrastruktura jako sluˇzba (IaaS). Budou uvedeny pˇr´ıklady, kdy je tato sluˇzba vhodn´a a kdy nikoli [13]. 10
Obr´azek 4: Modely sluˇzeb cloud computingu [14] Software jako sluˇ zba (SaaS) SaaS je zp˚ usob poskytov´an´ı softwaru, kter´ y je poskytov´an vzd´alenˇe jako webov´a sluˇzba. Software jako sluˇzba umoˇzn ˇuje spoleˇcnostem pˇr´ıstup k velk´e ˇsk´ale aplikac´ı, obvykle za cenu niˇzˇs´ı neˇz je cena licencovan´e aplikace. Software je um´ıstˇen na internetu, uˇzivatel´e tedy nemus´ı investovat do n´akupu hardwaru, na kter´em by aplikace musela bˇeˇzet. D´ıky Software as a Service se spoleˇcnost nemus´ı starat o instalaci, nastaven´ı a ˇcasto kaˇzdodenn´ı u ´drˇzbu infrastruktury [15]. Stejnˇe jako u ostatn´ıch forem cloud computingu je d˚ uleˇzit´e zajistit, aby ˇreˇsen´ı prod´avan´e jako SaaS bylo v souladu s obecnˇe uzn´avan´ ymi definicemi cloud computing. Do charakteristiky SaaS patˇr´ı: • Pˇr´ıstup na Web. • Software je ˇr´ızen z centr´aln´ıho um´ıstˇen´ı. • Software je dod´av´an jako model one to many“, tedy jeden software slouˇz´ı mnoho ” uˇzivatel˚ um.
11
• Uˇzivatel´e nemus´ı zasahovat do softwarov´ ych aktualizac´ı a oprav. • API umoˇzn ˇuje integraci mezi r˚ uzn´ ymi softwarov´ ymi prvky. Vˇsichni uˇzivatel´e SaaS sd´ılej´ı stejnou infrastrukturu a z´akladn´ı k´od aplikace. D´ıky tomu mohou prodejci rychleji inovovat a uˇsetˇrit t´ım cenn´ y ˇcas pro v´ yvoj, kter´ y dˇr´ıve str´avili nad udrˇzov´an´ım mnoha verz´ı zastaral´eho k´odu. Kaˇzd´ y uˇzivatel si m˚ uˇze snadno pˇrizp˚ usobit aplikaci pro potˇrebu sv´ ych obchodn´ıch proces˚ u, bez vlivu na spoleˇcnou infrastrukturu. D´ıky zp˚ usobu, jak´ ym SaaS s architekturou pracuje, jsou tyto u ´pravy jedineˇcn´e pro kaˇzdou spoleˇcnost nebo uˇzivatele. Tato pˇrizp˚ usoben´ı jsou vˇzdy zachov´ana i po upgradu aplikace. To znamen´a, ˇze poskytovatel´e SaaS mohou prov´adˇet upgrade ˇcastˇeji a s menˇs´ım rizikem pro z´akazn´ıky. Lepˇs´ı pˇr´ıstup k dat˚ um pomoc´ı libovoln´eho zaˇr´ızen´ı v s´ıti z´aroveˇ n usnadˇ nuje spr´avu opr´avnˇen´ı a sledovan´ı vyuˇzit´ı dat. T´ım je zajiˇstˇena transparentnost sluˇzby. Vˇsichni uˇzivatel´e vid´ı stejn´e informace ve stejnou dobu. Vyuˇzit´ı SaaS m´a smysl u: • Standardn´ı nab´ıdky, kde ˇreˇsen´ı je do znaˇcn´e m´ıry nediferencovan´e. Dobr´ ym pˇr´ıkladem standardn´ı nab´ıdky m˚ uˇze b´ yt e-mail. Tuto aplikaci budou pravdˇepodobnˇe pouˇz´ıvat vˇsichni stejnˇe, protoˇze tato z´akladn´ı technologie je podm´ınkou pro podnik´an´ı, ale sama o sobˇe nepˇrin´aˇs´ı ˇza´dnou konkurenˇcn´ı v´ yhodu. • Aplikace, u kter´e existuje v´ yznamn´a interakce mezi spoleˇcnost´ı a vnˇejˇs´ım svˇetem. Napˇr´ıklad software pro e-mailovou zpravodajskou kampaˇ n. • Aplikace, kter´a potˇrebuje pro sv´e pouˇzit´ı webov´ y nebo mobiln´ı pˇr´ıstup. Pˇr´ıkladem m˚ uˇze b´ yt mobiln´ı software pro spr´avu prodeje. • Software, kter´ y je moˇzn´e vyuˇz´ıvat pouze pro kr´atkodobou potˇrebu. Napˇr´ıklad software pro spolupr´aci na konkr´etn´ım projektu. • Software, kter´ y se vyuˇz´ıv´a pravidelnˇe, napˇr´ıklad jednou za mˇes´ıc software pro danˇe nebo faktury. I kdyˇz je SaaS velmi cenn´ ym n´astrojem, existuj´ı urˇcit´e situace, kdy nen´ı nejlepˇs´ı volbou. Pˇr´ıpady, kdy pouˇzit´ı SaaS nemus´ı b´ yt nejlepˇs´ım ˇreˇsen´ım: • Aplikace, kde se vyˇzaduje extr´emnˇe rychl´e zpracov´an´ı dat v re´aln´em ˇcase. 12
• Aplikace, u kter´ ych pr´avn´ı pˇredpisy nebo jin´e pˇredpisy nedovoluj´ı zpracov´avat informace externˇe. • Aplikace, u kter´ ych st´avaj´ıc´ı ˇreˇsen´ı splˇ nuje vˇsechny poˇzadavky spoleˇcnosti. Platforma jako sluˇ zba (PaaS) Platforma jako sluˇzba (PaaS) je integrovan´e cloudov´e v´ ypoˇcetn´ı prostˇred´ı, kter´e podporuje v´ yvoj, provoz a spr´avu aplikac´ı. Komponenty aplikace mohou existovat v prostˇred´ı cloudu nebo mohou b´ yt integrovan´e s aplikacemi, kter´e jsou spravov´any v priv´atn´ım cloudu ˇci v datov´em centru. PaaS je sluˇzba u n´ıˇz si uˇzivatel pronajme platformu pro vytv´aˇren´ı a provoz vlastn´ıch aplikac´ı. Sluˇzba poskytuje vˇse co je potˇreba pro podporu cel´eho ˇzivotn´ıho cyklu webov´ ych aplikac´ı a sluˇzeb dostupn´ ych pˇres internet a to bez jak´ehokoliv stahov´an´ı nebo instalace softwaru. Vˇse je pˇripraven´e a uˇzivatel se nemus´ı o nic starat, na rozd´ıl od modelu IaaS, kde uˇzivatel je povinen spravovat cel´ y operaˇcn´ı syst´em a doinstalovat si poˇzadovan´e aplikace. Uˇzivateli staˇc´ı pouze pˇripojen´ı na internet a m˚ uˇze vytv´aˇret sv´e aplikace s t´emˇeˇr neomezen´ ymi v´ ypoˇcetn´ımi zdroji a pot´e je snadno nasadit na web. PaaS pln´ı vˇsechny poˇzadavky na infrastrukturu potˇrebn´e pro bˇeh aplikac´ı pˇres internet (jako v pˇr´ıpadˇe spoleˇcnost´ı Amazon, eBay, Google, iTunes a YouTube) [15]. Nab´ıdka zahrnuje pracovn´ı postupy, aplikace pro n´avrh aplikac´ı, v´ yvoje, testov´an´ı a nasazen´ı. Stejnˇe jako u aplikaˇcn´ıch sluˇzeb jak´ ymi jsou virtu´aln´ı kancel´aˇre, t´ ymov´a spolupr´ace, integrita datab´aze, bezpeˇcnost, ˇsk´alovatelnost [3]. PaaS ˇreˇsen´ı by mˇelo splˇ novat tyto podm´ınky: • PaaS mus´ı vyuˇz´ıvat internet. • PaaS mus´ı podporovat nˇejak´ y druh programovac´ıho jazyka, aby v´ yvoj´aˇr˚ um poskytla pˇridanou hodnotu. • Prostˇred´ı mus´ı b´ yt monitorov´ano a umoˇzn ˇovat sledovat a mˇeˇrit vyuˇzit´ı zdroj˚ u a celkov´ y v´ ykon platformy. • PaaS platforma by mˇela b´ yt zaloˇzeny na multi-tenant architektuˇre, coˇz umoˇzn ˇuje v´ıce klient˚ um provozovat sv´e kopie oddˇelenˇe od sebe pomoc´ı virtualizace. K´od nebo data kaˇzd´eho z´akazn´ıka jsou izolov´ana od ostatn´ıch. • PaaS prostˇred´ı mus´ı podporovat ˇzivotn´ı cyklus v´ yvoje aplikac´ı vˇcetnˇe testov´an´ı. 13
• PaaS mus´ı obsahovat rozhran´ı sluˇzeb, jako je SOAP (Simple Object Access Protocol) a XML. • Platforma mus´ı b´ yt schopna nasadit, spravovat, testovat a udrˇzovat vyvinut´e aplikace. • Platforma mus´ı podporovat dobˇre definovan´e a dobˇre zdokumentovan´e rozhran´ı. PaaS pracuje na podobn´em principu jako webov´ y hosting. Uˇzivatel si vybere hosting s pˇredem vytvoˇren´ ym prostˇred´ım kam nahraje sv´e aplikace. Rozd´ıl ovˇsem je, pokud jeho aplikace zaˇcne r˚ ust a vyˇzadovat st´ale v´ıce v´ ypoˇcetn´ıch prostˇredk˚ u. U bˇeˇzn´eho hostingu by bylo nutn´e pˇresunout aplikaci na v´ ykonnˇejˇs´ı server a t´ım by se zvedla i jeho cena. To by nevadilo, pokud bude uˇzivatelova aplikace st´ale r˚ ust. V pˇr´ıpadˇe poklesu, by se musel opˇet pˇresunout na levnˇejˇs´ı variantu serveru a tak poˇra´d dokola, pokud takov´ yto pˇresun poskytovatel podporuje. V opaˇcn´em pˇr´ıpadˇe by uˇzivatel musel z˚ ustat na draˇzˇs´ım serveru a st´ale platit zv´ yˇsenou sazbu, i kdyˇz v´ ypoˇcetn´ı v´ ykon nevyuˇz´ıv´a. U PaaS se to nestane. Zde se plat´ı za spotˇrebovan´e cykly procesoru/hodina. Sluˇzba se sama ˇsk´aluje. Kdyˇz aplikace potˇrebujete vˇetˇs´ı v´ ykon, dostanete ho, jakmile aplikace uˇz nepoˇzaduje tolik prostˇredk˚ u, odpoj´ı se. PaaS je analogick´ y k SaaS. Liˇs´ı se pouze v tom, ˇze sp´ıˇse neˇz o software poskytovan´ y pˇres internet, jde o platformu pro vytv´aˇren´ı softwaru dodan´eho pˇres web. Tato sluˇzba se hod´ı pro situace, kdy v´ıce v´ yvoj´aˇr˚ u pracuje na stejn´em projektu nebo tam, kde extern´ı strany potˇrebuj´ı komunikovat s cel´ ym v´ yvojov´ ym procesem. PaaS je tak´e vhodn´e tam, kde v´ yvoj´aˇri chtˇej´ı automatizovat cel´ y proces testov´an´ı a nasazen´ı aplikace. Popularita agiln´ıho v´ yvoje a metodik zaloˇzen´ ych na iterativn´ım a inkrement´aln´ım v´ yvoji, m˚ uˇze tak´e tˇeˇzit z pˇr´ınosu PaaS nebot’ ulehˇcuje rychl´ y rozvoj softwaru.
Infrastruktura jako sluˇ zba (IaaS) IaaS je jedn´ım ze tˇr´ı z´akladn´ıch model˚ u poskytov´an´ı sluˇzeb cloud computingu, vedle platformy jako sluˇzba (PaaS) a softwaru jako sluˇzba (SaaS). Stejnˇe jako u vˇsech sluˇzeb cloud computingu poskytuje pˇr´ıstup k v´ ypoˇcetn´ım prostˇredk˚ um ve virtualizovan´em prostˇred´ı pˇres internet. Infrastruktura obsahuje virtu´aln´ı prostor na serveru, s´ıt’ov´a pˇripojen´ı, ˇs´ıˇrku p´asma, IP adresy a load balancer. Fyzicky se hardwarov´e zdroje skl´adaj´ı z mnoha server˚ ua s´ıt´ı obvykle distribuovan´ ych pˇres ˇcetn´a datov´a centra, za kter´a je odpovˇedn´ y poskytovatel sluˇzby. Klientu je umoˇznˇen pˇr´ıstup k virtualizovan´ ym sloˇzk´am s c´ılem vybudovat vlastn´ı
14
IT platformu. Stejnˇe jako u dalˇs´ıch dvou forem cloud hosting, IaaS m˚ uˇze b´ yt pouˇzita pro spoleˇcnosti k vytvoˇren´ı n´akladovˇe efektivn´ıho a snadno ˇsk´alovateln´eho IT ˇreˇsen´ı. Jak m˚ uˇze b´ yt IaaS pouˇzita ve spoleˇcnosti: V Podnikov´e infrastruktuˇre, jako je napˇr´ıklad priv´atn´ı cloud a virtu´aln´ı lok´aln´ı s´ıt’, kter´a vyuˇz´ıv´a vyˇclenˇen´e servery a s´ıt’ov´e zdroje a ve kter´ ych m˚ uˇze spoleˇcnost ukl´adat sv´a data a spouˇstˇet aplikace, potˇrebn´e ke sv´emu provozu. Rozˇsiˇrov´an´ım spoleˇcnosti lze ˇsk´alovat jeho infrastrukturu v souladu s jeho r˚ ustem. U priv´atn´ıch cloud˚ u (pˇr´ıstupn´ ych pouze dan´e spoleˇcnosti) lze ukl´adat a pˇren´aˇset citliv´a data. Pro cloud hosting a hostov´an´ı webov´ ych str´anek na virtu´aln´ıch serverech. Webov´e str´anky hostovan´e v cloudu mohou m´ıt prospˇech z propustnosti, kterou poskytuj´ı rozs´ahl´e s´ıtˇe fyzick´ ych server˚ u a d´ıky ˇsk´alovatelnosti se vypoˇra´daj´ı s neˇcekan´ ymi poˇzadavky ze stran webov´ ych str´anek [15]. V provozu virtu´aln´ıho datov´eho centra (VDC). Jedn´a se virtualizovan´e s´ıtˇe vz´ajemnˇe propojen´ ych virtu´aln´ıch server˚ u, kter´e mohou b´ yt pouˇzity na zlepˇsen´ı cloud hostingu podnikov´e IT infrastruktury nebo integrace.
15
3
Bezpeˇ cnost cloud computingu
Cloud computing dnes nab´ız´ı mnohem v´ıce poskytovatel˚ u, neˇz dˇr´ıve. Mnoho spoleˇcnost´ı se stˇehuje do cloudu, aby vyuˇzila v´ yhody on-demand (na vyˇz´ad´an´ı) dokument˚ u, aplikac´ı a sluˇzeb. Oblast cloud computingu, kter´a na sebe upout´av´a ˇc´ım d´al v´ıce pozornosti, je bezpeˇcnost cloudu a s t´ım souvisej´ıc´ı Security-as-aservice (SECaaS). Bezpeˇcnost je st´ale v´ıce ˇreˇsena v reakci na trend, kdy ˇc´ım d´al v´ıce spoleˇcnost´ı pˇresouv´a sv´a data do cloudu a t´ım se vystavuj´ı u ´toku kyber zlodˇej˚ u, kteˇr´ı kradou data a d˚ uvˇern´e informace. Oblast SECaaS se zaˇc´ın´a rychle rozv´ıjet a d´a se pˇredpokl´adat, ˇze poroste i nad´ale. Mnoho uˇzivatel˚ u pˇresouv´a sv´e u ´daje do cloudu bez rozmyˇslen´ı, s jak´ ymi moˇzn´ ymi bezpeˇcnostn´ımi riziky se mohou setkat a kdo by mohl zneuˇz´ıt jejich citliv´e informace. Sluˇzby jako e-mail (Gmail, Hotmail, atd.) a soci´aln´ı s´ıtˇe maj´ı data vˇzdy uloˇzena v cloudu a uˇz dlouho jsou osobn´ı bezpeˇcnostn´ı hrozbou. Naopak mnoho spoleˇcnost´ı ze strachu odm´ıt´a cloudov´e sluˇzby, aniˇz by si uvˇedomily, ˇze existuj´ı bezpeˇcnostn´ı ˇreˇsen´ı, kter´a mohou chr´anit jejich d˚ uvˇern´e informace. Spoleˇcnosti, kter´e se zab´ yvaj´ı bezpeˇcnost´ı cloudu maj´ı ˇsirok´e moˇznosti zabezpeˇcen´ı [16].
3.1
SECaaS
Zajiˇstˇen´ı bˇeˇzn´ ych prostˇredk˚ u pro zabezpeˇcen´ı infrastruktury, platformy a softwaru m˚ uˇze b´ yt provedeno uˇzivatelem nebo poskytovatelem sluˇzby. Tato opatˇren´ı jsou, ale vˇetˇsinou omezena pouze na softwarovou str´anku. Cloud je ch´ap´an zd´anlivˇe jako nehmotn´ y (data jsou uloˇzena v mraku“). Opak je pravdou. Data jsou uloˇzena fyzicky na serverech, o ” jejichˇz um´ıstˇen´ı nem´a uˇzivatel ˇz´adn´e informace. Je nutn´e tedy zabezpeˇcit data i po fyzick´e str´ance. Obecnˇe lze ˇr´ıci, ˇze Security-as-a-Service (SECaaS) je outsourcing ˇr´ızen´ı bezpeˇcnosti tˇret´ı osobou. Pˇred pˇr´ıchodem cloud computingu bylo norm´aln´ı, ˇze veˇsker´a data spoleˇcnosti byla uloˇzena na vlastn´ıch serverech a spravov´ana vlastn´ımi zamˇestnanci. Dan´a spoleˇcnost mˇela tedy plnou kontrolu na vˇs´ım. Tento zp˚ usob, ale spoleˇcnosti pˇrin´aˇs´ı nemal´e n´aklady na poˇr´ızen´ı server˚ u a jich spr´avu. Bezpeˇcnostn´ı v´ ydaje se mohou liˇsit na z´akladˇe pouˇzit´ı bezpeˇcnostn´ıch prvk˚ u (napˇr. IDS / IPS zaˇr´ızen´ı, Firewall). Spoleˇcnost mus´ı naj´ımat odborn´ıky, kteˇr´ı vyhodnocuj´ı bezpeˇcnostn´ı operace a postupy. Spoleˇcnost, kter´a pˇresune sv´e IT sluˇzby z intern´ıho prostˇred´ı do cloudu, tak m˚ uˇze sn´ıˇzit sv´e n´aklady na u ´drˇzbu a zabezpeˇcen´ı dat. Umoˇzn ˇuj´ı ji to, aby se zamˇeˇrila na sv´e podnik´an´ı a bezpeˇcnost nechala na cloud poskytovateli.
16
Pro kaˇzd´ y model cloud sluˇzby poskytovatel nab´ız´ı urˇcit´a bezpeˇcnostn´ı opatˇren´ı. Napˇr´ıklad pro IaaS model poskytuje filtr IP adres (Access Control List - ACL), takˇze lze jednoduˇse spravovat, komu je pˇripojen´ı do infrastruktury umoˇznˇeno a komu ne. Pro PaaS plat´ı podobn´e pravidlo s t´ım rozd´ılem, ˇze je umoˇznˇen pˇr´ıstup pouze pˇres uˇzivatelsk´e jm´eno a heslo. Poskytovatel´e SaaS rovnˇeˇz zabezpeˇcili sv´e sluˇzby a pˇr´ıstup maj´ı pouze ti, kdo maj´ı bezpeˇcnostn´ı kl´ıˇc [17]. SECaaS se nevztahuje pouze na zabezpeˇcen´ı cloud infrastruktury. SECaaS m´a tak´e schopnost zabezpeˇcit cel´e podnikov´e s´ıtˇe, kter´e mohou b´ yt hostov´any fyzicky ve spoleˇcnosti. Bezpeˇcnostn´ı n´astroje a hlavn´ı aplikace jsou hostov´any spoleˇcnost´ı poskytuj´ıc´ı SECaaS v cloudu. Pro uˇzivatele, kteˇr´ı chtˇej´ı tuto sluˇzbu, poskytovatel SECaaS p˚ ujˇc´ı mal´e zaˇr´ızen´ı, kter´e se pˇripoj´ı do uˇzivatelovi s´ıtˇe a pomoc´ı nˇehoˇz m˚ uˇze SECaaS poskytovatel do t´eto s´ıtˇe pˇristupovat. Obvykle spoleˇcnost jiˇz udrˇzuje sv´a s´ıt’ov´a zabezpeˇcen´ı, kter´a umoˇzn ˇuj´ı pˇr´ıstup pouze pro urˇcit´e protokoly a ˇc´ısla port˚ u. Nˇekter´e ot´azky, ale st´ale pˇretrv´avaj´ı: Mˇela by spoleˇcnost d˚ uvˇeˇrovat tˇret´ı osobˇe k zajiˇstˇen´ı jejich digit´aln´ı dat a majetku?
3.1.1
Kategorie
Cloud Security Aliance (CSA) identifikovala kategorie sluˇzeb, kter´e definuj´ı hlavn´ı bezpeˇcnostn´ı u ´skal´ı cloud computingu. Tyto kategorie (viz. n´ıˇze) vznikly shromaˇzd’ov´an´ım dat ze studi´ı a pr˚ uzkum˚ u prov´adˇen´ ymi zkuˇsen´ ymi uˇzivateli, kteˇr´ı vyuˇz´ıvaj´ı sluˇzby SACaaS WG (SACaaS Working Group). Kategorie sluˇzeb: • Identity and Access Management (IAM) - poskytuje ochranu pro spr´avu osob a pˇr´ıstupu. Hlavn´ı poskytovatel´e jsou SailPoint, Aveksa, Oracle, Courion a CA Technologies. • Data Loss Prevention (DLP) - zajiˇst’uje preventivn´ı kontroly sledov´an´ım, ochranou a ovˇeˇrov´an´ım bezpeˇcnosti dat. Hlavn´ı poskytovatel´e jsou Symantec, McAfee, Sophos, Trend Micro, a Kaspersky Lab. • Web Security - poskytuje ochranu v re´aln´em ˇcase pomoc´ı detektivn´ıho a reaktivn´ıho softwaru. Ten m˚ uˇze b´ yt pouˇzit lok´alnˇe, prostˇrednictv´ım cloudu, pomoc´ı proxy nebo pˇresmˇerov´an´ım webov´eho provozu na poskytovatele cloudu. Pomoc´ı tohoto softwaru spoleˇcnost z´ısk´a schopnost filtrov´an´ı URL a detekci malwaru. Hlavn´ımi poskytovateli jsou Cisco, Bluecoat Systems, Websense, Zscaler a McAfee. 17
• Email Security - ochrana pˇr´ıchoz´ıho a odchoz´ıho emailu. Chr´an´ı pˇred hrozbami, jako jsou phishing, nebezpeˇcn´e pˇr´ılohy, a spam. Hlavn´ımi poskytovateli jsou Cisco, Symantec, Proofpoint, Microsoft, Google, a McAfee. • Security Information and Event Management (SIEM) - poskytuje ochranu pomoc´ı korekˇcn´ı anal´ yzy z´aznam˚ u a ud´alost´ı v syst´emu a jej´ı n´asledn´e anal´ yzy v re´aln´em ˇcase. Hlavn´ımi z´astupci SIEM jsou HP ArcSight, IBM Q1 Labs, McAfee Nitro Security, NetIQ a LogRyhtm. • Encryption - ˇsifruje data za pouˇzit´ı urˇcit´eho kryptografick´eho algoritmu pro vytvoˇren´ı ciphertextu (to je ˇsifrovan´ y text, jehoˇz s´emantick´ y obsah nen´ı dostupn´ y bez pouˇzit´ı kryptografick´ ych technik). • Network Security - chr´an´ı t´ım, ˇze pˇridˇeluje pˇr´ıstupu do s´ıtˇe a sleduje ochranu s´ıt’ov´ ych prostˇredk˚ u. V pˇr´ıpadˇe potˇreby mohou b´ yt urˇcit´e sluˇzby, protokoly nebo porty v´ yslovnˇe povoleny nebo zak´az´any. Spoleˇcnosti se mohou zdr´ahat vyuˇz´ıt SECaaS k zabezpeˇcen´ı sv´e s´ıtˇe. Poskytovatel´e SECaaS nejsou levn´ı a spoleˇcnosti t´ım umoˇzn´ı tˇret´ı osobˇe pˇr´ıstup ke sv´e s´ıti nebo k uloˇzen´ı zaˇr´ızen´ı v r´amci jejich s´ıtˇe. To je podobn´e jako dovolit cizinci zkontrolovat m˚ uj d˚ um, zda je zabezpeˇcen proti zlodˇej˚ um. Kromˇe toho mnoho firem a spoleˇcnost´ı maj´ı vlastn´ı procesy, software a operace, kter´e nechtˇej´ı prozradit nikomu, ani jejich poskytovateli zabezpeˇcen´ı. Mus´ı se proto vˇzdy zvolit kompromis mezi bezpeˇcnost´ı, rychlost´ı a utajen´ım [18].
3.2
Rizika cloud computingu
Cloud computing sice pˇrin´aˇs´ı spoustu pozitiv, ale jsou tu i bezpeˇcnostn´ı probl´emy. Mezi v´ yhody patˇr´ı moˇznost oddˇelit uˇzivatele od IT infrastruktury, coˇz pˇrin´aˇs´ı i r˚ uzn´a rizika. Nejvˇetˇs´ı nebezpeˇc´ım cloudu je ztr´ata kontroly nad fyzickou bezpeˇcnost´ı a fakt, ˇze veˇsker´e v´ ypoˇcetn´ı prostˇredky jsou sd´ıleny vˇsemi uˇzivateli. Dalˇs´ım probl´emem je, ˇze uˇzivatel nem´a informace o tom, kde jsou jeho data uloˇzena. Zn´a pouze svˇetad´ıl. Nˇekter´e zemˇe maj´ı pˇr´ısn´a pravidla, jak´a osobn´ı data mohou b´ yt skladov´ana a na jak dlouho. Podobnˇe nˇekter´e bankovn´ı instituce vyˇzaduj´ı, aby klientsk´a data byla uloˇzena v domovsk´e zemi. Cloud computing poskytuje i SaaS, coˇz je dalˇs´ı bezpeˇcnostn´ı riziko. Z hlediska z´akazn´ık˚ u, SaaS sniˇzuje potˇrebu vyv´ıjet vlastn´ı bezpeˇcn´ y software. Tato zodpovˇednost je pˇresunuta k poskytovateli cloud sluˇzeb. Nicm´enˇe, st´ale m˚ uˇze uˇzivatel shledat d˚ uleˇzit´ ym vytvoˇrit si vlastn´ı k´od pro cloud. Kdokoli vyv´ıj´ı software pro cloud, je v´az´an pevn´ ymi pravidly. Mus´ı zabezpeˇcit: bezpeˇcnost softwaru po cel´ y jeho ˇzivotn´ı cyklus, testov´an´ı, 18
bezpeˇcn´e nasazen´ı, spr´avu oprav a jeho odstranˇen´ı. Pˇresto v mnoha pˇr´ıpadech je softwarov´a bezpeˇcnost povaˇzov´ana za pˇr´ıdavek k existuj´ıc´ımu softwaru a ne jako d˚ uleˇzit´a ˇca´st v´ yvoje. Vl´adn´ı politika v mnoha zem´ıch se bude muset zmˇenit v reakci na moˇznosti hrozeb, kter´e cloud computing pˇrin´aˇs´ı pˇredevˇs´ım pˇri pˇresouv´an´ı osobn´ıch u ´daj˚ u. [3].
3.2.1
Zabezpeˇ cen´ı SaaS
Nejvˇetˇs´ı bezpeˇcnostn´ı probl´em v prostˇred´ı SaaS je nekvalitn´ı spr´avce ovˇeˇren´ı. Napˇr´ıklad Google m´a Secure Data Connector“ kter´ y vytv´aˇr´ı ˇsifrovan´e spojen´ı mezi daty z´akazn´ıka ” a Googlem. To poskytuje kontrolu, kteˇr´ı zamˇestnanci mohou m´ıt pˇr´ıstup ke Google Apps. V SaaS ˇza´dn´ y podobn´ y zp˚ usob kontroly nen´ı. Nˇekdy je poˇzadov´ano klientem, aby jeho citliv´e u ´daje z˚ ustaly v urˇcit´e zemˇepisn´e poloze. Ale s SaaS si uˇzivatel´e nemohou b´ yt jisti o um´ıstˇen´ı datov´eho centra, kde maj´ı sv´a data. Nav´ıc v souˇcasn´e dobˇe neexistuj´ı ˇz´adn´e pevn´e standardy pro SaaS zabezpeˇcen´ı nebo Cloud Security obecnˇe. Nˇekteˇr´ı poskytovatel´e sluˇzeb tvrd´ı, ˇze vyhovuj´ı norm´am SAS 70 a ISO 27001, ale tyto normy jsou relevantn´ı jen pro informaˇcn´ı a bezpeˇcnostn´ı syst´emy. Do budoucna by se mˇeli pˇrijmout specifick´e normy tak, aby uˇzivatel´e mohli m´ıt z´aruku bezpeˇcnosti.
3.2.2
Zabezpeˇ cen´ı PaaS
Jednou z hrozeb, kter´e spr´avci PaaS mus´ı ˇcelit, patˇr´ı skuteˇcnost, ˇze PaaS instance jsou v podstatˇe virtu´aln´ı stroje a ty m˚ uˇze uˇzivatel chtˇenˇe nebo nechtˇenˇe poruˇsit. T´ım mohou b´ yt ovlivnˇeni i ostatn´ı z´akazn´ıci, protoˇze schopnosti hypervisora (to je software nebo hardware, kter´ y se star´a o vytv´aˇren´ı a bˇeh virtu´aln´ıch stroj˚ u), kter´ y se star´a i o dalˇs´ı PaaS se sn´ıˇz´ı. Jako u kaˇzd´e jin´e sluˇzby, je v tomto pˇr´ıpadˇe uˇzivatel doˇcasnˇe pˇresmˇerov´an ze stroje, na kter´em pracoval na jin´ y, aby mohla b´ yt provedena u ´drˇzba. Spr´avce hypervisoru m´a tedy moˇznost pod´ıvat se na priv´atn´ı data poˇskozen´eho uˇzivatele. Proto je nezbytnˇe nutn´e vˇzdy si rozmyslet, jak´a data jsou ukl´ad´ana a zda jsou ˇsifrov´ana.
3.2.3
Zabezpeˇ cen´ı IaaS
Servery v datov´em centru, o jejichˇz um´ıstˇen´ı nem´a uˇzivatel informace, jsou fyzicky pˇr´ıstupn´e a t´ım p´adem mohou b´ yt i ohroˇzeny. To m˚ uˇze v pˇr´ıpadˇe u ´toku v´est k nedostupnosti uˇzivatelovi sluˇzby, popˇr´ıpadˇe ztr´atˇe nebo kr´adeˇzi dat. D˚ uvˇernost poskytovatele je tedy jedinou z´arukou bezpeˇcnosti. Pro pˇr´ıpad kr´adeˇze dat je dobr´e data ˇsifrovat.
19
Virtu´aln´ı stroje vyuˇz´ıvaj´ı hypervisor, kter´ y ukl´ad´a virtu´aln´ı poˇc´ıtaˇce jako soubory, ty jsou t´ım p´adem n´achyln´e na zkop´ırov´an´ı do jin´eho zaˇr´ızen´ı. Moˇznost zkop´ırovat virtu´aln´ı stroj poskytuje u ´toˇcn´ıkovi v´ yhodu. Umoˇzn ˇuje mu proniknout do syst´emu bez detekce, protoˇze tyto pˇr´ıpadn´e u ´toky jsou prov´adˇeny na kopii virtu´aln´ıho poˇc´ıtaˇce.
3.2.4
Zabezpeˇ cen´ı SECaaS
Spoleˇcnosti by nemˇeli jednoduˇse dovolit poskytovateli SECaaS, aby spravoval jejich zaˇr´ızen´ı ve sv´ ych datov´ ych centrech, aniˇz by pochopili, jak´e informace mohou b´ yt pˇred´av´any pˇres hardware. Bezpeˇcnost spoleˇcnosti je st´ale odpovˇednost´ı uˇzivatel˚ u a to i v pˇr´ıpadˇe, ˇze vyuˇz´ıvaj´ı sluˇzeb SECaaS. Spoleˇcnost m˚ uˇze pˇredpokl´adat, ˇze veˇsker´a komunikace s SECaaS poskytovatelem proch´az´ı pˇres zabezpeˇcen´e kan´aly. Nicm´enˇe citliv´a data by mˇela b´ yt filtrov´ana pomoc´ı IDS (Intrusion detection sensors - obrann´ y syst´em, kter´ y monitoruje s´ıt’ov´ y provoz a snaˇz´ı se detekovat podezˇrel´e aktivity) nebo IPS pˇred t´ım, neˇz putuj´ı do cloudu. Stavov´ y firewall m˚ uˇze b´ yt tak´e pouˇzit k monitorov´an´ı dat. V SECaaS m˚ uˇze b´ yt provedeno ovˇeˇren´ı pˇres ˇr´ızen´ı pˇr´ıstupu ke zdroj˚ um. SECaaS pom´ah´a pˇreklenout mezeru mezi zabezpeˇcen´ım sluˇzby cloud poskytovatelem a zabezpeˇcen´ım, kter´e je v prostor´ach spoleˇcnosti. SECaaS zachov´av´a bezpeˇcnostn´ı vrstvy pro kaˇzdou cloud sluˇzbu. Odpovˇednost´ı kaˇzd´eho poskytovatele cloud sluˇzby je poskytovat bezpeˇcnostn´ı ˇreˇsen´ı pro IaaS, PaaS, a SaaS. Poskytovatel´e obvykle maj´ı pouze omezen´e bezpeˇcnostn´ı funkce, jako jsou uˇzivatelsk´a jm´ena a hesla, pˇr´ıstupov´ y list, pˇr´ıpadnˇe ID token. Tyto bezpeˇcnostn´ı funkce mohou zaruˇcit pouze to, kter´a uˇzivatelsk´a jm´ena maj´ı pˇr´ıstup ke sluˇzbˇe. SECaaS nab´ız´ı moˇznost ˇr´ıdit nastaven´ı podnikov´ ych s´ıt´ı tak, aby bylo dosaˇzeno co nejvyˇsˇs´ı u ´rovnˇe bezpeˇcnosti. SECaaS tak´e m˚ uˇze b´ yt pouˇzit k zajiˇstˇen´ı dalˇs´ıch cloud sluˇzeb. Pro spoleˇcnosti, kter´e maj´ı vyˇsˇs´ı riziko napaden´ı neˇz ostatn´ı a chtˇej´ı vyuˇz´ıt cloud, je nutnost zajistit vysokou bezpeˇcnost pˇri pˇripojen´ı do cloudu. Spoleˇcnosti proto mohou m´ıt vlastn´ı vrstvu zabezpeˇcen´ı mezi sv´ ym majetkem a zaˇr´ızen´ım, kter´e je spojuje s cloudem. Spoleˇcnost m˚ uˇze nainstalovat a nasadit IPS (firewall, kter´ y chr´an´ı webov´e aplikace) na cloud spolu s DLP (Data Loss Prevention) tak, aby data, kter´a se pˇren´aˇs´ı ze spoleˇcnosti, byla kontrolov´ana pˇred odesl´an´ım do cloudu [19].
20
4
Poskytovatel´ e cloud computingu
Na trhu je v souˇcasn´e dobˇe mnoho poskytovatel˚ u priv´atn´ıho i veˇrejn´eho cloud computingu. Porovn´an´ı jejich nab´ıdek bude omezeno pouze na srovn´an´ı nejvˇetˇs´ıch hr´aˇc˚ u v oblasti poskytov´an´ı platformy nebo infrastruktury ve veˇrejn´em cloud computingu. Vˇseobecnˇe se za nejvˇetˇs´ı hr´aˇce povaˇzuje Amazon, Google App Engine a Microsoft s Windows Azure. Neznamen´a to ovˇsem, ˇze by ostatn´ı spoleˇcnosti neposkytovali kvalitn´ı sluˇzby. V podstatˇe vˇsechny v´ yznamn´e IT spoleˇcnosti, at’ uˇz zamˇeˇren´e na SW nebo HW jiˇz cloud computing sluˇzby nab´ız´ı jako souˇca´st sv´e sluˇzby napˇr. r˚ uzn´e cloud u ´loˇziˇstˇe (OneDrive, iCloud, Ubuntu One, Google Drive) nebo samostatnˇe.
4.1
Amazon
Amazon, asi nejvˇetˇs´ı st´avaj´ıc´ı on-line prodejce na Internetu a pravdˇepodobnˇe tak´e nejzn´amˇejˇs´ı pr˚ ukopn´ık cloud computingu. Uˇz v roce 2002 uvedl svoj´ı prvn´ı sluˇzbu pod n´azvem Amazon Web Services (AWS) a v roce 2006 pˇridal dalˇs´ı dvˇe v´ yznamn´e sluˇzby Amazon Simple Storage Service (S3) a Amazon Elastic Compute Cloud (EC2). Sluˇzbu EC2 Amazon u ´dajnˇe vytvoˇril kv˚ uli velk´emu nadbytku sv´e v´ ypoˇcetn´ı s´ıly, kter´a musela b´ yt dimenzov´ana na provoz ve ˇspiˇcce celosvˇetovˇe zn´am´eho internetov´eho obchodu. Rozd´ıl mezi nejniˇzˇs´ım a nejvyˇsˇs´ım zat´ıˇzen´ım dˇelal aˇz nˇekolik des´ıtek procent, coˇz pˇri tak obrovsk´e kapacitˇe HW prostˇredk˚ u, kter´ ymi Amazon disponuje, dˇel´a des´ıtky milion˚ u korun roˇcnˇe. Tento HW byl vˇsak mimo ˇspiˇcku nevyuˇzit´ y. Z tohoto d˚ uvodu Amazon zaˇcal nab´ızet sv˚ uj HW i ostatn´ım spoleˇcnostem jako sluˇzbu. Za prvn´ıch 18 mˇes´ıc˚ u, kdy byla tato sluˇzba spuˇstˇena pro veˇrejnost, pˇril´akala 500 000 z´akazn´ık˚ u. Jak ukazuje obr´azek ˇc. 5. jejich cloud sluˇzba zast´ınila i internetov´ y obchod. Dnes jiˇz nab´ız´ı ˇsirokou paletu sluˇzeb, produkt˚ ui podporu r˚ uzn´ ych technologi´ı pro v´ yvoj aplikac´ı.
21
Obr´azek 5: Vyuˇzit´ı ˇs´ıˇrky p´asma Amazon v letech 2001 aˇz 2008 [20] 4.1.1
Nab´ıdka sluˇ zeb Amazon
Elastic Compute Cloud (EC2) Jedn´a se o PaaS. Uˇzivatel si pronaj´ım´a celou platformu, kter´a umoˇzn ˇuje vyuˇzit´ı libovoln´eho v´ ypoˇcetn´ıho v´ ykonu. Je plnˇe konfigurovateln´a pˇres jednoduch´e webov´e rozhran´ı, coˇz umoˇzn ˇuje snadnou spr´avu a monitoring v´ ypoˇcetn´ıho v´ ykonu. Vytvoˇren´ı a nasazen´ı nov´e virtu´aln´ı instance serveru trv´a pouze nˇekolik minut. D´ıky tomu m˚ uˇze uˇzivatel rychle pˇrid´avat nebo odeb´ırat nov´e instance v z´avislosti na aktu´aln´ım vyuˇzit´ı jeho server˚ u. Instance pˇredstavuje virtu´aln´ı prostˇred´ı, kter´e podporuje r˚ uzn´e operaˇcn´ı syst´emy: Red Hat Entreprise, Windows Server 2003/2008, Oracle Enterprise Linux, Open Solaris, Ubuntu Linux, Debian a dalˇs´ı. Kromˇe operaˇcn´ıho syst´emu jsou podporov´any tak´e aplikace: IBM DB2, Microsoft SQL Server 2005/2008, MySQL Enterprise, Oracle 11g, Apache http, IIS/Asp.NET, IBM WebSphere Portal Server a mnoho dalˇs´ıch. • Small Instance, 1,7 GB pamˇeti, 1 EC2 Compute Unit, 160 GB na disku, 32-bit OS. • Large Instance, 7,5 GB pamˇeti, 4 EC2 Compute Unit, 850 GB m´ısta na disku, 64-bit. 22
• Extra Large Instance, 15 GB pamˇeti, 8 EC2 Compute Units, 1690 GB na disku, 64-bit. V´ ykon je ud´av´an v EC2 Compute Units, coˇz je jednotka pˇredstavuj´ıc´ı v´ ypoˇcetn´ı v´ ykon, kterou zavedl Amazon pro sv´e sluˇzby. Jedna EC2 Compute Units je ekvivalent CPU 1,0 – 1,2 GHz 2007 Opteron nebo 2007 Xeon procesor. V pˇr´ıpadˇe Extra Large instance je 8 EC2 Compute Units rovno 4 virtu´aln´ım j´adr˚ um s 2 EC2 Compute Units kaˇzd´eho [21].
Dalˇ s´ı produkty Amazone • Simple Storage Service (S3) - datov´e u ´loˇziˇstˇe, slouˇz´ıc´ı pro ukl´ad´an´ı a z´ısk´av´an´ı jak´ehokoliv mnoˇzstv´ı dat kdekoli na Internetu. S3 m´a minimum funkc´ı. Je dovoleno pouze zapisovat, ˇc´ıst a mazat objekty. Kaˇzd´ y objekt m˚ uˇze m´ıt velikost od 1 bytu aˇz do 5 TB, pˇriˇcemˇz mnoˇzstv´ı tˇechto objekt˚ u je neomezen´e. Tento koncept se skl´ad´a ze tˇr´ı u ´rovn´ı: vlastn´ıho objektu, bucketu - n´adoba“ kde jsou uloˇzeny objekty a kl´ıˇc˚ u ” pˇriˇcemˇz jednotliv´e objekty jsou uloˇzen´e do bucketu a jsou identifikovateln´e podle unik´atn´ıho kl´ıˇce. • SimpleDB – NoSQL datab´azov´a sluˇzba. • Simple Queue Service (SQS) - sluˇzba pro ukl´ad´an´ı zpr´av do fronty. • Elastic MapReduce - sluˇzba pro paraleln´ı zpracov´an´ı nebo anal´ yzu velk´eho mnoˇzstv´ı dat. • CloudFront - doruˇcov´an´ı obsahu webov´e sluˇzby. Integruje se s ostatn´ımi produkty Amazon Web Services a poskytuje v´ yvoj´aˇr˚ um a spoleˇcnostem snadn´ y zp˚ usob, jak s n´ızkou latenc´ı distribuovat obsah koncov´ ym uˇzivatel˚ um.
4.2
Google Apps Engine (GAE)
Google Apps Engine je od spoleˇcnosti Google, kter´a je zn´am´a sp´ıˇse pˇres internetov´ y prohl´ıˇzeˇc nebo vyhled´avaˇc. Cloud computingem se zab´ yv´a od roku 2008, kdy pˇrestavil tuto sluˇzbu umoˇzn ˇuj´ıc´ı v´ yvoj a hostov´an´ı webov´ ych aplikac´ı na stejn´e infrastruktuˇre na jak´e bˇeˇz´ı ostatn´ı aplikace Googlu. Google App Engine je sluˇzba, umoˇzn ˇuj´ıc´ı hostovat vlastn´ı aplikace na serverech spoleˇcnosti Google. Jsou podporov´any tˇri programovac´ı jazyky Java, Python a PHP to 23
je, ale pouze ve zkuˇsebn´ı verzi. GAE nenab´ız´ı FTP nebo webov´e rozhran´ı. Soubory se na server nahr´avaj´ı bud’ pomoc´ı n´astroje appcfg (utilita pro pˇr´ıkazov´ y ˇr´adek) nebo pomoc´ı App Engine Launcher, kter´ y se star´a o nasazen´ı aplikace m´ısto uˇzivatele. Z hlediska bezpeˇcnosti nen´ı dovoleno zapisovat pˇr´ımo na disk nebo otev´ırat s´ıt’ov´a spojen´ı. Pro ukl´ad´an´ı dat Google App Engine nab´ız´ı vlastn´ı metodu tzv. DataStore. D˚ uleˇzitou ˇca´st´ı GAE je Google Web Toolkit, kter´ y poskytuje framework. Uˇzivatel si v nˇem m˚ uˇze jednoduˇse vytvoˇrit webovou aplikaci sloˇzenou ze znovupouˇziteln´ ych UI komponent (renderovan´ ych jako HTML). Logika je ve formˇe JavaScriptu na stranˇe webov´eho prohl´ıˇzeˇce a asynchronn´ıho vol´an´ı serverov´e logiky skrze AJAX. To vˇse na platformˇe Java s vyuˇzit´ım jazyka, knihoven a v´ yvojov´ ych n´astroj˚ u t´eto platformy [22].
Obr´azek 6: Modely sluˇzeb cloud computingu [22]
24
Google Web Toolkit se skl´ad´a z pˇeti z´akladn´ıch komponent: • Kompil´ator Javy do JavaScriptu. • Emulace Java platformy. • Komponenty pro tvorbu uˇzivatelsk´eho rozhran´ı. • V´ yvojov´ y shell. • Asynchronn´ı implementace vzd´alen´eho vol´an´ı. Nejvˇetˇs´ı v´ yhodou t´eto sluˇzby je, ˇze pˇri dodrˇzen´ı urˇcit´ ych podm´ınek (aplikace nesm´ı pˇrekroˇcit velikost 500 MB a pˇribliˇznˇe pˇet milion˚ u zobrazen´ı str´anek) je zcela zdarma.
4.3
Microsoft Windows Azure
Diplomov´a pr´ace se zab´ yv´a pˇrev´aˇznˇe poskytovatelem Microsoft Windows Azure. Nejprve je uveden struˇcn´ y popis k ucelen´ı kapitoly zab´ yvaj´ıc´ı se poskytovateli cloudu. V n´asleduj´ıc´ı kapitole jsou Windows Azure a jeho sluˇzby detailnˇe pops´an jak z pohledu uˇzivatele tak v´ yvoj´aˇre. Windows Azure je soubor technologi´ı a sluˇzeb, kter´e umoˇzn ˇuj´ı spoleˇcnostem vyuˇz´ıvat ˇsk´alovatelnost a pruˇznost cloud computingu. Technologie neposkytuje pouze sluˇzby pro ukl´ad´an´ı dat v cloudu, ale tak´e umoˇzn ˇuje vytv´aˇret a pˇripojovat aplikace v cloudu. Flexibilita t´eto platformy umoˇzn ˇuje jednoduˇse ˇsk´alovat podle potˇreb spoleˇcnosti. Vˇse v r´amci obchodn´ıho modelu pay-as-you-go. Pro v´ yvoj´aˇre je Windows Azure skvˇel´a platforma pro v´ yvoj a bˇeh aplikac´ı v .NET, PHP a Java, hostovan´ ych v datov´ ych centrech spoleˇcnosti Microsoft. Platforma v podstatˇe eliminuje potˇrebu kupovat vlastn´ı servery a pˇridˇelovat zdroje [23].
25
5
Poˇ zadavky na aplikaci a v´ yvoj aplikace pro Windows Azure
Windows Azure je platforma jako sluˇzba (PaaS), kter´a byla pˇredstavena v roce 2008. Microsoft definuje Azure Platform jako ˇsk´alovatelnou servisnˇe zaloˇzenou platformu hostovanou v datov´ ych centrech spoleˇcnosti Microsoft. Platforma poskytuje operaˇcn´ı syst´em a sadu v´ yvoj´aˇrsk´ ych sluˇzeb, kter´e mohou b´ yt pouˇzity samostatnˇe nebo spoleˇcnˇe s platformou. Celkovou strategi´ı Microsoftu je kombinace priv´atn´ıho ˇreˇsen´ı a sluˇzeb zaloˇzen´ ych na cloudu. Souˇcasn´ y trend je, aby aplikace bˇeˇzela na serverech spoleˇcnost´ı, zat´ımco ostatn´ı komponenty budou v cloudu. Microsoft naz´ yv´a tuto strategii Software Plus Service. Hlavn´ım c´ılem spoleˇcnosti Microsoft je umoˇznit v´ yvoj´aˇr˚ um pouˇz´ıvat stejnou z´akladn´ı technologii pro vytv´aˇren´ı intern´ıch aplikac´ı i aplikac´ı smˇeˇrovan´ ych do cloudu.
Obr´azek 7: Architektura Windows Azure Platform [24]
26
Obr´azek ˇc. 7 zn´azorˇ nuje vˇsechny hlavn´ı komponenty Windows Azure Platform. K tˇemto sluˇzb´am je moˇzn´e pˇristupovat pˇres Management port´al. Na sch´ema bude nahl´ıˇzeno po jednotliv´ ych bloc´ıch: Marketplace, AppFabric, SQL Azure, Windows Azure a jejich ˇc´ast´ı. Jednotliv´e funkˇcn´ı celky jsou pops´any n´ıˇze.
5.1
Marketplace
Windows Azure je platforma jak pro aplikace, tak pro data. Pr´avˇe pro tyto u ´ˇcely Microsoft vytvoˇril sluˇzbu Marketplace. Marketplace je sluˇzba jej´ımˇz c´ılem je uˇzivateli poskytnout nejen aplikace, ale i data kter´a jsou mnohdy ˇz´adanˇejˇs´ı neˇz samotn´e aplikace. Tato sluˇzba dnes poskytuje pˇres 3 000 aplikac´ı a sluˇzeb, kter´e jsou rozdˇeleny do kategorii: virtu´aln´ı poˇc´ıtaˇce, aplikaˇcn´ı sluˇzby, aplikace Azure Active Directory, webov´e aplikace a datov´e sluˇzby. Veˇsker´e produkty jsou dostupn´e pˇres webov´e rozhran´ı, kter´e dovoluje uˇzivatel˚ um vyhledat, vyzkouˇset nebo zakoupit aplikaci ˇci data. Prostˇrednictv´ım marketplace mohou z´ıskat informace nejen uˇzivatel´e, ale i aplikace. Uˇzivatel˚ um k z´ısk´an´ı informac´ı slouˇz´ı sluˇzba platformy zvan´a Service Explorer. Tato sluˇzba umoˇzn ˇuje vyhledat, jak´e sady dat jsou k dispozici a pˇr´ıpadnˇe je i zakoupit. K zakoupen´ ym dat˚ um mohou aplikace pˇristupovat pomoc´ı dotaz˚ u pˇres rozhran´ı REST nebo OData. Dod´avan´a data mohou m´ıt aplikaˇcn´ı charakter, pak jsou uloˇzena ve Windows Azure Storage nebo datab´azov´ y charakter, pak jsou v SQL Azure. Data mohou b´ yt uloˇzena i externˇe v datov´ ych centrech poskytovatel˚ u. V marketplace lze zakoupit i data, kter´a nejsou uloˇzena pˇr´ımo v cloudu. Marketplace slouˇz´ı uˇzivateli jako centrum pro vyhled´av´an´ı a nakupov´an´ı dat. Pro poskytovatele dat je to n´astroj pro snadn´e vystaven´ı a spr´avu nab´ıdek. Ceny dat si urˇcuj´ı sami poskytovatel´e dat, ale fakturaˇcn´ı sluˇzby jdou pˇres komponentu DataMarket, tak aby byla zajiˇstˇena bezpeˇcnost a transparentnost plateb. Microsoft s´am provˇeˇruje kvalitu dod´avan´eho obsahu a rovnˇeˇz stanovil pravidlo, ˇze pro kaˇzd´e odvˇetv´ı sm´ı b´ yt pouze pˇet dodavatel˚ u dat. Pro aplikace ˇz´adn´e omezen´ı v pouˇz´ıv´an´ı zakoupen´ ych dat nen´ı, pokud nen´ı v rozporu s pravidly definovan´ ymi poskytovatelem [25]. Maj´ı-li b´ yt informaˇcn´ı technologie pˇr´ınosn´e, je potˇreba m´ıt k dispozici nejenom aplikace, ale tak´e kvalitn´ı data, bez nichˇz jsou mnohdy aplikace nepouˇziteln´e. Marketplace poskytuje bezpeˇcn´ y a jednoduch´ y zp˚ usob n´akupu dat, d´ıky tomu jsou pro spoleˇcnosti mnohem dostupnˇejˇs´ı.
27
5.2
AppFabric
Technologie AppFabric pom´ah´a v´ yvoj´aˇr˚ um propojit jak cloudov´e, tak i existuj´ıc´ı intern´ı aplikace. Pomoc´ı AppFabric lze propojit aplikace na platform´ach Windows Azure, Windows Server nebo i na jin´ ych technologi´ıch, jako jsou Java, Ruby, PHP atd. Tato technologie zajiˇst’uje konektivitu pˇres hranice s´ıt´ı a spoleˇcnost´ı prostˇrednictv´ım technologie Service Bus a ovˇeˇrovac´ı sluˇzby Access Control. V t´eto ˇca´sti diplomov´e pr´ace se pod´ıv´ame na tˇri komponenty dneˇsn´ıho AppFabric, jimiˇz jsou vyrovn´avac´ı pamˇet’ (Caching), ˇr´ızen´ı pˇr´ıstupu (Access Control) a servisn´ı sbˇernice (Service Bus).
5.2.1
Caching (vyrovn´ avac´ı pamˇ et’)
Jednou z hojnˇe vyuˇz´ıvan´ ych metod jak zrychlit bˇeh aplikace je ukl´ad´an´ı ˇcasto pouˇz´ıvan´ ych dat do vyrovn´avac´ı pamˇeti. Aplikace ˇcasto vyuˇz´ıvaj´ı data opakovanˇe a proto pokud se zrychl´ı pˇr´ıstup k tˇemto dat˚ um, zrychl´ı se i bˇeh aplikace. To je tak´e c´ılem sluˇzby Cashing kter´a je souˇc´ast´ı Windows Azure AppFabric. Sluˇzba Cashing umoˇzn ˇuje aplikac´ım pro Windows Azure pomoc´ı knihovny pˇristupovat a ukl´adat data do distribuovan´e vyrovn´avac´ı pamˇeti. Souˇc´ast´ı sluˇzby je lok´aln´ı vyrovn´avac´ı pamˇet’, kter´a uchov´av´a kopie ned´avno pouˇzit´ ych datov´ ych prvk˚ u pro kaˇzdou instanci role. Pokud aplikace prvek jeˇstˇe nepotˇrebovala a nen´ı tak v lok´aln´ı vyrovn´avac´ı pamˇeti, lze pomoc´ı knihovny tento prvek do pamˇeti uloˇzit. Pamˇet’ je sd´ılena mezi v´ıce instanc´ı Windows Azure, pˇriˇcemˇz kaˇzd´a instance obsahuje jin´a data. Aplikace vˇsak tuto skuteˇcnost nevid´ı, pouze poˇza´d´a o datov´ y prvek a sluˇzba ho sama vyhled´a ze spr´avn´e instance. Data, kter´a byla pouˇzita ned´avno, nejsou uloˇzena do lok´aln´ı vyrovn´avac´ı pamˇeti automaticky. Aplikace si sama ˇr´ıd´ı ukl´ad´an´ı datov´ ych prvk˚ u do pamˇeti pomoc´ı API rozhran´ı nebo je moˇzn´e nakonfigurovat aplikaci tak, aby ukl´adala do vyrovn´avac´ı pamˇeti data objektu relace (session). T´ım se doc´ıl´ı zrychlen´ı bˇehu aplikace beze zmˇeny k´odu. Sluˇzba vyrovn´avac´ı pamˇeti v cloudu je typu multi-tenant coˇz znamen´a, ˇze kaˇzd´a aplikace, kter´a vyuˇz´ıv´a sluˇzbu, dostane svoji vlastn´ı instanci, i kdyˇz je sd´ılena mezi v´ıce instancemi obr. ˇc. 8. Kaˇzd´a instance ovˇeˇruje identitu aplikace, a proto kaˇzd´a aplikace m´a pˇr´ıstup pouze ke sv´ ym dat˚ um, nikoli jin´ ym.
28
Obr´azek 8: Sch´ema sluˇzby Windows Azure AppFabric Caching [26] Sluˇzbu Cashing je v´ yhodn´e vyuˇz´ıvat, protoˇze m˚ uˇze zrychlit bˇeh aplikace, aniˇz by to znamenalo nˇejak´e vˇetˇs´ı u ´sil´ı pro v´ yvoj´aˇre. Nav´ıc t´ım, ˇze je poskytov´ana jako sluˇzba, je velice snadno pouˇziteln´a. Uk´azka implementace objektu, udrˇzovan´eho ve vyrovn´avac´ı pamˇeti: [ DataContract ] public c l a s s Car { [ DataMember ] p u b l i c s t r i n g Brand { g e t ; s e t ; } [ DataMember ] public string Model { g e t ; s e t ; } [ DataMember ] private d e c i m a l P r i c e { g e t ; s e t ; } public Car ( string brand , string model , d e c i m a l p r i c e ) { Brand = brand ; Model = model ; Price = price ;
29
}
Zdrojov´ y k´od 1: Vytvoˇren´ı objektu Car Tˇr´ıda Car obsahuje anotaci DataContract. Vlastnosti tˇr´ıdy Car obsahuj´ı anotaci DataMember. Tyto anotace umoˇzn´ı, aby objekt bylo moˇzn´e serializovat a mohl byl uloˇzen do vyrovn´avac´ı pamˇeti. Obˇe anotace poch´az´ı z knihovny System.ServiceModel, kter´a je souˇc´ast´ı .NET Frameworku.
5.2.2
ˇ ızen´ı pˇ Access Control (R´ r´ıstupu)
Dnes jiˇz vˇsechny distribuovan´e aplikace obsahuj´ı nˇejak´ y zp˚ usob ovˇeˇren´ı identity. Nejˇcastˇejˇs´ım zp˚ usobem je tzv. deklarovan´a identita (claim-based identity), kter´a umoˇzn ˇuje odesl´an´ı uˇzivatelsk´eho tokenu, jenˇz se skl´ad´a z nˇekolika deklarac´ı identity. Kaˇzd´a deklarace obsahuje urˇcitou informaci o uˇzivateli, kter´a je kryptograficky podeps´ana. Deklarace m˚ uˇze obsahovat napˇr´ıklad jm´eno uˇzivatele, jeho um´ıstˇen´ı, typ zaˇr´ızen´ı, na kter´em pracuje nebo skupinu do kter´e patˇr´ı. Podle tˇechto informac´ı v tokenu aplikace zjist´ı, o kter´eho uˇzivatele se jedn´a a jak´e m´a opr´avnˇen´ı. Aplikace m˚ uˇze tyto informace o uˇzivateli pouˇz´ıt i jin´ ym zp˚ usobem. Deklarovan´e identity (tokeny) vyd´avaj´ı r˚ uzn´ı poskytovatel´e. Nˇekteˇr´ı se specializuj´ı na vnitropodnikov´e zabezpeˇcen´ı, jin´ı vyd´avaj´ı tokeny na internetu a jsou pˇr´ıstupn´e vˇsem. Asi nejzn´amˇejˇs´ım z´astupcem vnitropodnikov´eho zabezpeˇcen´ı je Active Directory Federation Services (AD FS), z veˇrejn´ ych poskytovatel˚ u je to napˇr´ıklad. Google, Windows Live ID, Facebook. Kaˇzd´a aplikace se sama rozhoduje, jak´emu tokenu bude d˚ uvˇeˇrovat. Kaˇzd´ y poskytovatel tokenu pouˇz´ıv´a sv˚ uj vlastn´ı form´at deklarovan´ ych informac´ı. To p˚ usob´ı znaˇcn´e probl´emy pˇri identifikaci. Pokud m´a aplikace pˇrij´ımat tokeny od v´ıce poskytovatel˚ u (napˇr´ıklad od Google, Windows a Facebooku) mus´ı sama rozpozn´avat, od koho byl token posl´an. Z tohoto d˚ uvodu Microsoft zavedl sluˇzbu Access Control, kter´a slouˇz´ı jako meziˇcl´anek, kter´ y generuje tokeny jednotn´eho form´atu [27].
30
ˇ ızen´ı pˇr´ıstupu, zdroj: vlastn´ı d´ılo Obr´azek 9: Sch´ema fungov´an´ı R´ Na obr´azku ˇc. 9 je zn´azornˇeno, jak´ ym zp˚ usobem sluˇzba funguje: • Aplikace m˚ uˇze b´ yt um´ıstˇena v cloudu nebo lok´alnˇe. V obou pˇr´ıpadech k nim uˇzivatel pˇristupuje pomoc´ı prohl´ıˇzeˇce. Aplikace pˇresmˇeruje poˇzadavek z prohl´ıˇzeˇce na poskytovatele identity. Poskytovatel ovˇeˇr´ı jm´eno a heslo uˇzivatele a vygeneruje mu pˇr´ısluˇsn´ y token s informacemi o uˇzivateli. • Tento token n´aslednˇe uˇzivatel odeˇsle do sluˇzby Access Control. • Sluˇzba ovˇeˇr´ı, zda byl token vyd´an poskytovatelem identity a zkontroluje jeho platnost, pot´e vytvoˇr´ı nov´ y token podle definovan´ ych pravidel, kter´a jsou definov´ana v samostatn´e komponentˇe sluˇzby, a kter´ ymi se ˇr´ıd´ı pˇri vytv´aˇren´ı nov´eho tokenu. Administr´ator aplikace si m˚ uˇze s´am definovat pravidla, podle kter´ ych se budou to31
keny od poskytovatele identity transformovat. N´aslednˇe je nov´ y token odesl´an zpˇet k uˇzivateli. • V posledn´ım kroku uˇzivatel odeˇsle token od Access Control do aplikace. • Po obdrˇzen´ı tokenu aplikace ovˇeˇr´ı, zda je jedn´a o token vytvoˇren´ y sluˇzbou Access Control. Na prvn´ı pohled vypad´a cel´ y proces sloˇzitˇeji, neˇz by tomu bylo bez vyuˇzit´ı sluˇzby Access Control. Ale nen´ı tomu tak. D´ıky t´eto sluˇzbˇe je uˇsetˇreno hodnˇe pr´ace pˇri v´ yvoji aplikace. V´ yvoj´aˇr se nemus´ı zab´ yvat rozpozn´av´an´ım token˚ u a jejich informac´ı od mnoha poskytovatel˚ u. Aplikace sice pˇrij´ım´a pouze jeden druh tokenu ale i pˇresto je zachov´ana kompatibilita se vˇsemi poskytovateli identity. Veˇsker´e udrˇzov´an´ı vztah˚ u s poskytovateli identity si sluˇzba ˇr´ıd´ı sama. Aplikace d˚ uvˇeˇruje pouze sluˇzbˇe Access Control. Jak je vidˇet z obr´azku ˇc. 9, sluˇzba Access Control m˚ uˇze spolupracovat s libovoln´ ym poskytovatelem identity. Jedinou podm´ınkou je podpora standartu OpenID. O tokeny m˚ uˇze poˇz´adat i prohl´ıˇzeˇc nebo jin´ y klient pomoc´ı protokolu WS-Trust a OAuth 2. Je podporov´ano mnoho form´at˚ u tokenu napˇr´ıklad SAML 1.1, SAML 2.0 nebo Simple Web Token. D´ıky technologii Windows Identity Foundation lze snadno vytv´aˇret tokeny, kter´e akceptuje sluˇzba Access Control. Sluˇzba si klade za c´ıl snazˇs´ı tvorbu bezpeˇcn´ ych aplikac´ı, do nichˇz m˚ uˇze uˇzivatel pˇristupovat z mnoha r˚ uzn´ ych poskytovatel˚ u identity. Tato sluˇzba je zcela nez´avisl´a na platformˇe. Uk´azka implementace, jak´ ym zp˚ usobem lze validovat autorizaˇcn´ı token. public c l a s s A c e s s C o n t r o l l A u t h o r i z a t i o n T o k e n V a l i d a t o r { p u b l i c s t a t i c C l a i m s P r i n c i p a l R e t r i e v e C l a i m s ( s t r i n g token , s t r i n g p u b l i s h e r , L i s t <s t r i n g > a l l o w e d A u d i e n c e s ) { JWTSecurityTokenHandler t o k e n H a n d l e r = new JWTSecurityTokenHandler ( ) ; T o k e n V a l i d a t i o n P a r a m e t e r s v a l i d a t i o n P a r a m e t e r s = new TokenValidationParameters ( ) { AllowedAudiences = a l l o w e d A u d i e n c e s , V a l i d I s s u e r = p u b l i s h e r , SigningToken = new X509SecurityToken ( new X 5 0 9 C e r t i f i c a t e 2 ( G e t S i g n i n g C e r t i f i c a t e ( p u b l i s h e r + ” c e r t i f i c a t e F i l e ”) ) ) }; r e t u r n t o k e n H a n d l e r . ValidateToken ( token , v a l i d a t i o n P a r a m e t e r s ) ; }
32
}
Zdrojov´ y k´od 2: Validace autorizaˇcn´ıho tokenu
5.2.3
Sevice Bus (Servisn´ı sbˇ ernice)
Schopnost sd´ılet data mezi oddˇelen´ ymi syst´emy je problematick´e. Koncept distribuovan´eho syst´emu je jiˇz zaveden´ y, ale vyˇzaduje vyˇreˇsit probl´em se sd´ılen´ım dat mezi syst´emy. Jelikoˇz jsou informace i nad´ale nejd˚ uleˇzitˇejˇs´ı ˇca´st´ı aplikac´ı, je tˇreba naj´ıt zp˚ usob, jak´ ym budou tyto informace distribuov´any mezi vˇsechny ˇca´sti syst´emu. O tento probl´em se star´a sluˇzba Service Bus, kter´a pom´ah´a sd´ılet data mezi oddˇelen´ ymi syst´emy. Pokud chce spoleˇcnost v r´amci sv´e organizace provozovat aplikaci, kter´a poskytuje webovou sluˇzbu vytvoˇrenou v prostˇred´ı Windows Communication Foundation (WCF framework, kter´ y umoˇzn ˇuje vytv´aˇret servisnˇe orientovan´e aplikace a zajiˇst’uje komunikaci mezi nimi). Je nutn´e tuto sluˇzbu propojit prostˇrednictv´ım internetu s klientsk´ ym softwarem (ten je vˇetˇsinou mimo spoleˇcnost). Klientsk´ y software m˚ uˇze b´ yt provozov´an na platformˇe Windows Azure nebo uvnitˇr jin´e spoleˇcnosti. Aplikace sice nab´ız´ı sv´e funkce jako webov´e sluˇzby (jsou vyuˇzity REST konvence nebo SOAP), pˇresto nast´avaj´ı probl´emy ve snaze o jejich zviditelnˇen´ı okoln´ımu svˇetu [28]. ˇ sen´ı pˇrich´az´ı s Windows Azure Service Bus, kter´a slouˇz´ı jako registr, ve kter´em Reˇ aplikace mohou vyhledat koncov´e body, ke kter´ ym se mohou pˇripojit. Service bus ˇreˇs´ı i probl´em, pokud spoleˇcnost pouˇz´ıv´a NAT (pˇreklad s´ıtov´ ych adres) nebo se nach´az´ı za firewallem. Zp˚ usob ˇreˇsen´ı tˇechto probl´em˚ u je zn´azornˇen na obr´azku ˇc. 10.
33
Obr´azek 10: Sch´ema fungov´an´ı Servisn´ı sbˇernice, zdroj: vlastn´ı d´ılo Sluˇzba Windows Presentation Foundation (WPF) nejdˇr´ıve zaregistruje sv´e koncov´e body na servisn´ı sbˇernici (po registraci jsou vˇsechny zaregistrovan´e body WCF zpˇr´ıstupnˇeny jako koncov´e body sbˇernice). Sbˇernice pˇripojen´e spoleˇcnosti pˇridˇel´ı koˇrenov´ y identifik´ator, pomoc´ı nˇehoˇz m˚ uˇze spoleˇcnost vytvoˇrit libovolnou hierarchii n´azv˚ u. Koncov´emu bodu lze tak pˇridˇelit jeho vlastn´ı unik´atn´ı identifik´ator URI. Kaˇzd´e klientsk´e aplikaci, at’ uˇz je v cloudu nebo jin´e spoleˇcnosti, kter´a chce pouˇz´ıt webovou sluˇzbu, staˇc´ı poˇza´dat sbˇernici o nalezen´ı poˇzadovan´eho koncov´eho bodu. Sbˇernice poskytne registru identifik´ator URI koncov´eho bodu. Poˇzadavky klientsk´e aplikace ke sbˇernici jsou vyˇrizov´any pomoc´ı protokolu Atom Publishing (n´astupce RSS). Odpovˇed’ je vr´acena ve formˇe dokumentu sluˇzby AtomPub, kter´ y obsahuje odkazy na koncov´e body sbˇernice poskytnut´e vaˇs´ı aplikac´ı. Pomoc´ı tˇechto bod˚ u m˚ uˇze klient volat metody webov´e sluˇzby.
34
Obdrˇz´ı-li sbˇernice poˇzadavek na nˇejakou metodu z webov´e sluˇzby, zavol´a odpov´ıdaj´ıc´ı operaci koncov´eho bodu sluˇzby. Pokud je to moˇzn´e, sbˇernice zefektivn´ı komunikaci t´ım, ˇze vytvoˇr´ı pˇr´ım´e spojen´ı mezi aplikac´ı a jej´ım klientem. Doporuˇcen´ y zp˚ usob, jak z´ıskat zpr´avy z fronty, je pouˇzit´ı QueueClient objektu. QueueClient objekt m˚ uˇze pracovat ve dvou reˇzimech: ReceiveAndDelete a PeekLock. Pˇri pouˇzit´ı reˇzimu ReceiveAndDelete Service Bus obdrˇz´ı ˇza´dost o ˇcten´ı zpr´avy ve frontˇe, oznaˇc´ı ji jako zpracovanou a vr´at´ı ji do aplikace. ReceiveAndDelete je nejvhodnˇejˇs´ı pro obr´azky a jej´ı vyuˇzit´ı je nejlepˇs´ı tam, kde aplikaci nevad´ı, ˇze v pˇr´ıpadˇe selh´an´ı ˇcten´ı nejsou zpracov´any vˇsechny zpr´avy. Tento probl´em vznik´a, jelikoˇz zpr´ava se nejprve oznaˇc´ı za zpracovanou a teprve pot´e je umoˇznˇeno jej´ı ˇcten´ı. V pˇr´ıpadˇe p´adu aplikace a jej´ım restartu bude jiˇz zpr´ava oznaˇcena jako zpracovan´a a tud´ıˇz vynech´ana. PeekLock reˇzimu (v´ ychoz´ı reˇzim) je dvoustupˇ nov´ y reˇzim vhodn´ y pro aplikace, u kter´ ych nelze tolerovat chybˇej´ıc´ı zpr´avy. Jakmile Service Bus obdrˇz´ı ˇz´adost, vyhled´a zpr´avu a uzamkne ji. Po dokonˇcen´ı ˇcten´ı oznaˇc´ı zpr´avu jako Complete a odstran´ı ji z fronty. N´asleduj´ıc´ı pˇr´ıklad ukazuje, jak mohou b´ yt zpr´avy pˇrij´ım´any a zpracov´av´any pomoc´ı v´ ychoz´ıho PeekLock reˇzimu. string c o n n e c t i o n S t r i n g = CloudConfigurationManager . G e t S e t t i n g ( ” M i c r o s o f t . ServiceBus . ConnectionString ”) ; QueueClient C l i e n t = QueueClient . C r e a t e F r o m C o n n e c t i o n S t r i n g ( c o n n e c t i o n S t r i n g , ” TestQueue ” ) ; OnMessageOptions o p t i o n s = new OnMessageOptions ( ) ; o p t i o n s . AutoComplete = f a l s e ; o p t i o n s . AutoRenewTimeout = TimeSpan . FromMinutes ( 1 ) ; C l i e n t . OnMessage ( ( message ) => { try { message . P r o p e r t i e s [ ” T e s t P r o p e r t y ” ] ) ; message . Complete ( ) ; } catch ( Exception ) { message . Abandon ( ) ; }
35
};
Zdrojov´ y k´od 3: Pˇrij´ım´an´ı a zpracov´av´an´ı zpr´avy pomoc´ı PeekLock reˇzimu
5.3
SQL Azure
SQL Azure je datab´azov´a cloud sluˇzba zaloˇzena na technologii SQL Server, kter´a umoˇzn ˇuje spoleˇcnostem ukl´adat relaˇcn´ı data do cloudu a rychle mˇenit velikost sv´ ych datab´az´ı podle n´aroˇcnosti aplikace. Data jsou hostov´ana, ˇr´ızena a spravov´ana v datov´ ych centrech spoleˇcnosti Microsoft. Spoleˇcnosti mohou vytv´aˇret aplikace na sv´ ych lok´aln´ıch serverech a vyuˇz´ıvat jen cloud datab´azi SQL Azure nebo celou aplikaci vystavˇet na platformˇe Microsoft Windows Azure a uchov´avat sv´a data v cloudu. SQL Azure podporuje Transact-SQL (T-SQL), dotazovac´ı jazyk SQL Serveru, kter´ y nab´ız´ı vestavˇenou podporu pro vysokou dostupnost a odolnost proti chyb´am. Umoˇzn ˇuje, aby data byla synchronizov´ana mezi lok´aln´ı datab´az´ı SQL Server a cloudem [30]. 5.3.1
Relation Database (Relaˇ cn´ı datab´ aze)
Sluˇzba poskytuje z´akladn´ı datab´azov´e funkce SQL Serveru. Aplikace, kterou vyuˇz´ıv´a SQL Azure, m˚ uˇze bˇeˇzet na Windows Azure Platform, ve spoleˇcnosti, v datov´em centru, na mobiln´ım zaˇr´ızen´ı nebo kdekoli jinde. Aplikace ze sv´eho um´ıstˇen´ı obvykle pˇristupuje k dat˚ um prostˇrednictv´ım protokolu s n´azvem Tabular Data Stream (TDS). Jedn´a se o stejn´ y protokol, kter´ y se pouˇz´ıv´a pro pˇr´ıstup k lok´aln´ı datab´azi SQL Serveru, d´ıky kter´emu lze pouˇz´ıt st´avaj´ıc´ıho klienta SQL Serveru. Ten zahrnuje Entity Framework, ADO.NET, ODBC, PHP a dalˇs´ı. Protoˇze SQL Azure Database je v podstatˇe jako obyˇcejn´ y syst´em SQL Server, mohou b´ yt tak´e pouˇzity i standardn´ı n´astroje vˇcetnˇe SQL Server Management Studio, SQL Server Integration Services a BCP pro hromadn´e kop´ırov´an´ı dat. Sluˇzba SQL Azure m˚ uˇze vyuˇz´ıvat jeden nebo v´ıce virtu´aln´ıch server˚ u. Tyto servery poskytuj´ı zp˚ usob jak organizovat data, ale nejedn´a se o skuteˇcn´e instance SQL Serveru. Virtu´aln´ı server m˚ uˇze m´ıt v´ıce datab´az´ı, z nichˇz kaˇzd´a m˚ uˇze m´ıt velikost aˇz 150GB. Je tak´e moˇzn´e uloˇzit snapshot z jedn´e datab´aze SQL Azure do druh´e a zajistit si tak jednoduch´ y z´aloˇzn´ı mechanismus. I kdyˇz se SQL Azure jev´ı stejnˇe jako klasick´ y SQL Server, tato sluˇzba poskytuje daleko robustnˇejˇs´ı ˇreˇsen´ı. Veˇsker´a data uloˇzen´a v t´eto sluˇzbˇe jsou tˇrikr´at replikov´ana, aby byla zajiˇstˇena vysok´a dostupnost. C´ılem je poskytnout spolehliv´e ukl´ad´an´ı dat i v pˇr´ıpadˇe selh´an´ı syst´emu nebo s´ıtˇe. 36
5.3.2
DataSync (Synchronizace dat)
Komponenta DataSync je vhodn´a v pˇr´ıpadech, kdy je potˇreba uloˇzit kopie dat spoleˇcnosti i na jin´e m´ısto, napˇr´ıklad z d˚ uvodu v´ ykonu, dostupnosti nebo bezpeˇcnosti. Komponenta dok´aˇze synchronizovat tato data mezi dvˇema nebo v´ıce um´ıstˇen´ımi. Microsoft Sync Framework sice poskytuje podporu pro synchronizaci, ale je nutn´e si ji naimplementovat. Pro usnadnˇen´ı pr´ace Microsoft nab´ız´ı komponentu SQL Azure Data Sync, kter´a zajiˇst’uje synchronizaci, aniˇz bychom museli ps´at k´od sami. Tato technologie je zcela ˇr´ızena konfigurac´ı. SQL Azure Data Sync podporuje dvˇe moˇznosti synchronizace: Synchronizace lok´ aln´ı datab´ aze s datab´ az´ı SQL Azure. Lok´aln´ı kopie z dat v cloudu m˚ uˇze b´ yt ˇz´adan´a z nˇekolika d˚ uvod˚ u: • St´atn´ı legislativa naˇrizuje m´ıt z´aloˇzn´ı kopie dat z cloudu na u ´zem´ı vlastn´ıho st´atu. • Je nutn´a nepˇretrˇzit´a dostupnost dat a to i v pˇr´ıpadˇe v´ ypadku s´ıtˇe. • Integrovan´a replikace, kter´a je souˇc´ast´ı SQL Azure sice chr´an´ı data v˚ uˇci poruch´am hardwaru, ale uˇzivatel ji ned˚ uvˇeˇruje a chce se vyhnout pˇr´ıpadn´e chybˇe. Jakou napˇr´ıklad m˚ uˇze b´ yt odstranˇen´ı nespr´avn´e tabulky, a proto si ukl´ad´a vlastn´ı lok´aln´ı kopii dat. Synchronizace dat v cloudu. Spoleˇcnost synchronizuje sv´e datab´aze SQL Azure mezi r˚ uzn´ ymi datov´ ymi centry (kontinenty). Toto ˇreˇsen´ı je vhodn´e, pokud m´a spoleˇcnost rozm´ıstˇeny uˇzivatele po cel´em svˇetˇe. V tom pˇr´ıpadˇe strategicky um´ıst´ı sv´a data do vˇsech ˇca´st´ı svˇeta a zlepˇs´ı tak v´ ykon aplikace pro vˇsechny uˇzivatele. Sluˇzba SQL Azure DataSync pouˇz´ıv´a s´ıtov´ y model hvˇezda. Zmˇeny ze vˇsech datab´az´ı jsou nejdˇr´ıv zkop´ırov´any do centr´aln´ı synchronizaˇcn´ı datab´aze SQL Azure, tam jsou sjednoceny a aktu´aln´ı verze je odesl´ana zpˇet do datab´az´ı. Sluˇzba umoˇzn ˇuje synchronizaci cel´e datab´aze, nebo jednotliv´e tabulky. D´ıky principu topologie hvˇezda je zmˇena ˇ kter´ekoli datab´aze odesl´ana vˇsem ostatn´ım prvk˚ um. Cleny topologie mohou b´ yt SQL Azure nebo lok´aln´ı datab´aze. Synchronizace je pl´anov´ana skrze pl´anovaˇc, ale lze ji ji spustit i manu´alnˇe.
37
5.4
Compute
Compute je jednou ze z´akladn´ıch sluˇzeb Windows Azure. Jedn´a se v podstatˇe o hosting virtu´aln´ıch operaˇcn´ıch syst´em˚ u, kter´ y slouˇz´ı k provozu a v´ ypoˇctu aplikac´ı funguj´ıc´ıch jako sluˇzba. Je rozdˇelen do tˇr´ı ˇca´st´ı: Web Role, Worker Role a VM Role. Z nichˇz kaˇzd´a ˇca´st je vhodn´a pro jinou situaci. Fyzicky kaˇzd´a tato role bˇeˇz´ı na Windows Serveru 2008 R2 64 bit s nainstalovan´ ym .NET 4.0 frameworkem. Sluˇzba Compute umoˇzn ˇuje hostovat i aplikace kter´e nejsou vytvoˇreny technologiemi spoleˇcnosti Microsoft. Uˇzivatel m˚ uˇze sv˚ uj hosting ˇsk´alovat libovoln´ ym poˇctem instanc´ı v´ yˇse zm´ınˇen´ ych rol´ı a velikost´ı dan´e instance. Velikost instance se ud´av´a ve velikosti pevn´eho disku, v´ ykonu procesoru, velikosti operaˇcn´ı pamˇeti a propustnosti. U cloud computingu je zvykem, ˇze uˇzivatel m˚ uˇze tento v´ ypoˇcetn´ı v´ ykon kdykoli operativnˇe pˇrizp˚ usobovat sv´ ym potˇreb´am. Microsoft garantuje vysokou dostupnost sluˇzby pouze v pˇr´ıpadˇe naplnˇen´ı podm´ınky minim´aln´ıho poˇctu instanc´ı (dvou a v´ıce instanc´ı dan´e role). V pˇr´ıpadˇe v´ ypadku sluˇzby je role automaticky restartov´ana. Pokud ani pot´e neodpov´ıd´a, aplikace je automaticky pˇresunuta na jin´ y server [29].
5.4.1
Web Role
Web Role slouˇz´ı pro hostov´an´ı webov´ ych aplikac´ı bˇeˇz´ıc´ıch na webov´em serveru IIS. Sluˇzba podporuje aplikace vytvoˇren´e pomoc´ı technologie ASP.NET WebForms, ASP.NET MVC 9 nebo webov´ ych sluˇzeb WCF 10. V pˇr´ıpadˇe, ˇze webov´ y server obsahuje modul FastCGI je moˇzn´e provozovat i aplikace naprogramovan´e v jazyc´ıch Java, PHP, Ruby a dalˇs´ıch. Na server je moˇzn´e nainstalovat i datab´azov´ y server MySQL a aplikaˇcn´ı server Tomcat. Instance Web Role jsou tzv. nestavov´e servery (neobsahuj´ı vlastn´ı u ´loˇziˇstˇe), proto je nutn´e data ukl´adat do extern´ı sluˇzby v cloud podobˇe napˇr. Windows Azure Storage, DBMS SQL Azure nebo vlastn´ıho lok´aln´ıho ˇreˇsen´ı.
5.4.2
Worker Role
Worker Role neobsahuje webov´ y server a proto je vhodn´ y pro aplikace, kter´e pracuj´ı na pozad´ı. Worker Role se velmi podob´a sluˇzb´am v operaˇcn´ım syst´emu Windows. Worker Role obsahuj´ı tˇri z´akladn´ı metody: OnStart(), OnStop() a Run(). Prvn´ı metoda slouˇz´ı pro inicializaˇcn´ı pˇr´ıkazy, druh´a pro uvolnˇen´ı zdroj˚ u (´ uklid po aplikaci) a tˇret´ı pro bˇeh samotn´e aplikace v niˇz se nach´az´ı aplikaˇcn´ı logiku, kter´a je obvykle obsaˇzena v nekoneˇcn´em cyklu,
38
napˇr. while(true) cyklu. Ve chv´ıli, kdy by tento cyklus skonˇcil, dojde k recyklaci Worker Role neboli k jej´ımu ukonˇcen´ı. Pro ukl´ad´an´ı dat je potˇreba vyuˇz´ıt jedno z perzistentn´ıch datov´ ych u ´loˇziˇst’ jako je tomu u Web Role, Pro uloˇzen´ı lze pouˇz´ıt Windows Azure Storage nebo SQL Azure [2]. N´asleduj´ıc´ı pˇr´ıklad zobrazuje typickou smyˇcku Worker Role, ve kter´e prob´ıh´a poˇzadovan´a ˇcinnost (napˇr´ıklad kontrola fronty, spuˇstˇen´ı WCF sluˇzeb nebo TCP serveru).
public c l a s s WorkerRole : R o le En t ry Po i nt { p u b l i c o v e r r i d e v o i d Run ( ) { while ( true ){ Thread . S l e e p ( 1 0 0 0 ) ; } } public override b o o l OnStart ( ) { r e t u r n b a s e . OnStart ( ) ; } public override v o i d OnStop ( ) { b a s e . OnStop ( ) ; } }
Zdrojov´ y k´od 4: Uk´azka cyklu pracovn´ı role
5.4.3
VM Role
Jedn´a se o sluˇzbu, kter´a umoˇzn ˇuje provozovat aplikace, kter´e zat´ım nejsou uzp˚ usobeny tak, aby bˇeˇzely v jedn´e z pˇredchoz´ıch dvou rol´ı. V tomto pˇr´ıpadˇe jsou aplikace nasazov´any z´aroveˇ n s operaˇcn´ım syst´emem v podobˇe virtu´aln´ıho obrazu disku VHD. C´ılem je urychlit pˇrechod z lok´aln´ıho ˇreˇsen´ı do cloudu. Sluˇzba VM Role neposkytuje kompletnˇe servisovan´ y operaˇcn´ı syst´em, to znamen´a, ˇze se uˇzivatel mus´ı s´am starat o aktualizaci syst´emu, z´alohov´an´ı a monitorov´an´ı. VM roli je vhodn´e pouˇz´ıt pokud: • Je potˇreba nainstalovat aplikace, jej´ıˇz instalace zabere hodnˇe ˇcasu. • Instalace aplikace je velmi n´achyln´a k chyb´am • Aplikaci nelze nasadit na Worker Role ani Web Role.
39
5.5
Storage
Windows Azure Storage je jedn´ım ze z´akladn´ıch pil´ıˇr˚ u Windows Azure, kter´ y se star´a o skladov´an´ı dat. Jeho nejvˇetˇs´ı v´ yhodou je moˇznost uloˇzen´ı jak´ehokoliv mnoˇzstv´ı dat t´emˇeˇr bez limitu. Rozd´ıl oproti SQL Azure je absence pokroˇcil´ ych n´astroj˚ u relaˇcn´ıch datab´az´ı (relace mezi daty, sekund´arn´ı indexy, uloˇzen´e procedury, funkce, triggery, atp.). Lze do nˇej uloˇzit t´emˇeˇr cokoliv, nez´aleˇz´ı na datov´em typu. Sluˇzba Storage je rozdˇelena do ˇctyˇr ˇca´st´ı Table, Blob, Drive a Queue. Kaˇzd´a je vhodn´a na nˇeco jin´eho a vyˇzaduje jin´ y pˇr´ıstup. Podrobnˇeji budou rozebr´any v n´asleduj´ıc´ıch kapitol´ach. Pˇr´ıstup ke sluˇzbˇe je zajiˇstˇen pomoc´ı REST API, protokolu HTTP nebo HTTPS a knihovny Microsoft.WindowsAzure.StorageClient. D´ıky 512 bitov´emu symetrick´emu kl´ıˇci a sluˇzbˇe Shared Access Signatures je zaruˇcena bezpeˇcnost pˇrenosu a dat. Pˇr´ıstup do u ´loˇziˇstˇe dat je moˇzn´e definovat v konfiguraˇcn´ım souboru a m´a n´asleduj´ıc´ı tvar: <S e t t i n g name=”C o n n e c t i o n S t r i n g ” v a l u e=”D e f a u l t E n d p o i n t s P r o t o c o l=h t t p s ; AccountName=mystorage ; AzureccountKey=1g18k0r1A1UgwVlCEWpejq5N437xwIld0famNQWJUhKfQ” />
Zdrojov´ y k´od 5: Pˇr´ıstupov´ y ˇretˇezec ˇ ezec je sloˇzen z n´azvu u Retˇ ´ˇctu v u ´loˇziˇsti, protokolu HTTP nebo HTTPS a symetrick´eho kl´ıˇce. Pˇr´ıstupov´ y ˇretˇezec se zpracuje pomoc´ı v´ yˇse zm´ınˇen´e knihovny.
var a c c o u n t = CloudStorageAccount . Parse ( RoleEnvironment . G e t C o n f i g u r a t i o n S e t t i n g V a l u e ( ” C o n n e c t i o n S t r i n g ” ) ) ; var b l o b C l i e n t = a c c o u n t . C r e a t e C l o u d B l o b C l i e n t ( ) ; b l o b C l i e n t . R e t r y P o l i c y = R e t r y P o l i c i e s . Retry ( 3 , TimeSpan . FromSeconds ( 5 ) ) ; b l o b C l i e n t . Timeout = TimeSpan . FromMinutes ( 5 ) ;
Zdrojov´ y k´od 6: Vytvoˇren´ı pˇr´ıstupu k Blob datab´azi
40
5.5.1
Table Storage
Sluˇzba Table Storage slouˇz´ı pro ukl´ad´an´ı strukturovan´ ych dat podobnˇe jako SQL Azure s t´ım rozd´ılem, ˇze neumoˇzn ˇuje pracovat s relaˇcn´ımi daty. K tabulk´am se pˇristupuje pˇres REST API nebo ADO.NET Data Services a LINQ. Pro pˇr´ıstupu do Table Storage se pouˇz´ıv´a URL adresa s n´asleduj´ıc´ım tvarem: ://.table.core.windows.net/Tables(‘
’) Url je sloˇzena z account - u ´ˇcet vytvoˇren´ y ve Windows Azure Storage a table - n´azev pˇr´ısluˇsn´e tabulky, ke kter´e chceme z´ıskat pˇr´ıstup. N´azev tabulky mus´ı obsahovat validn´ı DNS n´azev sloˇzen´ y pouze z alfanumerick´ ych znak˚ u, kde prvn´ı znak mus´ı b´ yt p´ısmeno a d´elka n´azvu nesm´ı pˇrevyˇsovat rozmez´ı 3 - 63 znak˚ u. N´azev tabulky nesm´ı b´ yt na uˇzivatelsk´em u ´ˇctu duplicitn´ı. N´azvy jsou zad´av´any case sensitive (tj. rozliˇsov´an´ı mal´ ych a velk´ ych p´ısmen). Pro pr´aci s Table Storage je nutn´e definovat entity. Kaˇzd´a entita je reprezentov´ana ˇra´dky v tabulce. Vlastnosti entit jsou definov´any jako sloupce. Pˇr´ıklad definuje tˇr´ıdu UrlEntry.
public c l a s s UrlEntry : T a b l e S e r v i c e E n t i t y { p u b l i c UrlEntry ( ) { } public UrlEntry ( string tag , Guid r e f e r e n c e G u i d ) { t h i s . PartitionKey = tag ; t h i s . RowKey = r e f e r e n c e G u i d . T o S t r i n g ( ) ; } public v o i d AddTag ( string tag , Guid r e f e r e n c e G u i d ) { var a c c o u n t = CloudStorageAccount . Parse ( RoleEnvironment . G e t C o n f i g u r a t i o n S e t t i n g V a l u e ( ” D a t a C o n n e c t i o n S t r i n g ” ) ) ; var c l o u d T a b l e C l i e n t = a c c o u n t . C r e a t e C l o u d T a b l e C l i e n t ( ) ; T a b l e S e r v i c e C o n t e x t dataContext = cloudTableClient . GetDataServiceContext ( ) ; dataContext . AddObject ( ” TagTable ” , new UrlEntry ( tag , r e f e r e n c e G u i d ) ) ; dataContext . SaveChangesWithRetries ( ) ; } }
Zdrojov´ y k´od 7: Definice tˇr´ıdy UrlEntry 41
5.5.2
Blob Storage
Blob Storage je nestrukturovan´e u ´loˇziˇstˇe dat s podobn´ ym chov´an´ım jako souborov´ y syst´em. Jeho hlavn´ım vyuˇzit´ı je ukl´ad´an´ı velk´ ych bin´arn´ıch soubor˚ u napˇr. docx, xlsx, pptx, pdf, xml,avi, mp3, mp4 a jin´ ych. Sluˇzba je sloˇzena z Block Blobu a Page Blobu. Block Blob je vhodn´ y, pokud chceme c´ılov´emu uˇzivateli streamovat obsah blobu. Je tedy vhodn´ y pro ukl´ad´an´ı videa nebo audia. Blob je sloˇzen z mnoˇziny blok˚ u, kde kaˇzd´ y m´a velikost maxim´alnˇe 4MB a maxim´aln´ı velikost cel´eho blobu je 200 GB. Page Blob je kolekce bloku o velikosti 512 byte optimalizovan´ ych pro n´ahodn´e ˇcten´ı nebo z´apis. Oproti Block Blobu poskytuje vˇetˇs´ı velikost jednoho blobu (maxim´aln´ı velikost ˇcin´ı 1TB). Volbu nelze kde
blobu
zmˇenit. kaˇzd´ y
mus´ı
uˇzivatel
Pˇripojen´ı
do
blob
je
zvolit Blob
zpˇr´ıstupnˇen
pˇri Storage
pˇres
jeho
vytv´aˇren´ı,
prob´ıh´a
vlastn´ı
URL
pˇres
pot´e REST
n´asleduj´ıc´ıho
uˇz
ho API,
tvaru:
://.blob.core.windows.net// Url oproti Table Storage se liˇs´ı pouze v defaultn´ı url (blob.core.windows.net) a koncovce. Container oznaˇcuje n´azev kontejneru, kter´ y lze pˇrirovnat k adres´aˇri ve Windows. Na konci je dan´ y blob, se kter´ ym chceme pracovat. N´azvy blob˚ u mus´ı uˇzivatel volit s ohledem na to, ˇze jejich n´azvy jsou souˇca´st´ı url. Z tohoto d˚ uvodu by nemˇeli obsahovat specifick´e znaky n´arodn´ı abecedy. Metadata obsaˇzena ve vˇsech kontejnerech a blobech [2] : • ETag (entity tag) – otisk souboru slouˇz´ıc´ı v HTTP protokolu pˇredevˇs´ım ke cachov´an´ı a mechanismu optimistic concurrency control. • Last-Modified – datum a ˇcas posledn´ı zmˇeny blobu, jak´akoliv operace z´apisu, provede zmˇenu v tomto atributu. • Content-Length – velikost obsahu zpr´avy v bytech. • Content-Type – typ obsahu, napˇr. text/html. • Content-MD5 – otisk MD5 pro kontrolu integrity pˇrenosu. • Content-Encoding – typ k´odov´an´ı, napˇr. gzip. • Content-Language – jazyk zpr´avy, napˇr. en“ pro angliˇctinu nebo cs“ pro ˇceˇstinu. ” ” • Cache-Control – zp˚ usob pouˇzit´eho cachovac´ıho algoritmu, napˇr. no-cache, max-age, atd. 42
Pˇr´ıstup ke kontejner˚ um a blob˚ um je ˇr´ızen pomoc´ı ACL (syst´emu ˇr´ızen´ı pˇr´ıstupu). Jednotliv´ ym kontejner˚ um nebo blob˚ um je pˇridˇelena jedna z n´asleduj´ıc´ıch tˇr´ı u ´rovn´ı: • Full public read access • Public read acces for blobs only • No public read access Uk´azka uloˇzen´ı souboru do blobu.
CloudBlobContainer c o n t a i n e r = b l o b C l i e n t . G e t C o n t a i n e r R e f e r e n c e ( ” documentContainer ” ) ; container . CreateIfNotExist () ; CloudBlob b l o b = c o n t a i n e r . G e t B l o b R e f e r e n c e ( ” testDocument . xml ” ) ; NameValueCollection metadata = new NameValueCollection ( ) ; metadata . Add( ” f i l e n a m e ” , ” testDocument . xml ” ) ; b l o b . P r o p e r t i e s . ContentType = o f f i c e D o c u m e n t . ContentType ; b l o b . Metadata . Add( metadata ) ; b l o b . U p l o a d F i l e (@PATH) ;
Zdrojov´ y k´od 8: Uloˇzen´ı Word dokumentu do Blob Storage Soubor
Drive Storage slouˇz´ı jako permanentn´ı u ´loˇziˇstˇe dat, zjednoduˇsuj´ıc´ı migraci lok´aln´ıch aplikac´ı do cloudu. Poskytuje shodn´ y princip pro pr´aci a ukl´ad´an´ı dat na jak´ ym jsou uˇzivatel´e zvykl´ı pˇri pr´aci ve Windows. Jedn´a se o souborov´ y syst´em NTFS, kter´ y je provozov´an v podobˇe VHD disku. Vlastnosti Drive Storage: • Disk je naform´atov´an´ y na NTFS s pevnou velikost´ı mezi 16 MB a 1TB. • Jedna VM role m˚ uˇze m´ıt pˇripojeno aˇz 16 disk˚ u. • Pokud jeden disk je vyuˇz´ıv´am jednou VM rol´ı v reˇzimu read/write, ˇza´dn´a dalˇs´ı role nem˚ uˇze do tohoto disku zapisovat, m˚ uˇze z nˇej pouze ˇc´ıst. • Snadn´a z´aloha skrze snapshoty. 43
5.5.4
Queue Storage
Queue Storage slouˇz´ı pro komunikaci mezi Web a Worker rolemi za pomoc´ı fronty zpr´av. Tuto sluˇzbu lze pˇrirovnat k Message oriented middleware. Na platformnˇe Microsoft je to MSMQ (Microsoft Message Queuing) a na Java platformnˇe JMS (Java Message Service). Rozd´ıl je v tom, ˇze funguje v cloudu. Hlavn´ı u ´ˇcel sluˇzby je v´ ymˇena zpr´av pˇri komunikaci mezi jednotliv´ ymi aplikacemi. Bˇeˇz´ı-li sluˇzba na v´ıce serverech, vznik´a probl´em, protoˇze Queue Storage negarantuje model fronty FIFO (First in, First out). Podobnˇe jako u pˇredchoz´ıch sluˇzeb se pˇristupuje pˇres Rest API pomoc´ı n´asleduj´ıc´ı URL: ://.queue.core.windows.net Queue Storage sice poskytuje ˇsk´alovatelnou a vysoce dostupnou infrastrukturu pro asynchronn´ı komunikaci zpr´av, ale je nutn´e dodrˇzovat n´asleduj´ıc´ı pravidla: • Velikost jedn´e zpr´avy nesm´ı pˇres´ahnout 8 KB, jejich poˇcet vˇsak nen´ı neomezen´ y. • Zpr´ava se automaticky smaˇze po 7 dnech. • Zpr´ava m˚ uˇze b´ yt zpracov´ana v´ıcekr´at, pokud pˇri zpracov´an´ı jedna instance havaruje jeˇstˇe pˇred oznaˇcen´ım zpr´avy jako pˇreˇcten´e. Jin´a instance potom zaˇcne zpracov´avat tut´eˇz zpr´avu. • Zpr´avy mus´ı b´ yt zak´odov´any ve form´atu Base64. Uk´azkov´ y pˇr´ıklad vytvoˇren´ı jednoduch´e zpr´avy s URL adresou souboru, kter´ y ˇcek´a na zpracov´an´ı v blobu.
CloudQueueClient q u e u e C l i e n t = a c c o u n t . CreateCloudQueueClient ( ) ; string queueName = ” documentqueue ” ; CloudQueue queue = q u e u e C l i e n t . GetQueueReference ( queueName ) ; queue . C r e a t e I f N o t E x i s t ( ) ; string b l o b U r l = ” h t t p s : // mystorage . b l o b . c o r e . windows . n e t / documentContainer / testDocument . xml” CloudQueueMessage msg = new CloudQueueMessage ( b l o b U r l ) ; queue . AddMessage ( msg ) ;
Zdrojov´ y k´od 9: Vytvoˇren´ı zpr´avy
44
6
Implementace uk´ azkov´ e aplikace
Tato kapitola je vˇenov´ana re´aln´emu informaˇcn´ımu syst´emu a tomu jak syst´em vyuˇz´ıv´a cloud computing. Informaˇcn´ı syst´em byl vytvoˇren jako komerˇcn´ı projekt v t´ ymu nˇekolika lid´ı a mˇel by slouˇzit jako syst´em pro spr´avu elektronick´eho obchodu. Pomoc´ı nˇej lze vytvoˇrit a spravovat internetov´e obchody bez hlubˇs´ıch znalost´ı informaˇcn´ıch technologi´ı. Souˇc´ast´ı informaˇcn´ıho syst´emu je spr´ava internetov´eho obchodu a plnohodnotn´a elektronick´a pokladna, kter´a je nutnost´ı v kaˇzd´e prodejnˇe. Nejvˇetˇs´ı v´ yhodou syst´emu je slouˇcen´ı internetov´eho obchodu a elektronick´ ych pokladen do jednoho informaˇcn´ıho syst´emu, d´ıky nˇemuˇz poskytuje pˇrehlednou a jednoduchou spr´avu vˇsech transakc´ı z pokladen.
Obr´azek 11: Sch´ema informaˇcn´ıho syst´emu, zdroj: vlastn´ı d´ılo Syst´em je kombinac´ı dvou funkˇcn´ıch celk˚ u - webov´eho port´alu a elektronick´e pokladny, kter´e jsou nab´ızeny z´akazn´ıkovi jako sluˇzba.
45
6.1
Archivace do Blob Storage
Jednou z funkc´ı informaˇcn´ıho syst´emu je archivace obchodn´ıch stvrzenek do cloudu, kterou vytvoˇril autor t´eto diplomov´e pr´ace. Jedn´a se v podstatˇe o archivaci XML soubor˚ u, kter´e jsou pos´ıl´any ze vˇsech elektronick´ ych pokladen. Pro ukl´ad´an´ı dat byla zvolena sluˇzba Blob Storage, protoˇze poskytuje vysoce ˇsk´alovateln´e prostˇred´ı a nab´ız´ı velkoprostorov´e u ´loˇziˇstˇe dat. Pˇri rozhodov´an´ı jak´ y blob m´a b´ yt pouˇzit, bylo pˇrihl´ednuto k Block Blobu z d˚ uvodu nutnosti paraleln´ıho uploadu blob˚ u.
Postup pˇ ri pr´ aci s Blob Storage: Prvn´ım krokem je vytvoˇren´ı pˇripojovac´ıho ˇretˇezce do u ´loˇziˇstˇe, k tomuto u ´ˇcelu slouˇz´ı knihovna Azure Storage Client, kter´a umoˇzn ˇuje vytvoˇren´ı ˇretˇezce pro pˇripojen´ı ke ˇ ezec je vygenerov´an pomoc´ı uˇzivatelsk´eho jm´ena a kl´ıˇce. V´ koncov´emu bodu. Retˇ ysledn´ y vygenerovan´ y kl´ıˇc m´a n´asleduj´ıc´ı tvar:
c o n f i g u r a t i o n >
Zdrojov´ y k´od 10: Vytvoˇren´ı pˇripojovac´ıho ˇretˇezce Pro n´asledn´e pˇripojen´ı do u ´loˇziˇstˇe je moˇzn´e pouˇz´ıt CloudStorageAccount, kter´ y reprezentuje informace o u ´loˇziˇsti. Pomoc´ı CloudConfigurationManager tyto informace z´ısk´ame z konfiguraˇcn´ıho souboru. CloudBlobClient umoˇzn ˇuje naˇc´ıst objekty, kter´e pˇredstavuj´ı kontejnery a bloby uloˇzen´ ych v Blob Storage.
CloudStorageAccount s t o r a g e A c c o u n t = CloudStorageAccount . Parse ( CloudConfigurationManager . G e t S e t t i n g ( ” S t o r a g e C o n n e c t i o n S t r i n g ” ) ) ; CloudBlobClient blobClient = storageAccount . CreateCloudBlobClient ( ) ;
Zdrojov´ y k´od 11: Z´ısk´an´ı informac´ı o u ´ˇctu
46
Kaˇzd´ y blob mus´ı b´ yt um´ıstˇen do kontejneru. Ten si lze pˇredstavit jako sloˇzku ve Windows, kter´a m´a v sobˇe uloˇzen´e r˚ uzn´e soubory.
CloudBlobContainer c o n t a i n e r = b l o b C l i e n t . G e t C o n t a i n e r R e f e r e n c e ( ” mycontainer ” ) ; container . CreateIfNotExists () ;
Zdrojov´ y k´od 12: Vytvoˇren´ı kontejneru pro bloby Ve v´ ychoz´ım nastaven´ı je nov´ y kontejner soukrom´ y. Pro pˇr´ıstup do blobu uvnitˇr kontejneru je potˇreba zadat pˇr´ıstupov´ y kl´ıˇc. Pokud nen´ı ˇza´douc´ı, aby byl kontejner soukrom´ y, lze pouˇz´ıt n´asleduj´ıc´ı k´od:
container . SetPermissions ( new B l o b C o n t a i n e r P e r m i s s i o n s { P u b l i c A c c e s s = B l o b C o n t a i n e r P u b l i c A c c e s s T y p e . Blob } ) ;
Zdrojov´ y k´od 13: Zmˇena opr´avnˇen´ı kontejneru V naˇsem pˇr´ıpadˇe je ovˇsem ˇza´douc´ı, aby byl kontejner z˚ ustal soukrom´ y. Pˇri nahr´an´ı souboru do blobu, je nutn´e nejprve z´ıskat odkaz na kontejner a pomoc´ı nˇehoˇz referenci na blob. Po z´ısk´an´ı reference je moˇzn´e nahr´at jak´ ykoliv soubor vol´an´ım metody UploadFromFile. Tato operace vytvoˇr´ı blob, pokud jiˇz dˇr´ıve neexistoval, pokud ano pˇrep´ıˇse jej a nahraje do blobu poˇzadovan´ y obsah. Prvn´ım parametrem je cesta k souboru a druh´ y parametr ˇr´ık´a jak soubor otevˇr´ıt.
CloudStorageAccount s t o r a g e A c c o u n t = CloudStorageAccount . Parse ( CloudConfigurationManager . G e t S e t t i n g ( ” S t o r a g e C o n n e c t i o n S t r i n g ” ) ) ; CloudBlobClient blobClient = storageAccount . CreateCloudBlobClient ( ) ; CloudBlobContainer c o n t a i n e r = b l o b C l i e n t . G e t C o n t a i n e r R e f e r e n c e ( ” r e c e i p t ” ) ; CloudBlockBlob b l o c k B l o b = c o n t a i n e r . G e t B l o c k B l o b R e f e r e n c e ( ” r e c e i p t . xml ” ) ; b l o c k B l o b . UploadFromFile (@” path \ r e c e i p t . xml ” , FileMode . Read) ;
Zdrojov´ y k´od 14: Vytvoˇren´ı a nahr´an´ı blobu Pˇr´ıpadn´e smaz´an´ı blobu je velice jednoduch´e, staˇc´ı na tˇr´ıdˇe CloudBlockBlob zavolat metodu Delete(). 47
6.1.1
´ ziˇ Zabezpeˇ cen´ı Uloˇ stˇ e
Probl´em nast´av´a pˇri ˇreˇsen´ı zabezpeˇcen´ı Blob Storage. Cel´e u ´loˇziˇstˇe z˚ ust´av´a priv´atn´ı, ale je potˇreba, aby v pˇr´ıpadˇe z´ajmu bylo umoˇznˇeno jednotliv´ ym prodejc˚ um staˇzen´ı jejich stvrzenek. Pro tento u ´ˇcel byla zvolena technologie Shared Access Signatures (SAS), kter´a umoˇzn ˇuje nastaven´ı opr´avnˇen´ı jednotliv´ ych blob˚ u. V poˇca´tc´ıch Windows Azure Storage umoˇzn ˇoval pouze z´akladn´ı nastaven´ı pˇr´ıstupov´ ych pr´av. Data mohla b´ yt bud’ priv´atn´ı (pˇr´ıstup k dat˚ um je moˇzn´ y pouze pˇres kl´ıˇc k u ´loˇziˇsti) nebo veˇrejn´a (kdokoliv, kdo zn´a URL adresu, m´a pˇr´ıstup k dat˚ um). Z toho d˚ uvodu Microsoft zavedl technologii SAS, kter´a um´ı omezit pˇr´ıstup jak ˇcasovˇe, tak prostˇrednictv´ım operac´ı. SAS pracuje na principu generov´an´ı speci´aln´ı URL, kter´a obsahuje informace o ´ pˇr´ıstupov´ ych opr´avnˇen´ıch (ˇcten´ı / z´apis) a dobˇe jejich platnosti. Udaje v URL jsou podepsan´e pomoc´ı autentizaˇcn´ıho k´odu HMAC (typ autentizaˇcn´ıho k´odu zpr´avy tvoˇren kryptografickou haˇsovac´ı funkc´ı v kombinaci s tajn´ ym ˇsifrovac´ım kl´ıˇcem). Pro z´ısk´an´ı SAS nad konkr´etn´ı entitou (kontejner, blob) je potˇreba zavolat metodu GetSharedAccessSignature a specifikovat opr´avnˇen´ı. Zaˇca´tek a konec ˇcasov´e platnosti je voliteln´ y. N´asleduj´ıc´ı pˇr´ıklad ukazuje vygenerov´an´ı bezpeˇcnostn´ı URL pro blob receipt.xml. Odkaz na staˇzen´ı m´a platnost t´ yden.
CloudStorageAccount s t o r a g e A c c o u n t = CloudStorageAccount . Parse ( CloudConfigurationManager . G e t S e t t i n g ( ” S t o r a g e C o n n e c t i o n S t r i n g ” ) ) ; CloudBlobClient blobClient = storageAccount . CreateCloudBlobClient ( ) ; CloudBlobContainer c o n t a i n e r = b l o b C l i e n t . G e t C o n t a i n e r R e f e r e n c e ( ” r e c e i p t ” ) ; CloudBlockBlob b l o b = c o n t a i n e r . G e t B l o c k B l o b R e f e r e n c e ( ” r e c e i p t . xml ” ) ; var sasToken = b l o b . G e t S h a r e d A c c e s s S i g n a t u r e (new S h a r e d A c c e s s B l o b P o l i c y { P e r m i s s i o n s = S h a r e d A c c e s s B l o b P e r m i s s i o n s . Read , SharedAccessExpiryTime = DateTime . Today . AddDays ( 7 ) }) ; var s e c u r e U r i = s e c u r e U r i B u i l d e r . Uri ;
Zdrojov´ y k´od 15: Zabezpeˇcen´ı Blob Storage N´asleduj´ıc´ı vygenerovan´a URL umoˇzn´ı pˇr´ıstup pro ˇcten´ı dan´eho blobu po dobu jednoho t´ ydne. Pot´e odkaz automaticky pˇrestane platit. Kaˇzd´a entita m˚ uˇze m´ıt neomezen´e 48
mnoˇzstv´ı vygenerovan´ ych URL. Tyto adresy se nikam neukl´adaj´ı, pouze se pˇri pˇr´ıstupu kontroluje jejich podpis.
6.1.2
Pˇ r´ınosy a d˚ uvod implementace
D˚ uvodem implementace informaˇcn´ıho syst´emu byly pˇripravovan´e zmˇeny v legislativˇe. Od ˇ pl´anuje zav´est registraˇcn´ı pokladny, kter´e budou naporoku 2016 Ministerstvo financ´ı CR jen´e na Centr´aln´ı syst´em evidence trˇzeb. C´ılem je v´ yraznˇe omezit tzv. ˇsedou“ ekonomiku ” (korupce, pran´ı ˇspinav´ ych penˇez, daˇ nov´e u ´niky, pr´ace na ˇcerno atd.), kter´a tvoˇr´ı aˇz 20 procent ˇcesk´eho HDP, tedy asi 600 miliard korun. Registraˇcn´ı pokladny napojen´e na Centr´aln´ı evidenci trˇzeb se zaˇcnou testovat na zaˇc´atku roku 2016 [31]. Nov´ y zp˚ usob elektronick´e evidence trˇzeb je souˇca´st´ı koaliˇcn´ıho programu ˇcesk´e vl´ady. Podle kritik˚ u vˇsak ne´ umˇernˇe zat´ıˇz´ı drobn´e ˇzivnostn´ıky, zvl´aˇstˇe v maloobchodu a sluˇzb´ach [32].
Pl´ an testov´ an´ı registraˇ cn´ıch pokladen [31]. • Hotely a restaurace - leden 2016. • Obchodn´ıci - duben 2016. • Ostatn´ı ˇzivnostn´ıci a podnikatel´e svobodn´ ych profes´ı - ˇcerven 2016. Vˇetˇsina ˇcesk´ ych podnikatel˚ u zaveden´ı registraˇcn´ıch pokladen podporuje jak ukazuje obr. ˇc. 12. Vypl´ yv´a to z pr˚ uzkumu spoleˇcnosti Mazars, ve kter´em 62 % firem souhlas´ı se zaveden´ım registraˇcn´ıch pokladen. 48 % dot´azan´ ych v pr˚ uzkumu odpovˇedˇelo, ˇze zaveden´ı registraˇcn´ıch pokladen by sice pomohlo zv´ yˇsit v´ ybˇer dan´ı, ale ˇze pˇredpokl´adan´ yu ´ˇcinek je pˇreceˇ novan´ y. 14 % dot´azan´ ych registraˇcn´ı pokladny jednoznaˇcnˇe podporuje a z´aroveˇ n vˇeˇr´ı, ˇze by znamenaly v´ yznamn´e nav´ yˇsen´ı pˇr´ıjm˚ u st´atn´ıho rozpoˇctu. 38 % dot´azan´ ych se zaveden´ım registraˇcn´ıch pokladen nesouhlas´ı [32].
49
Obr´azek 12: Pr˚ uzkum o zaveden´ı registraˇcn´ıch pokladen, zdroj: [32] Registraˇcn´ı pokladny by mˇely pˇredevˇs´ım omezit daˇ nov´e u ´niky u podnikatel˚ u. Podle odhad˚ u by mˇely zv´ yˇsit daˇ nov´e pˇr´ıjmy st´atu nejm´enˇe o dvˇe aˇz pˇet miliard korun roˇcnˇe. Celkovˇe chce ministerstvo lepˇs´ım v´ ybˇerem dan´ı z´ıskat do rozpoˇctu zhruba o tˇricet miliard korun v´ıce [31].
50
7
Nasazen´ı aplikace do Windows Azure
Windows Azure umoˇzn ˇuje spustit libovolnou aplikaci bˇeˇz´ıc´ı na OS Windows Server. Nejjednoduˇsˇs´ı jsou .NET aplikace, kter´e bˇeˇz´ı na nezmˇenˇen´em hol´em operaˇcn´ım syst´emu (nen´ı nutn´e se starat o instalaci pre-rekvizit). Pˇritom nen´ı nutn´e se o server starat, staˇc´ı pouze nahr´at bal´ıˇcek s aplikac´ı. Vytvoˇren´ı virtu´aln´ı instance serveru, nasazen´ı aplikace, aktualizace operaˇcn´ıho syst´emu a jeho obnova to vˇse si ˇr´ıd´ı syst´em s´am.
7.1
Java
N´asleduj´ıc´ı kroky zn´azorˇ nuj´ı, jak vytvoˇrit a nasadit aplikaci do prostˇred´ı Windows Azure pomoc´ı Azure Toolkit pluginu. Pro nasazen´ı aplikace je nutn´e m´ıt nainstalovan´e: • Java Developer Kit (JDK) verze 1.7. nebo novˇejˇs´ı. • Eclipse IDE verze Indigo nebo novˇejˇs´ı. • Webov´ y nebo aplikaˇcn´ı server napˇr´ıklad Apache Tomcat, GlassFish, JBoss Application Server. • Azure Toolkit plugin pro Eclipse. D´ale je nutn´e se zaregistrovat na str´ank´ach Windows Azure a zvolit si jedno z pˇredplatn´ ych (Windows Azure poskytuje i zkuˇsebn´ı verzi na dobu 30 dn˚ u). Samotn´e nasazen´ı aplikace je velice jednoduch´e. V IDE Eclipse staˇc´ı kliknout prav´ ym tlaˇc´ıtkem myˇsi na projekt, kter´ y se m´a nahr´at na Azure a zvolit moˇznost Publikovat do ” Azure Cloud“. Pokud je tento proces prov´adˇen poprv´e, v´ yvoj´aˇr je informov´an, ˇze spolu s jeho projektem se automaticky nasad´ı i JDK bal´ıˇcek a aplikaˇcn´ı server Tomcat. Ke vˇsem komponent´am tˇret´ıch stran jsou zobrazeny licenˇcn´ı podm´ınky. Odsouhlasen´ım licenˇcn´ıch podm´ınek jsou v´ yzvy automaticky schv´aleny. Pokud nen´ı nastaven´e ˇz´adn´e pˇredplatn´e, je nutn´e st´ahnout konfiguraˇcn´ı soubor z Windows Azure a n´aslednˇe ho nahr´at do Eclipse. Pot´e uˇz lze v publikaˇcn´ım dialogu obr. ˇc. 13 vybrat preferovan´e pˇredplatn´e (pokud je jich v Eclipse nastaveno v´ıce), u ´loˇziˇstˇe, sluˇzbu, operaˇcn´ı syst´em a c´ılov´e prostˇred´ı.
51
Obr´azek 13: Publikaˇcn´ı dialog v Eclipse, zdroj: vlastn´ı d´ılo Po nastaven´ı poˇzadovan´ ych informac´ı a odsouhlasen´ı dialogu se spust´ı proces sestaven´ı, kter´ y m˚ uˇze trvat des´ıtky minut. V logu lze sledovat pr˚ ubˇeˇzn´ y postup sestaven´ı. Cel´ y proces nasazen´ı aplikace je velice jednoduch´ y a uˇzivatelsky pˇr´ıvˇetiv´ y.
52
7.2
.NET
Nasazen´ı .NET aplikace je obdobn´e jako je tomu v pˇr´ıpadˇe prostˇred´ı Java. Poˇzadavky pro nasazen´ı aplikace .NET do Windows Azure: • Visual Studiu, minim´alnˇe verze 2010. • Windows Azure Tools a SDK. ´ cet na Windows Azure. • Uˇ Kaˇzd´ y projekt, aby mohl b´ yt nasazen do Windows Azure, mus´ı obsahovat Windows Azure Deployment Project, kter´ y slouˇz´ı k nastaven´ı aplikace. Neobsahuje ˇza´dn´ y k´od, pouze konfiguraˇcn´ı data nutn´a k vytvoˇren´ı bal´ıˇcku aplikace. Konfigurovat lze napˇr´ıklad poˇcet instanc´ı (virtu´aln´ıch server˚ u) a jejich velikost obr. ˇc. 14.
Obr´azek 14: Konfiguraˇcn´ı projekt, zdroj: vlastn´ı d´ılo Po nastaven´ı a spuˇstˇen´ı aplikace se nastartuje emul´ator prostˇred´ı Windows Azure, kde je moˇzn´e aplikaci vyzkouˇset a pˇr´ıpadnˇe upravit nastaven´ı. V pˇr´ıpadˇe spokojenosti s nastaven´ım aplikace, je moˇzn´e ji nasadit do re´aln´eho prostˇred´ı Windows Azure. To se provede z kontextov´eho menu projektu. Pro nasazen´ı se vybere moˇznost Publish. N´aslednˇe se zobraz´ı dialog pro pˇrihl´aˇsen´ı do Windows Azure. Pokud je to prvn´ı projekt, kter´ y je nasazov´an ve Visual Studiu, bude po autentizaci nab´ıdnuto uloˇzen´ı souboru s pˇr´ıponou .publishsettings. Soubor obsahuje vygenerovan´ y certifik´at zaregistrovan´ y pro spr´avu vaˇseho Azure u ´ˇctu a 53
n´aslednˇe ho lze importovat do Visual Studia. Nyn´ı je nutn´e zvolit, v jak´e hostovan´e sluˇzbˇe aplikace pobˇeˇz´ı a jak´e bude jej´ı um´ıstˇen´ı (kontinent). Po zad´an´ı vˇsech informac´ı a potvrzen´ı dialogu, se otevˇre nov´e okno, kde je moˇzn´e sledovat pr˚ ubˇeh nasazen´ı do Windows Azure. Proces nasazen´ı zabere des´ıtky minut. [33].
54
8
Shrnut´ı v´ ysledk˚ u
Bˇehem seznamov´an´ı se s platformou a sluˇzbami Microsoft Windows Azure, byly zjiˇstˇeny rozd´ıly ve v´ yvoji aplikac´ı pro tuto platformu oproti v´ yvoji lok´aln´ıho ˇreˇsen´ı. Tyto rozd´ıly jsou pops´any v kapitol´ach n´ıˇze.
8.1
Ukl´ ad´ an´ı stavu aplikace
Webov´e aplikace bˇeˇz´ıc´ı na Microsoft Windows Azure ukl´adaj´ı sv´e stavy, podle konfigurace, do pamˇeti nebo do soubor˚ u na disku. V pˇr´ıpadˇe v´ıce instanc´ı Web Role tento mechanizmus ukl´ad´an´ı nen´ı moˇzn´ y. Probl´em nast´av´a jakmile load balancer rozloˇz´ı z´atˇeˇz serveru, protoˇze m˚ uˇze v aplikaci nastat pˇr´ıpad, ˇze prvn´ı poˇzadavek uˇzivatele je vykon´an jednou instanc´ı Web Role. Ta si uloˇz´ı stav aplikace na sv˚ uj disk. Dalˇs´ı uˇzivatel˚ uv poˇzadavek je, ale vykon´an jinou instanc´ı Web Role, kter´a nem´a k uloˇzen´emu stavu aplikace z prvn´ıho uˇzivatelova poˇzadavku pˇr´ıstup nebo o jeho existenci v˚ ubec nev´ı. Stav aplikace nen´ı pro druhou instanci Web Role pˇr´ıstupn´ y, protoˇze si ho prvn´ı instance uloˇzila na sv˚ uj lok´aln´ı disk, kam druh´a instance nem´a pˇr´ıstup. Tento probl´em lze vyˇreˇsit pomoc´ı jiˇz naimplementovan´eho ˇreˇsen´ı Session State Provider, kter´ y je dostupn´ y z uk´azkov´ ych aplikac´ı Microsoft.
8.2
Ukl´ ad´ an´ı aplikaˇ cn´ıch dat
Data z aplikace nen´ı moˇzn´e ukl´adat klasicky na souborov´ y syst´em, mus´ı b´ yt pouˇzito extern´ı u ´loˇziˇstˇe napˇr. Windows Azure Storage, kter´e je um´ıstˇeno v cloudu. Aplikace pˇristupuje do u ´loˇziˇstˇe pomoc´ı REST rozhran´ı.
8.3
Odes´ıl´ an´ı email˚ u
Microsoft Windows Azure nenab´ız´ı ˇz´adnou sluˇzbu pro odes´ıl´an´ı email˚ u. Tento probl´em lze obej´ıt nˇekolika zp˚ usoby. Prvn´ı moˇznost´ı je provozov´an´ı vlastn´ıho SMTP serveru na Virtual Machine Role (VM role). Na virtu´aln´ı roli mohou b´ yt pouˇzity standardn´ı SMTP sluˇzby, kter´e poskytuje Microsoft Windows Server. Na VM roli lze hostovat i aplikaci tˇret´ı strany, kter´a by se o odes´ıl´an´ı email˚ u starala. Dalˇs´ı moˇznost´ı je vyuˇzit´ı placen´e sluˇzby v podobˇe SaaS. Zde si m˚ uˇze uˇzivatel vybrat mezi r˚ uzn´ ymi poskytovateli. Microsoft nab´ız´ı k tomuto u ´ˇcelu svou sluˇzbu Business Productivity Online Services (BPOS). Pro n´aroˇcnˇejˇs´ı uˇzivatele lze vyuˇz´ıt specializovan´eho 55
poskytovatele pro masivn´ı odes´ıl´an´ı email˚ u SendGrid nebo sluˇzby Amazon Simple Email Service (Amazon SES).
8.4
Konfigurace aplikace
Obecnˇe plat´ı, ˇze kaˇzd´a webov´a aplikace obsahuje konfiguraˇcn´ı soubor, kter´ y slouˇz´ı ke konfiguraci aplikace (nastaven´ı zabezpeˇcen´ı, pˇr´ıstup do datab´aze, lokalizaˇcn´ıho nastaven´ı a jin´e). Toto nastaven´ı lze mˇenit za bˇehu aplikace bez nutnosti kompilace k´odu a opˇetovn´eho nasazen´ı aplikace na server. Aplikace na Microsoft Windows Azure tento konfiguraˇcn´ı soubor sice tak´e maj´ı, ale jeho obsah nelze mˇenit, aniˇz by bylo nutn´e opˇetovn´e nasazen´ı aplikace. Pro tyto u ´ˇcely zavedl Microsoft Windows Azure soubor ServiceConfiguration.cscfg. Tento soubor obsahuje nastaven´ı, kter´a lze mˇenit za bˇehu aplikace.
56
9
Z´ avˇ er a doporuˇ cen´ı
Diplomov´a pr´ace se t´ ykala problematiky cloud computingu, konkr´etnˇe byla zamˇeˇrena na platformu Microsoft Windows Azure. Pr´ace si kladla za c´ıle charakterizovat cloud computing, nast´ınˇen´ı jeho v´ yhod a rizik a sezn´amen´ı s nejvˇetˇs´ımi poskytovateli. Dalˇs´ım c´ılem bylo pops´an´ı metodik v´ yvoje aplikac´ı a nast´ınˇen´ı implementace sluˇzeb, kter´e je moˇzn´e vyuˇz´ıt v platformˇe Microsoft Windows Azure. D´ale tak´e uk´azat implementaci cloud sluˇzby v re´aln´e aplikaci a pops´an´ı nasazen´ı aplikace do prostˇred´ı Microsoft Windows Azure. Cloud computing, souˇcasn´ y term´ın, kter´ y nen´ı st´ale jednoznaˇcnˇe definovan´ y, ale lze ho charakterizovat jako sadu hardwaru, s´ıt´ı, u ´loˇzn´eho prostoru, sluˇzeb, rozhran´ı a aplikac´ı poskytovan´ ych prostˇrednictv´ım ˇsk´alovateln´ ych sluˇzeb dostupn´ ych pˇres Internet. Dnes jiˇz cloud computing vyuˇz´ıv´a hodnˇe aplikac´ı a sluˇzeb aniˇz by o tom jejich uˇzivatel´e vˇedˇeli. St´ale se rozˇsiˇruje i nab´ıdka poskytovatel˚ u cloud computingu a obl´ıbenˇejˇs´ı se st´av´a i vyuˇzit´ı soukrom´eho nebo hybridn´ıho ˇreˇsen´ı. Cloud computing pˇrin´aˇs´ı do IT nov´e moˇznosti a nab´ız´ı i ˇradu v´ yhod. Mezi nejd˚ uleˇzitˇejˇs´ı patˇr´ı napˇr´ıklad dostupnost sluˇzeb, platebn´ı model pay as you go, n´ızk´e vstupn´ı n´aklady nebo vysok´a ˇsk´alovatelnost. Pˇrin´aˇs´ı, ale tak´e riziky, t´ım nejvˇetˇs´ım je bezesporu bezpeˇcnost dat. Ta je v cloud computingu velice problematick´a, pˇredevˇs´ım z d˚ uvodu ztr´aty u ´pln´e kontroly nad uloˇzen´ ymi daty. Tento probl´em ˇreˇs´ı pomˇernˇe nov´a sluˇzba security as a service, kter´a je schopna uˇzivateli zaruˇcit bezpeˇcnost uloˇzen´ ych dat v cloudu. Cloud computing je rychle se rozˇsiˇruj´ıc´ım trendem, kter´ y nab´ız´ı spoustu v´ yhod pro v´ yvoj´aˇre. Tyto v´ yhody a jejich implementace byly pops´any, z pohledu platformy Microsoft Windows Azure, v praktick´e ˇca´sti t´eto diplomov´e pr´ace. Platformu Microsoft Windows Azure tak´e vyuˇz´ıv´a zde popsan´ y informaˇcn´ı syst´em pro spr´avu elektronick´eho obchodu. Nejvˇetˇs´ı v´ yhodou syst´emu je slouˇcen´ı internetov´eho obchodu a elektronick´ ych pokladen do jednoho informaˇcn´ıho syst´emu, d´ıky nˇemuˇz poskytuje pˇrehlednou a jednoduchou spr´avu vˇsech transakc´ı z pokladen. Veˇsker´e stvrzenky z pokladen jsou archivov´any do Azure Storage ve formˇe blobu. Informaˇcn´ı syst´em byl vytvoˇren v reakci na pˇripravovan´e zmˇeny v legislativˇe. Od roku ˇ pl´anuje zav´est registraˇcn´ı pokladny, kter´e budou napojen´e 2016 Ministerstvo financ´ı CR na Centr´aln´ı syst´em evidence trˇzeb. Tento syst´em podporuje jak online tak offline variantu odes´ıl´an´ı plateb z elektronick´ ych pokladen finanˇcn´ımu u ´ˇradu.
57
Informaˇcn´ı syst´em lze d´ale rozˇs´ıt z hlediska vyuˇzit´ı cloud computingu. Kromˇe archivace stvrzenek, by mohl tak´e syst´em ukl´adat veˇsker´e prodejn´ı poloˇzky pro rychlou synchronizaci mezi pokladnami. Dalˇs´ı moˇznost´ı by bylo, pˇresunout cel´ y webov´ y port´al na platformu Windows Azure.
58
10
Seznam pouˇ zit´ e literatury
[1] Introduction to Cloud Computing. BrainPulley [online]. 2014 [cit. 2015-01-14]. Dostupn´e z: http://brainpulley.com/introduction-to-cloud-computing/. [2] DAVID, Martin. Transformace aplikac´ı na Windows Azure. Praha, 2011. Diplomov´a ˇ pr´ace. VSE. ˇ Martin. Cloud Computing. Hradec Kr´alov´e, 2012. Bakal´aˇrsk´a pr´ace. Univerzita [3] TMEJ, Hradec Kr´alov´e. [4] ROSENBERG, Jonathan B a Arthur MATEOS. The cloud at your service: the when, how, and why of enterprise cloud computing. Greenwich, Conn.: Manning, c2011, xxiv, 247 p. ISBN 19-351-8252-8. [5] VELTE, Anthony T, Toby J VELTE a Robert C ELSENPETER. Cloud computing: a practical approach. New York: McGraw-Hill, c2010, xviii, 334 s. ISBN 978-0-07162694-1. [6] STANOEVSKA-SLABEVA, Katarina, Thomas WOZNIAK a Santi RISTOL. Grid and cloud computing: a business perspective on technology and applications. New York: Springer, c2010, 274 s. ISBN 36-420-5192-8. [7] How to Scale the Cloud in Cloud Computing. Making everything easier [online]. 2015 [cit. 2015-02-22]. Dostupn´e z: http://www.dummies.com/how-to/content/howto-scale-the-cloud-in-cloud-computing.navId-610340.html. [8] Cloud Computing: Basic. Making everything easier [online]. 2015 [cit. 2015-02-22]. Dostupn´e z: http://www.dummies.com/how-to/computers-software/administrationprofessional-networking/Cloud-Computing.html. [9] DI MARTINO, Beniamino, Salvatore VENTICINQUE, Dimosthenis KYRIAZIS a Spyridon V. GOGOUVITIS. A Comparison of Two Different Approaches to Cloud Monitoring. Inter-cooperative Collective Intelligence: Techniques and Applications [online]. 2014, ˇc. 495, s. 69 [cit. 2015-04-13]. DOI: 10.1007/978-3-642-35016-0_3. [10] FURHT, B. a A. ESCALANTE.Handbook of cloud computing. 1st ed. New York: Springer, 2010. ISBN 9781441965233 (HARDCOVER : ALK. PAPER).
59
[11] ROCHA, Lucio Agostinho. Development of Cloud Applications in Hybrid Clouds with Support for Multi-scheduling. Software Engineering Frameworks for the Cloud Computing Paradigm [online]. 2013, s. 283 [cit. 2015-04-13]. DOI: 10.1007/978-1-4471-5031-2_13. [12] Hybrid Cloud: Look Out to the Next Big Thing. Angloafrican [online]. 2013 [cit. 2015-02-14]. Dostupn´e z: https://angloafrican.com/hybrid-cloud-look-out-to-the-nextbig-thing/. [13] AVRESKY, D. R., M. DIAZ, A. BODE a B. CICIANI. Cloud computing: first international conference, Cloudcomp 2009, Munich, Germany, October 19-21, 2009, revised selected papers. 1st ed. New York: Springer, 2010. ISBN 36-421-2635-9. [14] What’s the difference between different Cloud services like IaaS, PaaS and
SaaS?.
AzureZone
[online].
2012
[cit.
2015-02-22].
Dostupn´e
z:
http://www.hanusoftware.com/azurezone/whats-the-difference-between-differentcloud-services-like-iaas-paas-and-saas/. [15] HUGOS, Michael H a Derek HULITZKY. Business in the cloud: what every business needs to know about cloud computing. New York: Wiley, 2011, 204 s. ISBN 9780470616239 (HARDBACK). [16] REDKAR, form
Tejaswi.
[online].
Introducing
Berkeley,
CA:
Cloud Apress,
Services. 2009,
s.
Windows 51
Azure
[cit.
Plat-
2015-04-13].
DOI: 10.1007/978-1-4302-2480-8_1. [17] KRUTZ, Ronald L. Cloud security: a comprehensive guide to secure cloud computing. 1st ed. Indianapolis, IN: Wiley Pub., Inc., 2010. ISBN 04-705-8987-6. [18] MUNYAKA, David, Burman NOVIANSYAH, Vibhor GOEL, Andrew YENCHIK a Steve DURHAM. Cloud Computing Security 2015-03-18].
Dostupn´e
z:
[online]. 2012 [cit.
http://www.vibhanshu.com/courses/telecom/wp-
content/uploads/2013/09/CloudComputingSecurity.pdf. [19] RITTINGHOUSE, John W a James F RANSOME. Cloud computing: implementation, management, and security. Boca Raton: CRC Press, c2010, 301 s. ISBN 14398-0680-2. [20] The lution.
best
two
Market
pick-and-shovel Watch
stocks
[online].
60
for
the
Cloud
Revo-
2011[cit.2012-08-04].Dostupn´ez:
http://blogs.marketwatch.com/cody/2011/05/17/the-two-best-pick-and-shovelstocks-for-the-cloud-revolution/. [21] KRUML, Michal. V´yvoj aplikac´ı v Cloud Computingu. Praha, 2011. Diplomov´a pr´ace. Bankovn´ı institut vysok´a ˇskola. [22] Google Web Toolkit. Interval [online]. 2006 [cit. 2012-07-30]. Dostupn´e z: http://interval.cz/clanky/google-web-toolkit/. [23] CHAPPELL, David. Introdicing the Windows Azure Platform. Microsoft [online]. 2011 [cit. 2015-03-20]. Dostupn´e z: http://go.microsoft.com/?linkid=9752185. [24] Windows MSDN
Azure Blogs
–
[online].
Write, 2012
Run [cit.
or 2015-03-13].
Use
Software.
Dostupn´e
z:
http://blogs.msdn.com/b/buckwoody/archive/2012/06/13/windows-azure-writerun-or-use-software.aspx. [25] BETTS, D., S. DENSMORE, R. DUNN, M. NARUMOTO, E. PACE a M. WOLOSKI. Developing Applications for the Cloud on the Microsoft Windows Azure Platform. United States: Microsoft, 2010. ISBN 978-073-5656-062. [26] Windows eksWithBlogs
Azure
Evolution
[online].
–
2012
[cit.
Caching 2015-03-15].
(Preview).
Ge-
Dostupn´e
z:
http://geekswithblogs.net/shaunxu/archive/2012/06/18/windows-azure-evolutionndash-caching-preview.aspx. [27] WOITASZEK, Matthew a Henry M. TUFO. Developing a Cloud Computing Charging Model for High-Performance Computing Resources. 2010 10th IEEE International Conference on Computer and Information Technology [online]. IEEE, 2010, s. 210-217 [cit. 2015-04-13]. DOI: 10.1109/CIT.2010.72. [28] LINTHICUM, David S. Cloud computing and SOA convergence in your enterprise: a step-by-step guide. Upper Saddle River: Addison-Wesley, 2010, 239 s. Addison-Wesley information technology series. ISBN 978-0-13-600922-1 (BROˇz.). [29] WILDER, Bill. Cloud architecture patterns. United States of America: O’Reilly Media, 2012, xviii, 161 pages. ISBN 14-493-1977-7. [30] MARKS, Eric A a Bob LOZANO. Executive’s guide to cloud computing. Hoboken, N.J.: Wiley, c2010, 285 s. ISBN 04-705-2172-4.
nejvetsi-zmenou-pro-podnikatele-za-dve-desetileti-57615.html. [32] Manaˇzeˇri vˇeˇr´ı registraˇcn´ım pokladn´am. Parlamentnilisty [online]. 2014 [cit. 201504-09]. Dostupn´e z: http://www.parlamentnilisty.cz/zpravy/tiskovezpravy/MazarsManazeri-veri-registracnim-pokladnam-o-loterii-a-Kobre-spise-pochybuji-329038. [33] Windows Azure: spuˇstˇen´ı vlastn´ı aplikace v cloudu. Interval [online]. 2012 [cit. 201504-06]. Dostupn´e z: https://www.interval.cz/clanky/windows-azure-spusteni-vlastniaplikace-v-cloudu/.
62
UNIVERZITA HRADEC KRÁLOVÉ Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, tel: 493 331 111, fax: 493 332 235
Zadání k závěrečné práci Jméno a příjmení studenta:
Martin Tměj
Obor studia: Jméno a příjmení vedoucího práce:
Aplikovaná informatika (2) Filip Malý
Název práce: Vývoj webových aplikací v prostředí cloudu Název práce v AJ: Developing web applications in the cloud enviroment Podtitul práce: Podtitul práce v AJ: Cíl práce: Cílem práce je obeznámení s pojmem cloud computing, popis jeho výhod a nevýhod, popsání metodik vývoje pro Windows Azure, implementace ukázkové aplikace a její nasazení do prostředí Windows Azure. Osnova práce: 1. Úvod do Cloud Computing 2. Možnosti a rizika 3. Poskytovatele Cloud Computingu 4. Požadavky na aplikaci a její vývoj pro Windows Azure 5. Implementace ukázkové aplikace 6. Nasazení aplikace do Windows Azure 7. Závěr 8. Literatura Projednáno dne: Podpis studenta