„Výpočetní mrak“ lze definovat z mnoha pohledů. Z pohledu IT odborníka jde o aplikace provozované ve výpočetních centrech, která nabízejí své specifické či univerzálnější služby zpravidla za úplatu s ohledem na skutečnou spotřebu zdrojů danou aplikací. Jde o výpočetní centra navržená pro extrémní zátěže a výkony, využívající různé formy virtualizace, technologií vysoké dostupnosti, navíc geograficky rozložené do více vzájemně propojených lokalit.
Nabízejí buď specifický software jako službu (Software-as-a-Service, SaaS) – např. ukládání a sdílení souborů, kancelářské aplikace, řešení pro firemní e-mail, zpracování fotek a videa, dokonce i CRM, ERP aplikace, finanční programy a další služby. Nebo jsou obecnější a nabízejí univerzální platformu (Platform-as-a-Service, PaaS) pro vývoj a provoz cloud aplikací.
Specifika
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ýkony 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 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“. Jsou současné cloud platformy již dostatečně rozvinuté a stabilní?
Autor působí jako Senior Business Consultant ve společnosti Aquasoft.
Vyšlo v CIO Business World 10/2010