Cloud computing z pohledu softwarové firmy
Dalibor Kačmář, poradce pro platformní strategii, Microsoft
Co znamená cloud computing pro naši firmu a jak může ovlivnit naše produkty? To jsou základní otázky, které by si dnes měl položit každý majitel firmy vyrábějící software (ISV). Tato nová forma tvorby, provozu a licencování je realitou a na trhu najdeme celou řadu firem a prostředí, které cloud computing komerčně nabízí. Odpovědí na naši otázku by jednoduše mohlo být, že díky cloud computingu lze potenciálně zvýšit příjmy a/nebo snížit náklady. To se obvykle dočteme ve většině článků, které na téma cloud computingu za poslední rok vyšly. V následujících odstavcích se podíváme na to, co za touto jednoduchou odpovědí stojí.
Modely cloud computingu
Typickým použitím cloud computingu, které u výrobců softwaru vidíme, jsou SaaS aplikace. Právě tento typ dodávky produktů je dnes celou řadou zákazníků také požadován. Pro ISV firmy to znamená, že vedle kvalitního produktu musí zajistit i vysoce škálovatelné a spolehlivé infrastrukturní prostředí s odpovídající úrovní služeb (SLA). Pokrýt takové požadavky lze ideálně prostřednictvím profesionálních služeb cloudu.
SaaS však není jedinou formou, jak může ISV využít cloud a rozšířit tak možnosti svých stávajících nebo budoucích produktů. Daleko typičtější scénáře obsahují kombinaci lokálních aplikací se službami umístěnými v cloudu. Jedním z praktických případů je využití úložných, databázových nebo výpočetních služeb, které jsou dnes nejčastěji nabízeny jako Platform as a Service (PaaS). Mezi poskytovateli najdeme Microsoft s platformou Azure, dále pak Google App Engine, ale i méně známé 3Tera, Enomaly či Eucalyptus. Všechny tyto platformy mají společný cíl, a to uvolnit ISV firmě ruce a zbavit ji povinnosti zajišťovat úplný provoz infrastruktury, na rozdíl od poskytovatelů systémů typu Infrastructure as a Service (IaaS), kde dominuje Amazon vedle GoGrid, Joynet, Mosso a dalších.
Obchodní model
Cenová politika platformy Microsoft Azure | |
---|---|
Virtuální stroj | $0.12/hod |
Datové úložiště | $0.15/GB/měsíc |
Datová transakce | $0.01/10 tis. |
Přenos dat (in/out) | $0.1/0.15/GB |
SQL databáze | $9.99/1GB/měs |
Servisní sběrnice | $0.15/100 tis. zpráv |
Již dnes můžeme najít celou řadu výrobců programového vybavení, kteří pro provoz prodávaných aplikací využívají některou z forem hostingu (sdílený či dedikovaný). Nezávisle na poskytovateli, ať jde o mezinárodního hráče jako Amazon či lokální firmu, jsou platby za pronájem dány měsíčními konstantními poplatky bez ohledu na využití pronajatých prostředků. Takovýto přístup bývá neekonomický při fluktuující zátěži a snaze zajistit vysokou kvalitu a dostupnost služeb.
Pro PaaS model je naopak charakteristické platit za realizovaný výkon. Typickými metrikami jsou procesorová hodina, uložený či přenesený GB dat či počet provedených transakcí (viz příklad cenové politiky Azure). Popsaný způsob výpočtu pronájmu je velice jednoduchý, ale na architekty a vývojáře aplikací klade podmínku lepší optimalizace a testování produktu. Nezodpovědné plýtvání kterýmkoliv ze systémových zdrojů může provoz aplikace prodražit a o ušetřené prostředky na budování vlastního IT lze velmi lehce přijít.
Nemalujme vzdušné (cloud) zámky
Zatím vše znělo jako samá pozitiva. Pojďme se ale podívat na některé skryté překážky, které je nutné při plánování vývoje pro cloud platformu vzít v úvahu. Nejdříve setrvejme u obchodu, konkrétně jeho příjmové stránky. Pronájem softwaru nebo služby je zcela jiný model než běžný prodej licencí. Díky němu ztrácíme jistotu získání plné ceny licence, která nám může zajistit prostředky na další vývoj produktu. Je zřejmé, že na počátku podnikání v tomto modelu můžeme mít nižší zisky. Tento fakt je navíc silně ovlivněn možností zákazníka od služby odstoupit, aniž by ztratil počáteční investici a přešel ke konkurenčnímu řešení. Vztah se zákazníkem a kvalita služeb jsou pak faktorem, který naše řešení udrží v preferované rovině.
Na softwarovém trhu se pohybuje celá řada firem, které mají svůj podnikatelský záměr postavený na customizaci produktů a poskytování doplňkových služeb. Pokud je řešení realizované jako SaaS, je pravděpodobné, že pro tyto firmy zbude jen velice málo práce. SaaS aplikace mají totiž vedle celé řady výhod i mnohé nevýhody:
- Jde často o tzv. multi-tenant aplikace, tedy takové, které jsou sdíleny mezi několika klienty. Customizace je tedy možná pouze do určité míry.
- Aplikace bývá složité integrovat s lokálními aplikacemi a infrastrukturou.
- V současné době je obtížné monitorovat SaaS aplikace jednotným prostředím, které je využíváno pro lokální IT.
Při zvažování migrace či vytvoření paralelní cloud verze aplikace je nutné vzít v úvahu několik dalších otázek. Jednou z nich je určitě podpora celé řady standardů, mezi něž patří například Basel II, Sarbanes-Oxley či PCI DSS používané platebními společnostmi. Speciální kapitolou jsou pak aplikace pro státní správu, kde v mnoha zemích existují omezení pro ukládání dat a manipulaci s nimi mimo státní hranice.
Skončí všechny aplikace v mraku?
Některé aplikace jsou vhodnějšími kandidáty než jiné. Prakticky lze do cloudu převést téměř libovolnou aplikaci, ale pouze s velkými oběťmi. Při zvažování migrace nebo vytvoření cloud aplikace doporučuji udělat důkladný rozbor požadavků na aplikaci na straně jedné a možností cloud platformy na straně druhé. Typicky sledovanými parametry aplikací jsou bezpečnost, data management, schopnost správy, opakovatelnost použití, dostupnost, portovatelnost, škálovatelnost, cenová dostupnost, spolehlivost, uživatelská zkušenost, soulad s normami a standardy a způsoby distribuce. Pokud najdeme dostatek atributů, které ospravedlní investici do vývoje cloud verze aplikace nebo převáží případné nevýhody, určitě nepůjde o zmařenou investici. O co je navíc vývoj cloud aplikace podobnější vývoji lokálních aplikací (jazyky, knihovny, frameworky, vývojové nástroje), o to je investice nižší. Praktický návod pro zmíněné porovnání lze například najít v článku Darryla Chantryho „Mapping Application to the Cloud“.