Jak vyvíjet aplikace pro cloud



Mohli bychom začít toto povídání vysvětlováním, jak je nutné specifikovat požadavky na software, vybrat vhodnou cloudovou platformu, definovat vlastnosti vývojového projektu a tak dále a tak dále, ale my raději půjdeme rovnou k věci – totiž k tomu, co zásadně odlišuje vývoj aplikací pro prostředí cloudu od běžného vývoje aplikací. I když, po pravdě, tu bude řeč i o oné volbě vhodné platformy, protože to je přece jen základ.

Vzhledem k množství různých platforem zde v žádném případě neslibujeme ani krátké příklady nějakých zdrojových textů cloudových aplikací nebo popisy API – to by totiž daleko přesahovalo rámec tohoto článku. Takže – karty jsou rozdány, začínáme...

Máme-li jasnou představu o vyvíjené aplikaci, zřejmě budeme schopni učinit i první zásadní rozhodnutí – totiž co od cloudové platformy požadujeme. A v první fázi zřejmě padne rozhodnutí, zda bude vhodné zvolit služby typu PaaS (Platform as a Service) nebo IaaS (Infrastructure as a Service). Zjednodušeně řečeno: Rozhodujeme-li se mezi Google a Amazonem a víme, že Google nabízí v rámci svého App Engine runtime prostředí pro Python, Javu nebo Go, tak pokud nám některé z nich vyhovuje, je App Engine ve hře. Víme-li, že v ani jednom z nich svou aplikaci provozovat nechceme, sáhneme po službách Amazonu, který nabízí IaaS. (Ve skutečnosti bude samozřejmě voleb více; roli bude hrát nejen volba mezi IaaS a PaaS, ale nepochybně také řada dalších technických parametrů – i finanční náročnost jednotlivých služeb.)

Zásadní požadavky na vývoj v cloudu

Mezi hlavními výhodami cloudu bývají uváděny vysoká škálovatelnost, spolehlivost Při vývoji je třeba striktně oddělovat proces zpracování a ukládání dat. Foto: OpenImageBank.com
Při vývoji je třeba striktně oddělovat proces zpracování a ukládání dat. Foto: OpenImageBank.com
a cenová efektivita; je však zřejmé, že pokud tyto vlastnosti nejsou podporovány aplikacemi v cloudu, může být samotná cloudová platforma doslova dokonalá a stejně to nebude nic platné. Pokud se aplikace zhroutí a nebude možno uživatele přesměrovat na její jinou instanci (samozřejmě při zachování rozpracovaných dat), jsou výhody (nebo alespoň některé z nich) nadobro ztraceny.

Při vývoji je tedy třeba striktně oddělovat proces zpracování a ukládání dat, která musejí být dostupná jakékoli jiné instanci aplikace v cloudu (samozřejmě za splnění daných bezpečnostních podmínek). Je třeba se vyvarovat vzniku místa, jehož selhání způsobí přerušení poskytování všech služeb i jednoho úzkého hrdla distribuované aplikace. Je zcela k ničemu, pokud je celý systém škálovatelný, když je pak jedna podpůrná rutina potřebná k běhu všech instancí výkonově poddimenzovaná a neškálovatelná.

Při vývoji je rovněž vhodné mít na paměti platební podmínky a pokud možno optimalizovat aplikaci tak, aby pronajaté prostředky (výpočetní výkon, úložné systémy, přenosové pásmo apod.) využívala z hlediska nákladů co nejefektivněji.

Myslete na přenositelnost

Při vývoji aplikace je rovněž vhodné myslet na přenositelnost. Pokud vyvinete aplikaci, která bude úzce svázaná s poskytovatelem vybraného cloudového řešení, budete mu do budoucna vydáni na milost. Tento požadavek je poněkud v rozporu se snahou využívat maximum služeb, které poskytovatel nabízí, ale při čistě napsaném kódu by ani tak neměl přenos na jinou platformu znamenat neřešitelný problém – i třeba navzdory odlišnému API a sadě služeb.

Je rovněž vhodné mít na paměti skutečnost, že si váš software sám může říci o poskytnutí dodatečných zdrojů, jsou-li potřeba. Je tedy třeba, aby toho byl schopen a aby to dělal ve správný okamžik. Aplikace by měla rovněž počítat i s možností provozu v různých lokalitách, pokud ji provozovatel cloudu poskytuje.

Stručné shrnutí

Poskytovatelé cloudových služeb zpravidla zveřejňují detailní informace nejen o základních vlastnostech svých služeb, ale i o jednotlivých službách API, takže je možné si dopředu udělat představu o nabízených možnostech i o způsobu práce s poskytovanou infrastrukturou. Obecně se doporučuje věnovat pozornost tomu, jakým způsobem, resp. jakými službami vás infrastruktura cloudu podpoří v zajištění spolehlivosti a škálovatelnosti, jaké nabízí možnosti pro ukládání velkých objemů dat (potřebujete-li je) a obecně s databázemi.

Při samotném vývoji pak konzultanti radí dbát na bezstavovost aplikace (nebo alespoň rozhodně na bezstavovost jejího webového front-endu, u něhož existují vysoké nároky na škálovatelnost) a v případě, že dojde v aplikaci k chybě, doporučují zvolit rychlé a efektivní řešení – tím může mnohdy být i okamžité sestřelení aplikace a nasměrování uživatele na jiný server.


(28. 8. 2011 | redakce2)


Předcházející článek: <<< Nasazení cloudu v praxi <<<
Následující článek: >>> Cloud Computing: Slovník pojmů >>>

Tento článek je součástí speciálu:

Cloud Computing: Pro divoké lovce, manažery a IT specialisty


Cloud Computing - speciální téma magazínu

Cloud Computing je dnes v oblasti informačních technologií módním slovem číslo 1 – a navzdory skutečnosti, že na jeho přesném významu se zpravidla zcela neshodují ani výrobci, ani uživatelé, jde o velmi zajímavou záležitost. Nabízí naprostou spolehlivost, dokonalou bezpečnost, nekonečný výkon a navíc i velké finanční úspory. Tedy, samozřejmě, ve své dokonalé podobě. Ale ani skutečné cloudy, byť nedokonalé, nejsou úplně k zahození.



Komentáře, názory a rady

Zatím sem nikdo nevložil žádný komentář. Buďte první...

>>> Číst a vkládat komentáře <<<

Tip - Konference: Mobilní řešení pro byznys - 21.9.2017!


Otázky a odpovědi z IT: Diskusní portál Bizio.cz
Pozoruhodné IT produkty pro rok 2017
Věříme, že v tomto přehledu pozoruhodných produktů najdete ty, které vám pomohou ve vaší práci v IT.




Anketa


©2011-2017 BusinessIT.cz, ISSN 1805-0522 | Názvy použité v textech mohou být ochrannými známkami příslušných vlastníků.
Provozovatel: Bispiral, s.r.o., kontakt: BusinessIT(at)Bispiral.com | Inzerce: Best Online Media, s.r.o., zuzana@online-media.cz
Používáme účetní program Money S3
O vydavateli | Pravidla webu BusinessIT.cz a ochrana soukromí | pg(90)