Počítače v oblacích (4): Bez aplikací to nejde

7. 4. 2011

Sdílet

Výhody cloud computingu pro firmy i koncové uživatele jsou zřejmé. Snadný přístup odkudkoliv, schopnost zvyšovat výkon podle požadavků v podstatě bez omezení. Účtování podle skutečně využívané kapacity. Aby to opravdu fungovalo, nestačí jen špičková cloudová infrastruktura a dobře uzavřená smlouva s poskytovatelem cloudových služeb. Potřeba jsou aplikace, které umí výhody cloudu použít a jež uživatelé budou rádi používat.

Začátky na koleně
Pokud se zeptáte průměrného uživatele internetu na to, jaké cloudové služby používá, nebude vám schopný odpovědět nebo řekne, že nepoužívá žádné. Přitom má freemailový účet, hraje na Xboxu připojeném k internetu a hlavně používá Facebook, na kterém hraje Farmville nebo Mafia Wars. Freemail, služba Xbox Live i celý Facebook. První cloudové aplikace v podobě webových e-mailů se nerodily cíleně jako služby cloud computingu. Byly to prostě aplikace, které běžely na serverech připojených k internetu a často vznikaly na koleně a živelně.

Dnešní situace je odlišná stejně jako vývoj aplikací obecně. Naprostou samozřejmostí jsou propracované nástroje, které usnadňují tvorbu aplikací od návrhu až po testování a ladění funkcí nebo uživatelského prostředí. Provozovatelé cloudových platforem, z těch největších Amazon, Google a Microsoft, nabízejí vlastní nástroje, které mají vývojářům vstup do světa cloud computingu usnadnit. Vývojářské balíčky, podpora komunit a sady průvodců jsou nejčastěji volně dostupné nebo vyžadují jen registraci. Stejně tak nechybějí ani školení, například formou webových přenosů.

Provozovatelé platforem cloud computingu navíc tvůrcům aplikací nabízejí i bezplatný přístup ke své infrastruktuře, protože bez testování v živém prostředí cloudu není možné ověřit jejich správné fungování.

Nová filozofie
Aplikace určené pro cloud computing mají stále stejný hlavní úkol – usnadnit nebo zpříjemnit svým uživatelům život.  Mimo to se ale od „běžných“ aplikací pro desktopy nebo mobilní zařízení výrazně liší. Protože neběží na konkrétním hardwaru, ale na platformě, která pracuje s virtualizovanými stroji a umožňuje téměř nekonečné škálování, musí aplikace tyto možnosti podporovat.

Asi nejdůležitějším přikázáním vývoje cloudových aplikací bez ohledu na konkrétní je redundantní design – tedy schopnost rychle obnovit instance, které selhaly, například kvůli havárii hardwaru. S tím se v cloudu počítá, a proto moderní datová centra poskytovatelů cloudových služeb obsahují několik vrstev redundance včetně redundance geografické, kdy jsou aplikace zálohované v jiném datovém centru, připravené okamžitě nahradit případný výpadek většího rozsahu.

Aplikace musejí redundantní funkce přímo podporovat. Nesmí lpět na konkrétních stavových údajích na lokálním disku nebo v registrech, nic takového v cloudu není.

Aplikace musí být zcela bezstavová, to znamená, že musí počítat se situací, jako jsou přerušení konektivity, restart v kterýkoliv okamžik, přidání/odebrání dalšího aplikačního serveru do farmy apod. Při plně automatizované správě totiž není nijak ojedinělým jevem vytvoření kompletně nového prostředí. Tyto operace se při tradiční správě řeší úpravami běžícího prostředí, zatímco v cloudu je levnější plně automatizované vytvoření náhrady aplikace. Všechna data musí být uložena v trvalém úložišti a veškerý stav by měl být na ně vázán a ukládán například v rámci relační databáze nebo v nerelačním úložišti. Aplikace samotná, respektive její vlákno, by si neměla držet žádná důležitá data, tak aby vždy mohla být násilně ukončena a opět spuštěna bez dopadu na uživatele.

O to důležitější a výhodnější je proto používat v prostředí cloudu již hotové a ověřené knihovny a rozhraní. Tímto způsobem si vývojáři šetří čas s jistotou, že tyto části kódu budou fungovat.

