Hlavní navigace

Jak na integraci s platformou v cloudu

4. 8. 2011
Doba čtení: 6 minut

Sdílet

Cloud computing Autor: 21971
Po přečtení slov “migrace do cloudu” si většina manažerů či majitelů firem mylně představí, že je čeká odstavení veškeré stávající infrastruktury a přechod do oblak se všemi aplikacemi. Cloud sám o sobě však není všespásný a nelze ho považovat za zázračné řešení všech problémů.

V tuto chvíli jsou hlavními hybateli přechodu do cloudu majitelé firem, kteří chápou výhody, ale uvědomují si i možná omezení nového řešení. Pokud se firma k přechodu nakonec rozhodne, jistě se bude rozmýšlet, co provést se stávajícím řešením.

Při rozhodování může firma zvažovat několik variant. Do cloudu lze převést jen část infrastruktury, nebo provést kompletní “switch”. Při něm jsou využity již existující cloudové aplikace, pokud však z nějakého důvodu nevyhovují, lze vyvinout vlastní, které odpovídají potřebám firmy.

První variantou je tedy částečný přechod do cloudu, během kterého část aplikací dál běží interně na vlastních serverech. Pro případ integrace takového systému s cloud infrastrukturou Google existuje speciální Secure Data Connector. Jedná se o konektor pro načítání dat z lokální firemní sítě do Google Apps prostředí přes šifrovaný tunel. Po zprovoznění uživatelé přistupují k datům z běžných cloud aplikací – např. pro import statistik o prodejích do tabulek nebo monitorování vytíženosti skladu přes miniaplikaci ve Webech Google.

Druhou variantou přechodu je migrace stávajících firemních aplikacích do cloudu. Kromě modelu poskytování “Softwaru jako služby” (SaaS – Google Apps, Salesforce, Dropbox) existují další dva modely. “Infrastruktura jako služba” (IaaS – Amazon, GoGrid) nabízí přístup ke kompletnímu výpočetnímu zdroji s možností instalace operačního systému, volbou vývojářské platformy a instalací aplikací. “Platforma jako služba” (PaaS – AppEngine, Force.com) odstiňuje od provozních úkonů a nabízí předpřipravenou vývojářskou platformu.

Při využití aplikací v cloudu odpadají problémy spojené s provozem serveru, které mají finanční charakter (nákup zařízení, upgrade licencí, platba administrátora, spotřeba energie) a také nefinanční (čas zaměstnanců věnující se provozu, zabrání místa pro uložení serverů). Hlavní výhodou cloudu je horizontální škálování, které umožňuje zvyšovat výkon přidáním dalších výpočetních zdrojů. Vývojář tak může počítat s téměř nekonečným výkonem, který je dimenzován podle aktuálních potřeb. Běžnější způsob zvyšování výkonu aplikací ve firmách spočívá ve vertikálním škálování, tj. přidávání konkrétních komponent do stávajícího zařízení (např. lepší a větší množství procesorů, větší operační paměť nebo pevný disk). Tento způsob škálování ovšem není možné používat donekonečna.

Automatické škálování má především příznivý ekonomický důsledek. Aplikace není nikdy používaná rovnoměrně a vždy dochází k výkyvům. Aby byla zajištěna dostupnost, je nutné dimenzovat výkon na největší zátěž (např. den). Ve zbylém čase (např. noc)  nejsou výpočetní zdroje využity.

Jedním takovým řešením PaaS je vývojářská platforma AppEngine s podporou jazyků Java, Python a nově Go. Kromě automatického škálování výkonu nabízí lepší měřitelnost služby, sdílenou multi-tenant architekturu a platbu za využitý výkon. Na druhou stranu z důvodu zachování bezpečnosti a škálovatelnosti cloud aplikací plynou i drobná omezení. Tím nejvýraznějším je ukládání dat do nerelační databáze (NoSQL) a absence zápisu na filesystem. Většina firemních aplikací vytváří soubory na disku nebo ukládá do relačních SQL databází.

Ve většině případů to znamená upravit databázi, protože většina firemních aplikací využívá relační SQL databáze. Pro firmy může být další nevýhodou absence socketového připojení (např. pro stažení dat z FTP). Pokud při návrhu vlastní cloudové platformy je počítáno s tímto omezením, získá firma kvalitní a škálovatelný výkon v běžném provozu zcela zdarma. Platba za využívání (výpočetní čas, datový traffic) probíhá až po překročení stanovených limitů. Dobrou zprávou pro mnoho vývojářů je chystaný dokument SLA, který přináší smluvně ošetřenou a přesně definovanou úroveň dostupnosti nabízené služby s popisem možné kompenzace. Rozpracovanou verzi naleznete na webu.

Pokud firma nemá kapacitu na vytvoření vlastní cloudové platformy, pro své aplikace menšího rozsahu může využít Google Apps Scripts. Tento poměrně nový nástroj s velkou budoucností dovoluje automatizovat běžné úkony uvnitř firmy. Dostupné rozhraní dovoluje přistupovat ke kontaktům, kalendáři, dokumentům, e-mailu, mapám, webům a dalším službám. Pro interní účely lze snadno vytvořit například jednoduchý fakturační systém v online tabulkových dokumentech načítající data z webu ARES přes XML.

