O nás     Inzerce     KontaktSpolehlivé informace o IT již od roku 2011
Hledat
Nepřehlédněte: Nejlepší IT: Pozoruhodné IT produkty pro rok 2024 podruhé
Správa dokumentů
Digitální transformace
Informační systémy
Hlavní rubriky: Informační systémy, Mobilní technologie, Datová centra, Sítě, IT bezpečnost, Software, Hardware, Zkušenosti a názory, Speciály

Pozoruhodné IT produkty 2024 podruhé
E-knihy o IT zdarma
Manuál Linux

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)


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

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

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...


Facebook Twitter
Komentáře, názory a rady

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

>>> Číst a vkládat komentáře <<<
©2011-2024 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
O vydavateli | Pravidla webu BusinessIT.cz a ochrana soukromí | Používáme účetní program Money S3 | pg(90)