Stejně tak je pro spoustu vývojářů novinkou psát aplikace tak, aby dokázaly využít téměř neomezený výkon, který mohou mít k dispozici. Aplikací, které dokážou využívat vícejádrové procesory, je stále méně než těch, které to neumí. V cloudu je schopnost škálování ještě důležitější, je to základní kámen, který cloud computing odlišuje od běžných webových aplikací a webhostingu.

Cloud ovládne mobily a televize
Chytrých mobilních telefonů se už pomalu prodává víc než osobních počítačů, což potvrzují i analýzy společností, jako jsou RBC, IDC či Gartner. Stejně tak se pro mobily vyvíjejí desítky tisíc nových aplikací a cloud computing má v této oblasti silnou pozici. Už nyní, kdy je komerční využití cloudu stále ještě novinkou, využívá cloud computing v nějaké formě přibližně pětina mobilních aplikací. Tento podíl se bude ještě zvyšovat, mobilní zařízení a nastupující vlna tabletů totiž nabízejí jen ohraničenou kapacitu pro ukládání dat i omezený výpočetní výkon.

Další oblastí, ve které budou cloudové aplikace hrát hlavní roli, jsou chytré televizory. Těch bude letos možná polovina ze všech prodaných. Připojení k internetovým službám nabízejí televize s cenou hluboko pod dvacet tisíc a nároky zákazníků na kvalitu aplikací stoupají. Novinky pro letošní rok zahrnují třeba videohry, které běží v cloudu a do televize míří na vzdálených serverech vypočítaný obsah. Samozřejmostí potom je napojení přístrojů na sociální sítě. Tady všude mohou vývojáři využít to, co umí z desktopů či mobilních zařízení, a převést své aplikace do cloudu s napojením na rozhraní televizorů různých výrobců.

Vývoj v cloudu podle Microsoftu
Podpora vývojářů ze strany Microsoftu má dlouhou tradici a v oblasti cloudu se Microsoft drží ověřeného postupu nabídnout zájemcům o vývoj aplikací co nejlepší nástroje a informace. Navíc se neomezuje pouze na své tradiční partnery a preferované technologie. Svědčí o tom například integrace OpenStacku do vlastní virtualizační vrstvy Microsoft Hyper-V.

Největším trumfem Microsoftu v oblasti vývojářské podpory je už od roku 1997 Visual Studio, které v aktuální verzi 2010 plně podporuje vývoj aplikací pro cloudovou platformu Windows Azure. Díky tomu, že vývojáři pracují ve známém prostředí a používají osvědčené nástroje, dokážou do nového prostředí proniknout velice rychle.

Rychlost vývoje cloudových aplikací dokládá třeba aktuální aplikace Family room pro rodinnou komunikaci mezi uživateli Windows Phone 7. Ta vznikla v Microsoft Visual Studiu 2010 s využitím Windows Azure za pouhých šest týdnů a používají ji tisíce uživatelů v americké síti operátora T-Mobile.

Tvůrci aplikací, kteří jsou zvyklí na jiné vývojové platformy, přitom nejsou hendikepovaní. Microsoft poskytuje podporu aplikací v PHP v podobě bezplatně dostupných SDK pro různé platformy včetně Eclipse, pro kterou Microsoft počátkem ledna uvolnil Windows Azure Tools s podporou Windows Azure SDK ve verzi 1.3. Ten umožňuje i přímo z Eclipse aplikace testovat přímo v prostředí cloudu. Kromě toho jsou k dispozici například Windows Azure Command-line Tools for PHP a hlavně obrovská zásoba informací v moderovaných diskuzních fórech pro vývojáře na MSDN.

Zkušenosti s vývojem cloudových aplikací mohou vývojáři získat zdarma i díky volně dostupným vývojovým nástrojům a 25 hodinám bezplatného přístupu k infrastruktuře Windows Azure měsíčně. Uživatelé MSDN mají k dispozici ještě větší prostor k využívání Azure v rámci svého předplatného a další možnosti bezplatného, popřípadě levného přístupu ke cloudovým nástrojům a infrastruktuře Microsoft oznámí v následujících měsících.

Autor pracuje jako ředitel divize vývoje ve společnosti Microsoft.