Pro složitější řešení má firma k dispozici zatím neprávem opomíjené gadgety, neboli malé aplikace rozšiřující funkčnost systému. Jejich vložení probíhá stejně snadno jako umisťování videí z YouTube. Tyto miniaplikace se vytváří v klasických jazycích webu HTML, JavaScript a CSS. Spolu s aplikačním rozhraním Gadgets API a OpenSocial vytváří sadu nástrojů určené pro intranetové aplikace, které se hodí pro použití na personalizované stránce iGoogle, Webech Google, panelu Gmail nebo Kalendáři. Pokud firma potřebuje mít stejnou funkcionalitu na mnoha místech zároveň, jsou gadgety ideální volbou.

Firma však při vývoji svých aplikací může jít ještě dál a využít sílu integrace pomocí různých aplikačních rozhraní. Kromě klasických API, které přistupují k uživatelským datům (Kalendář, Gmail, Dokumenty, Kontakty, Weby), existují také speciálně určená aplikační rozhraní pro správu a nastavení účtů na doméně. Firma dokáže například pomocí Provisioning API vzdáleně spravovat účty uživatelů, skupiny a organizační podjednotky na doméně. Jednotnou správu nastavení e-mailových účtů IT manažer zajistí díky Email Settings API, které nabízí hromadné nastavování podpisů, vytváření filtrů, štítků, přesměrování pošty i správu “Out-of-office”. Pro sdílení kontaktů v adresáři slouží Shared Contacts API. Detailní popis všech aplikačních rozhraní a jejich možností naleznete na stránce o Google Apps APIs.

Platforma Google kromě stávajících aplikací nabízí i velké množství služeb třetích stran, které využívají aplikačního rozhraní. Tyto služby doplňují balíček pro firmy o další užitečné nástroje. Poptávka firem pro specifických aplikacích dává příležitost pro začínající firmy a vývojáře, aby na této platformě vytvořili nový produkt. V současnosti již existuje několik firem a jednotlivců, kteří se věnují vývoji a prodeji aplikací pro další firmy. Hlavní výhodou Google cloud platformy  pro ně totiž zůstává existence kvalitního zázemí (App Engine) spolu s návazností na prodej aplikací na platformě (Google Apps Marketplace), která disponuje velkou základnou potenciálních zákazníků (3 miliony platících firem využívajících Google Apps po celém světě).


Inmite s.r.o (Jaromír Fulnek, spoluzakladatel a CFO společnosti)

Společnost Inmite s.r.o. byla založena v roce 2008. Je na českém trhu lídrem v oblasti vývoje aplikací pro Android a iOS (iPhone/iPad). Intenzivně se také věnuje evangelizaci v oblasti smartphonů a tabletů. Společnost dlouhodobě spolupracuje s významnými klienty a kromě českých společností spolupracuje také se startupy i většími firmami z USA. V současné době tvoří Inmite tým 17 lidí.

Vývoj aplikací na Google App Engine skýtá pro Inmite celý komplex výhod. Z hlediska ekonomickým benefitů se platí jen za skutečně spotřebované služby. Z pohledu technického jde hlavně o „bezúdržbovost“ cloudu – jakmile je jednou řešení v cloudu spuštěno, nemusí se o něj firma starat. Google App Engine jde navíc velmi dobře adaptovat na nové podmínky a nabízí přehledné a snadno použitelné nástroje na správu.

Jaromír Fulnek ze společnosti Inmite říká: Google App Engine používáme jako serverový backend mobilních aplikací. Je pro nás obzvlášť důležité, že se nemusíme bát, že aplikace nebude fungovat z důvodu přetížení, když o nás napíše TechCrunch, nebo podobný portál a uživatelé začnou aplikaci houfně stahovat a používat. GAE nám už ušetřil hodně nervů – i ve chvíli, kdy se naše mobilní aplikace stala ze dne na den oblíbenou a intenzivně stahovanou a vytížení vyskočilo o několik řádů během pár hodin, mohli jsme s klidným svědomím jen pozorovat rostoucí statistiky. App Engine navíc umí rozložit zájem z různých míst planety na instance spuštěné na různých kontinentech, takže dosahujeme nižší latence. Kdybychom například využívali servery Amazonu v Irsku, uživatelé z USA by měli vyšší latenci.

CS24 tip temata

Pro vývojáře aplikací je nesmírně důležité i dobré „prostředí“ pro testování. Část ho Inmite provádí na vlastních serverech, ale část musí dělat přímo v prostředí cloudu. U Google App Engine je výhodou, že pro testování, výzkum a rozjetí služby stačí, podle slov Jaromíra Fulneka, limity, které jsou zdarma. To je rozdíl oproti například Amazonu, kde se musí za server platit ať je zátěž jakákoliv.

O nákladech říká Jaromír Fulnek: Z hlediska ekonomických nákladů je Google App Engine nepřekonatelný. Vezměte si, že při zátěži deseti tisíc paralelních uživatelů aplikace nás App Engine stálo pár desítek dolarů. Na druhou stranu ale má z našeho pohledu Google App Engine nedostatečné záruky dostupnosti, takže v případech, kdy to klient vyžaduje, musíme využít i řešení dalších firem, například  Amazonu.

Seriál: Cloud Computing

Autor článku

Spoluzakladatel a Solution Architect ve firmě AppSatori, která se zaměřuje na Google technologie a jejich využití ve firmách. Podílí se na aktivitách Google User Group  a nejen o novinkách z oboru píše na twitteru jako @codeas.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).