O nás     Inzerce     KontaktSpolehlivé informace o IT již od roku 2011
Hledat
Nepřehlédněte: Tip: Pozoruhodné IT produkty pro rok 2023 jsou tu!
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 2023
E-knihy o IT zdarma

Odborné IT konference BusinessIT
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-2023 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)