Co se odehrálo ve světě cloud computingu v červenci

Asi těžko budeme hledat technologie, které v poslední době procházejí tak bouřlivým rozvojem jako cloud computing. Po letech okurkové sezony se do IT konečně dostává pořádně konkurenční prostředí. Google, Microsoft a Amazon se perou, kdo z nich bude mít navrch. Článek shrnuje novinky za poslední měsíc.

Ve světě cloud computingu se stalo mnohé. Podrobněji se budeme věnovat pouze dvěma událostem. První z nich je představení ceníku Windows Azure a druhou je setkání skupiny NOSQL.

Microsoft Azure – představení ceníků

Windows Azure je operační systém pro cloud computing, na kterém mohou vývojáři stavět svá řešení za použití technologii jako .NET, Java, Ruby on Rails, Python a dalších. Cloud od Windows Azure je podobný konkurenčním řešením, a zároveň se od nich liší. Od Amazon EC2 např. tím, že vývojáři nemají možnost ovlivnit přímo virtuální stroj. Do budoucna však Microsoft plánuje změnu a chce přístup k virtuálnímu stroji, na kterém budou běžet jejich řešení, povolit. Vývojáři se ale již nyní nemusí starat o alokování hardwaru, jak tomu je u Amazonu EC2. Windows Azure sám škáluje dle aktuální potřeby a podobá se touto vlastností více Google AppEnginu.

Součástí Windows Azure jsou také dvě další služby. První je SQL Azure, což je relační databáze pro cloud, a druhou službou je .NET Services, která reprezentuje platformu jako službu (PaaS), postavenou nad Windows Azure.

Dosud běžel Windows Azure v betě, nebo v řeči Microsoftu: Community Technology Preview, a provoz nebyl nijak zpoplatněn. Tomu je však konec a nyní jsou služby zpoplatněny podle ceníku, který Microsoft pro Windows Azure představil tento měsíc.

Kolik za to zaplatíme

Existují tři cenové modely, jak je možné za Windows Azure platit.

  • na základě spotřeby, při kterém uživatel platí za to, co používá
  • na základě předplatného, se slevami pro ty, kteří se upíší na šest měsíců používání
  • a do příštího července objemová licence pro firemní zákazníky, kteří chtějí převést existující licence firmy Microsoft do cloudu.

Azure compute stojí 12 centů za hodinu služby, což je o půl centu méně, než stojí Windows platforma u Amazon EC2. V závislosti na aktuálním zatížení vaší aplikace může běžet i více serverů – Azure sám škáluje dle potřeby.

Diskové (úložné) služby u Azure stojí 15 centů za GB dat na měsíc plus další poplatek za každých 10 000 transakcí mezi úložištěm a vaší aplikací.

Platforma .NET Services stojí 15 centů za každých 100 000 přístupů aplikace, vytvořené na .NET Service, k nástroji nebo kusu kódu.

Přesun dat stojí 10 centů za GB v případě transferu dat na servery Windows Azure a 15 centů za GB v případě transferu dat ze serveru Windows Azure.

SQL Azure stojí 9,99 dolaru za relační databázi do 1 GB a 99,99 dolarů za relační databázi do 10 GB.

Porovnání s konkurencí

Cloud computing z pohledu vývojářů znamená, že se navzájem perou největší obři a uživatelé jejich služeb z toho tedy mají prospěch. Amazon EC2 byl až do teď jediným poskytovatelem podobných služeb, který poskytoval na své infrastruktuře operační systém Windows. Aby byl Microsoft konkurenceschopný, přišel s nižšími cenami a lepšími službami. Windows Azure totiž sám přidává nebo odebírá servery tak, jak je to zrovna podle zátěže potřeba.

Jestliže vaše aplikace není závislá na platformě, potom je Windows Azure dražší možností, protože Amazon EC2 s Linuxem je přeci jen levnější.

Při sestavování ceníků Microsoft nijak zbytečně neexperimentoval a postavil ho podobně jako má konkurence, což je pro uživatele výhodné, protože se alespoň v některých ohledech dají dobře porovnat ceny. V řadě vlastností však ceníky porovnatelné příliš nejsou.

Microsoft s Windows Azure tak balancuje na pomezí mezi Amazon EC2 a Google App Enginem. Dává větší volnost výběru programovacích jazyků, než Google App Engine a zároveň přináší automatické škálovaní, které tak chybí u Amazon EC2.

