Foto: AA+W - Fotolia.com
Uživatel služeb může na cloud computing nahlížet jako na outsourcing se všemi uživatelskými, technicko-organizačními, technologickými, bezpečnostními či ekonomickými důsledky, které s sebou outsourcing přináší. Služby cloud computingu se obvykle dělí do tří hlavních skupin. Infrastruktura jako služba (IaaS) označuje poskytování služeb výpočetní infrastruktury, datových úložišť a bezpečnosti, Platforma jako služba (PaaS) nabízí možnost vykonávat nebo vyvíjet aplikace na platformě nebo vývojovém prostředí provozovaném poskytovatelem a Software jako služba (SaaS) označuje poskytování služeb aplikací, např. ekonomických nebo CRM. Parametry prostředí lze obvykle velmi jednoduše a rychle podle potřeby uživatelsky v širokých mezích měnit prostřednictvím nástrojů, které dává k dispozici poskytovatel, a bez nutnosti s ním zdlouhavě komunikovat. V souvislosti s tím bývají často služby cloud computingu označovány nejen jako flexibilní, nýbrž jako elastické.
Využití cloud computingu umožňuje výrazně změnit přístup firmy k ICT jak z hlediska organizace, provozu a využívání, tak i z pohledu ekonomického. Rozsah, kvalita a další parametry služeb jsou stanoveny smlouvou a měřeny, takže zákazník platí pouze za služby, které skutečně odebral. Interní IT podniku již nezajišťuje vlastní chod všech systémů, ale zodpovídá pouze za proces dodávky služeb ve sjednaném objemu a kvalitě. Není výjimkou ani situace, kdy i vnitřní podniková infrastruktura a zařízení jsou poskytovány jako služba. Z ekonomického hlediska přechod na cloud nejenom výrazně snižuje počáteční náklady na implementaci podnikového ICT, ale vzhledem k tomu, že jde o nákup služeb, umožňuje je financovat z operativních nákladů.
Ačkoli cloud computing má podle analytiků před sebou slibnou budoucnost, má v současné době jen 10 % ze 2 000 oslovených CIO dostatečnou představu o výši nákladů pro zajištění interních IT služeb. Podle průzkumů do roku 2012 jejich počet vzroste na 50 %, neboť cloud computing je plně transparentní. Rychlému rozšíření však nebrání jen nedostatek informací, nýbrž i celá řada obav, polopravd či mýtů, zakořeněných jak mezi IT pracovníky, tak i manažery.
Podle průzkumů hraje nejdůležitější roli před rozhodnutím využívat cloud služby bezpečnost. Je samozřejmé, že obavy z bezpečnostního rizika, které by mohlo nastat nejen poskytnutím citlivých informací další straně, ale také přesunutím životně důležitých struktur z vnitřního prostředí organizace, se zdají být vysoké. Ve skutečnosti je však kvalitní poskytovatel schopen do bezpečnosti infrastruktury, dat i aplikací investovat mnohem větší prostředky i nasazení než sám zákazník, neboť jeho náklady se rozloží mezi všechny odběratele. Není tudíž udivující, že i k nejdůležitějším oblastem, na něž se budoucí zákazníci při nákupu služeb cloud computingu soustřeďují, patří právě záruky bezpečnosti a soukromí. Za nimi bezprostředně následují transparentnost obchodních vztahů, spolehlivost a dostupnost služeb. Za další velmi důležité vlastnosti jsou pokládány i důvěryhodnost poskytovatele, možnost jednoduché obchodní spolupráce, jeho pověst a zkušenosti s ním.
Využívání služeb cloud computingu v blízké budoucnosti bezesporu zaznamená výrazný nárůst nejenom pro své uživatelské přednosti, ale do značné míry i jako jeden z nástrojů pro snížení celkových nákladů na provoz, jež současné, snad již postkrizové prostředí bude diktovat. Stanovení správných kritérií a výběr vhodného poskytovatele, jenž disponuje dostatečně širokým zázemím, rozsáhlými zkušenostmi a kvalitní nabídkou služeb, je při přechodu na cloud služby pravděpodobně jedním z nejdůležitějších aktů.
Cloud platformy jsou charakteristické snadnou škálovatelností dostupného výkonu, tzv. elasticitou. Zákazník cloud platformy může podle aktuální potřeby téměř v reálném čase zvyšovat (a zase snižovat, a tedy i méně platit) počet virtuálních procesorů, počítačů a přiděleného diskového prostoru podle aktuální potřeby, respektive podle potřeb klientů. Vysokého výkonu cloud platforem je dosahováno především masivní podporou paralelismu, nikoliv provozem na extrémně výkonných superpočítačích. Tomu je přizpůsobena i základní HW a SW architektura cloud platformy, v lecčem výrazně odlišná od běžných serverových prostředí.
Mezi tři hlavní obecné cloud platformy, v pořadí jejich vstupu na trh, patří: Amazon Web Services (AWS), Google AppEngine a Microsoft Azure.
Ačkoliv uvedené cloud platformy vycházejí z různých zkušeností a podmínek provozovatelů, lze zobecnit jejich základní anatomii.
Operační systém – Google využívá Linux upravený svými týmy, Microsoft speciální verzi Windows – Windows Azure. Amazon nenabízí vlastní operační systém, ale dává na výběr z několika předinstalovaných a upravených virtuálních strojů založených na Linuxu nebo Microsoft Windows.
Datové úložiště – jedním druhem je základní statické úložiště, kde lze formou souborů nebo formou klíč-hodnota ukládat data aplikace. Tato úložiště mají specifická rozhraní, nelze je využívat z běžných aplikací. Jsou navržena pro extrémní výko¬ny a geografickou distribuci dat. Amazon má SimpleStorageService (S3), Google AppEngineDatastore a Microsoft Windows Azure Storage.
Dynamická a strukturovaná data mohou cloud aplikace ukládat do specifických nebo upravených cloud databází s podporou transakčního zpracování, podporujících automatickou replikaci a geografickou distribuci dat. Amazon SimpleDB a Google AppEngineDatastore nejsou klasickou relační databází, ale nabízejí principiálně obdobné služby. Microsoft SQL Server Azure je naproti tomu upravenou (částečně funkčně omezenou) standardní relační databází poskytující pro vývoj známé prostředí a možnosti.
Obecně lze konstatovat, že právě přístup k „ne SQL“ datům je u cloud aplikací výrazně jiný než u „tradičních“ aplikací. Do jisté míry však může být tento rozdíl z pohledu vývojáře překryt využitím nebo vytvořením nějaké abstraktní vrstvy pro přístup k datům – např. objektově relačního mapování.
Vývojové prostředí cloud aplikací – je opět specifické. Amazon dává poměrně velkou volnost tím, že poskytuje vývojáři „celé“ virtuální stroje a moc jej neomezuje. Naopak Google a Microsoft nenasazují do provozu celé virtuální stroje (jako Amazon), ale cloud aplikace, a proto vývojáři musejí striktně dodržovat určitá pravidla a omezení.
Stručně – neukládat nic lokálně, zpracování především formou požadavek-odpověď. Pro provozování náročnějších výpočtů na pozadí jsou určené speciální SW technologie. Důvodem je možnost kdykoliv zastavit běžící instanci aplikace a přesunout ji jako celek do jiného prostředí. Google nabízí vývojářům volbu mezi Pythonem a Javou. Microsoft dává k dispozici .NET Framework s jeho jazyky.
Optimalizovaná mezipaměť pro data – z důvodu maximálního výkonu webových cloud aplikací provozovaných v clusterech je součástí cloud platformy výkonný cache mechanizmus. Google používá memcache a Microsoft vlastní AppFabric (projekt „Velocity“).
Uváděné cloud platformy dále nabízejí spoustu specifických nástrojů a služeb, jejichž popis však přesahuje zaměření tohoto článku.
Všechny cloud platformy kladou velký důraz na standardizovaná a otevřená aplikační rozhraní jednotlivých komponent se zaměřením na webové služby. Některé své komponenty (např. datové úložiště) mohou nabízet bez ohledu na zbytek platformy jako samostatnou službu.
Omezení a rizika cloud computingu
Cloud aplikace provozované na uvedených cloud platformách se musí přizpůsobit určitým omezením hostující platformy danými požadavky na výkon a elasticitu. Jde např. o maximální velikosti databází či položek ve frontách, provozování procesů na pozadí a omezení v transakčním chování. Je třeba mít na paměti, že provoz aplikace je řízen „oblakem“ (provozovatelem cloud platformy) bez vědomí a spoluúčasti jejího autora a zákazníka – aplikace může být kdykoliv klonována, přenášena a restartována.
Díky těmto podmínkám je snadný přenos existující zakázkové aplikace do některé z obecných cloud platforem čirou fikcí – při případném přenosu aplikace do cloud platformy bude možné zachovat zřejmě jen části aplikační logiky, pokud jsou však napsány v jazyce či prostředí podporovaném danou cloud platformou.
To, že je cloud aplikace navržena a provozována v prostředí s maximální technickou dostupností, ještě neznamená, že ji bude možné tak i využívat. Jaké připojení k internetu má vaše firma? Jakou má vaše internetové připojení kapacitu? Jak je zálohováno? Jaké jsou smluvní sankce vašeho poskytovatele internetového připojení za výpadky služby?
Samostatným tématem je bezpečnost dat v cloudech. Pravděpodobnost ztráty dat v cloudu je proti tzv. on premises prostředí vlastního IT mnohem nižší. Na druhou stranu ji nikdy nelze absolutně vyloučit (technické disciplíny obecně neznají 100% jistotu) a provozovatelé cloudů za ně nejsou schopni a ani ochotni plně ručit. Jistým rizikem je i možnost zneužití dat ze strany narušitele bezpečnosti na straně cloud provozovatele. Kdo je ochoten dát do cloud úložiště např. čísla kreditních karet svých klientů či jiné citlivé osobní údaje? I když budou data šifrována – pokud s nimi má cloud aplikace pracovat, musí je přece být schopna rozšifrovat – ne u vás, ve vaší síti, ale přece na straně cloud provozovatele!
Na druhou stranu – jaké je riziko zneužití či ukradení dat uložených vlastně anonymně mezi spoustou dalších v cloudu proti vašim interně „doma“ uloženým datům některým z vašich (např. odcházejících) správců ICT, který velmi dobře ví, co vaše data obsahují, kde jsou a jak je využít?
Další riziko představuje nejasné právní prostředí – provozovatel či uživatel cloud aplikace je např. v České republice a provozovatel cloud platformy sídlí v USA a podléhá americké jurisdikci. To případné soudní řešení sporů rozhodně neusnadňuje.
Vzhůru do oblak?
V kontextu tohoto článku se nabízí zajímavá úvaha o možnosti úplného outsourcingu interního IT firmy či organizace jeho přenesením do cloudu. Argumenty ke zvážení této možnosti mohou být následující:
• Vybudování vlastní infrastruktury s podobnou úrovní dostupnosti a robustnosti je finančně nemožné. Jaké jsou vlastně požadavky na dostupnost vašeho informačního systému?
• Jde totiž mimo jiné o převod významné části nutných investičních nákladů (na HW a SW serverů) do nákladů provozních. U velkých firem to ale může být nevýhodou, zvláště tehdy, pokud jsou obchodovány na burze. • Jinou motivaci bude mít kompaktní firma s jedním sídlem nebo pouze několika provozovnami a zcela jinou motivaci firma s velkým množstvím relativně samostatných poboček či dokonce s mezinárodní působností.
• Jak stabilní je budoucnost provozovatele dané cloud platformy? Co se stane, když prostě skončí? Dostanete alespoň svá data, jak? Aplikace bude třeba přepsat, původní cloud platformy jsou naprosto nekompatibilní.
Jak již bylo uvedeno, cloud aplikace jsou určeny především pro velkou zátěž vyvolanou velkým množstvím uživatelů (desítky až stovky tisíc souběžně přistupujících). V našich podmínkách tak bude zřejmě ještě dlouho obecným cloud platformám pro vývoj aplikací konkurovat „běžný“ hosting u provozovatele na páteři českého internetu. Extrémní výkon a elasticita zřejmě nebudou potřeba a přiznejme si, vyjde to i levněji.
Očekávaná budoucnost cloud platforem
Současný stav cloud platforem má zjevné výhody i nevýhody. Jejich vývoj zcela určitě neustrne a již dnes lze sledovat některé trendy:
• Přibližování vývojového prostředí cloud platformy běžnému prostředí pro vývoj aplikací. Tento směr viditelně sleduje Microsoft, který má jako strategický cíl možnost přenést (libovolnou) aplikaci z „on premise“ Microsoft prostředí u zákazníka do Microsoft Azure a zpět. Zatím jde o budoucnost, ke které není snadná cesta, ale možné to zřejmě je.
• Standardizace aplikačních rozhraní cloud platforem (např. Open Cloud Computing Interface, OCCI). Mohla by minimalizovat náklady na přenos aplikací mezi jednotlivými cloud platformami či umožnit vývoj hybridních cloud aplikací kombinujících služby a výhody více cloud platforem v rámci jedné aplikace. Snížily by se též důsledky případného zániku některé z cloud platforem, a tím vyvolané portace cloud aplikací jinam.
• Intercloud“ či cloud cloudů – umožnil by také obchodování s výpočetní kapacitou jako komoditou nejen mezi cloud provozovatelem a jeho zákazníkem (jako dnes), ale i mezi provozovateli cloud platforem. Umožnilo by vzájemné zálohování jejich zdrojů a rozprostření rizika výpadků.
Uvedené směry vývoje lze též vzít v úvahu při rozhodování, zda „jít se svým informačním systémem do oblak“.