NOSQL

V Kalifornii proběhlo zajímavé setkání, či spíše jednodenní konference, na téma distribuovaných nerelačních databází, nazvaná prozaicky NOSQL. Účastnící se mohli dozvědět více o těchto databázích, z nichž většina běží na nějaké populární webové službě. Namátkou třeba Cassandra, která pohání zprávy na Facebooku, či Projekt Voldemort, na kterém zase běží služba LinkedIn.

Pokud spravujete nějakou relační databázi, jistě mi dáte za pravdu, že řešit některé úkoly je poměrně nepříjemné (změna schématu, replikace apod.). Dokud potřebujete jen jeden server, tak jsou tyto databáze poměrně bezproblémové, protože máte k dispozici sadu nástrojů a léty prověřenou praxi, jak typické administrační úkoly řešit. Problémy nastanou, pokud jeden server nestačí a je potřeba přidat další. A může to být z důvodů nedostatečného místa na disku či proto, že nároky jsou tak vysoké, že procesor nestíhá obsluhovat. Řešení je přidání dalšího serveru (tomu se říká horizontální škálování), ve kterém jsou však SQL servery velmi slabé. Jako příklad si uveďme již zmiňovanou replikaci. V praxi můžete mít pouze jeden server, na který se zapisují data. Při více serverech vzniká problém, jak tato zapsaná data dostat na další servery a zároveň hlavní zápisový server nepřetížit. Další komplikací je horizontální či vertikální dělení databáze na více serverů, to dokonce u některých SQL ani nelze.

SQL servery nevyužívají možnosti paralelizace procesů. Pokud máte data rozdělena do více serverů, tak jejich výběr (select) bude vždy dělat jen jeden server. Důvod proč nelze mít více zápisových serverů je ten, že SQL servery neumí řešit konflikty, které mohou vzniknout při současném zápisu. Například oba servery vytvoří stejný primární klíč, ale pro různá data. Z toho plyne, že čím více dat budete mít, tím pomalejší bude čtení i zápis. To jsou hlavní důvody, které vedly k hledání alternativ.

I přes potíže, které relační databáze mají, nehrozí, že by se v blízké době přestaly používat. Rozhodně si své uplatnění najdou, ale na poli webových aplikací je zřetelný odklon směrem k nerelačním databázím. A to hlavně z výkonnostních důvodů.

Jaké typy nerelačních databází máme?

Shrňme si ještě, jaké typy nerelačních databází máme. Prvním typem jsou distribuované klíč-hodnota databáze (Dynamo-like systems). Klíč-hodnota (key-value) jsou databáze, které si lze představit jako velké hashmapy. Použití je podobné jako u cache systémů jako je např. memcached. Zde se předpokládá, že data jsou denormalizovaná. Kupříkladu u projektu Voldemort se používá MySQL jako úložiště dat, ale aplikace LinkedIn se dotazuje vždy Voldemortu. Ten tak funguje jako velká distribuovaná cache. Mezi zástupce této skupiny patří:

Distribuované sloupcově orientované databáze (Bigtable-like systems):

Druhý typ databází ukládá data do schématu, ale nikoliv řádkově, ale sloupcově. To má tu výhodu, že data, která jsou ve stejném sloupci, jsou vedle sebe na disku. Díky čemuž jsou daleko rychlejší operace jako COUNT a SUM apod. Zároveň neexistuje něco jako null hodnota. Pokud není co do daného sloupce uložit, tak se to neuloží. Databáze nemusí držet místo. Samozřejmě je o něco pomalejší zápis než u řádkově orientované databáze. Zástupci této skupiny jsou:

A ještě uveďme jednu databázi, která se trošku liší od všech ostatních:

Jak je vidět, tak nerelační databáze přinášejí změnu v pohledu na databáze a snaží se řešit některé výše popsané problémy. Většina z nich je ve stádiu raného vývoje a ještě bude zajímavé sledovat jejich další vývoj.

Další linky, co stojí za přečtení

Jan Kodera je technickým ředitelem ve startupu Abakowiki. Patří mezi největší propagátory moderních IT, jako je SaaS či cloud computing.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 5

Přehled komentářů

Lojza Abakowiki.cz
Almad Odkaz na buzzmag
Martin Malý Re: Odkaz na buzzmag
t42 dalsi zajimave projekty
KLoK Mongo DB
Zdroj: https://www.zdrojak.cz/?p=3063