Jak česká Geewa průkopničí v nových technologiích

Geewa

Geewa Zdroj: Jan Sedlak

Příběhy o tom, jak si Google při svém vzniku začal sestavovat vlastní servery a psát vlastní serverové systémy, nebo jak ve Facebooku vznikla speciální laboratoř, kde se kromě serverů vyvíjí také technologie pro ukládání dat, už jsou evergreenem. Dnes už se podobnými problémy zabývají také další internetové firmy, které zjišťují, že k chodu svých webových aplikací potřebují něco víc, než co je běžně dostupné na trhu.

Zatímco klasické firmy si většinou s dostupnou nabídkou serverů a serverových aplikací bez problémů vystačí, nová generace internetových firem si musí dopomáhat vlastními silami. „Do problémů jsme se dostali v době, kdy jsme začali obsluhovat milion uživatelů denně,“ vzpomíná například v rozhovoru pro E15.cz zakladatel a technický šéf pražské společnosti Geewa Miloš Endrle na dobu, kdy s jeho týmem zjistili, že jim klasické technologické zázemí nebude stačit.

Mezi nejlepšími na Facebooku a prvními na světě

Geewa patří se svým kulečníkem a pokerem mezi 10 největších herních vývojářů na Facebooku. Jeho hry denně hrají 2 miliony uživatelů, kteří generují obří objemy přenášených dat a vysoké nároky na jejich zpracování. Na první pohled to tak vypadat nemusí. Obě hry mají jednoduchou grafiku a uživatelské rozhraní a nedá se říci, že by podobný typ her neexistoval v minulosti.

Rozdíl je však v tom, že jak kulečník, tak poker hrají lidi z celého světa proti sobě a využívají přitom různé sociální aspekty. Mohou spolu komunikovat, sledovat žebříčky, soutěžit a především proměňovat skutečné peníze za virtuální a například si za ně poté nakupovat lepší virtuální tága a další vybavení.

Geewa za jeden den na kulečníku protočí 8 miliard virtuálních mincí a uživatelé odehrají kolem 12 milionů zápasů denně. Webový server ve špičce musí zvládnout odbavit 15 tisíc požadavků za sekundu a databáze musí zpracovat 1500 zápisů za sekundu. Do analytické databáze pak každou sekundu směřuje 2500 zápisů. Kulečník při největším zatížení hraje 100 tisíc hráčů zároveň, kteří na serverech generují datový tok převyšující 300 Mb/s.

Z na povrchu jednoduché hříčky se tak rázem stává na pozadí velice složitý systém fungující v cloudu a na více místech zároveň. Podobné problémy řeší spousta dalších cloudových průkopníků, od již zmiňovaného Facebooku a Googlu přes herní společnosti jako Zynga, sociální sítě typu Twitter až po distributory multimediálního obsahu jakým je třeba Spotify.

Náročnost toho, s čím se Geewa při vývoji a provozování her pro Facebook potýká, její zástupci ilustrují na přirovnání k Seznamu, tuzemské internetové jedničce: „V Seznamu mají sice hodně uživatelů, ale nejsou zvyklí obsluhovat miliony uživatelů z celého světa. Oni jsou stále schopní nasadit novou verzi webové aplikace přes noc,“ popisuje Endrle rozdíly.

Nelze jinak, než vlastními silami

„Společnosti, které vyvíjejí hry, samozřejmě nechtějí řešit zázemí, na kterém budou fungovat. Chtějí dělat kreativní práci. Bohužel to v současné době není tak úplně možné,“ popisuje Endrle v prostorách karlínských kancelářských prostor jeho firmy. Zatímco typická firma může přijít například do IBM nebo Oraclu a říct, že by si ráda koupila infrastrukturu a aplikace pro provozování firemního softwaru a databází, pro cloudové společnosti a startupy taková komplexní řešení neexistují. „Překvapuje mě, že často řešíme některé problémy jako první na světě.“

Tradiční výrobci hardwaru ne vždy stíhají aktuálně reagovat. „HP, Dell, IBM a další mají velice dobré produkty a naslouchají zákazníkům, ta naše oblast je ale úplně nové odvětví a předbíhá současnou nabídku na trhu,“ vysvětluje energický čtyřicátník. „Nejenom v Česku, ale na celém světě je toto odvětví na začátku.“ Endrle si myslí, že vzhledem k postupnému přesunu do cloudu čekají trh veliké změny. „Klasický počítač jak ho známe, jako řadič, procesor, paměti a tak dále, se mění a já osobně si myslím, že cloudový hardware se ve střednědobém horizontu začne hodně zásadně měnit.“

Konkrétně pro vývojáře internetových sociálních her spustila vlastní platformu společnost Zynga, jejíž hry patří na Facebooku mezi ty nejhranější a která to díky nim dotáhla až na newyorskou burzu. Libovolný vývojář si na její Z cloud může umístit aplikaci a nemusí se o žádnou infrastrukturu starat, pouze platí pravidelné poplatky. To ale opět není řešení pro každého.

Ekonomický systém na pozadí není nepodobný bankovním systémům.Ekonomický systém na pozadí není nepodobný bankovním systémům.

„To nejcennější na našich hrách a jim podobných aplikacích jsou mechanismy, díky kterým se vydělává na uživatelích. Pokud bychom toto přesunuli třeba k Zynze, vystavili bychom se obrovskému obchodnímu riziku,“ zasvěcuje Endrle do problému, „protože trh ví, že se Zynga v mnoha případech na ostatních tak trochu obohacuje.“ Z tohoto důvodu například u tvůrců FarmVille a CityVille nehostuje své produkty žádný z 20 největších vývojářů her.

Něco jako bankovní systémy

Zmiňované mechanismy, díky kterým je možné na sociálních hrách a aplikacích vydělávat peníze, jsou také to, co tvůrcům těchto produktů přidělává největší potíže. V případě Geewy jsou tímto mechanismem mikrotransakce a převody virtuálních peněz.

„V rámci hry se hraje o virtuální měnu a po každé hře se musí daná transakce zapsat. Naše systémy, které jsme si pro tyto účely vytvořili, nejsou nepodobné systémům, které znáte z bank nebo od telekomunikačních operátorů. Jde o transakce, které je nutné zaúčtovat,“ popisuje Endrle, který toto tvrzení podkládá svými zkušenostmi s vývojem transakčních systémů, od kterých ke hrám přešel.

Tato dynamická data kladou obrovskou zátěž na jejich ukládání do storage systémů. „Asi v 95 procentech data zapisujeme, pouze 5 procent tvoří čtení. Náš problém nebyl ani tak v softwaru, jako spíše v limitech hardwaru,“ popisuje jeden z problémů Tibor Nagy, který se v Geewě stará o servery a technologie na pozadí. Jinými slovy servery a databáze nestíhali zapisovat takové množství dat, které se na ně hrnulo.

„Napsali jsme vlastní cache mechanismus a dočasně ukládáme, co se dá. Základ celého toho řešení je dočasně ukládat data v paměti,“ vysvětluje Nagy řešení problému. Geewa tak velice aktivně využívá v současné době hodně skloňovaný termín in-memory, kdy se data neukládají na pevné disky, ale nejdříve se zpracovávají v operační paměti. „Paměť je teď na serverech to nejdražší a in-memory je jednoznačně velká věc.“ Nagy se mimo jiné řídí heslem „kešuj, dokud můžeš“.

Geewa jako databázi využívá SQL Server od Microsoftu, který podle Nagyho slov patří mezi naprostou výkonností elitu. Do specifických podmínek cloudových firem ale nemusí vždy stoprocentně pasovat. „SQL databáze za sebou mají 20 let vývoje, ale pro chod v cloudu prozatím nejsou úplně optimalizované. Mají různé funkce, ale jsou určené spíše pro velké korporace s deseti až statisíci uživateli. Už nicméně nejsou úplně vhodné na desítky milionů uživatelů. To je úplně něco nového, s čím přichází sociální aplikace a hry,“ doplňuje Miloš Endrle.

Jádro z Windows, zbytek vlastní

Základem serverů Geewy je jádro serverových Windows, na kterém pak firma provozuje proprietární webový server a vlastní technologie, které umožňují obsluhovat hráče nezávisle na platformě a koncové technologii, ať už se jedná o Flash, HTML5 nebo cokoliv jiného. Podobné systémy provozuje také Facebook, Zynga a další.

Podle zástupců tuzemské vývojářské společnosti, která ročně vydělá kolem 50 milionů korun a mimo jiné provozuje portál Hry.cz pro Seznam, je nutné u podobného typu společností a projektů dbát na návrh celé infrastruktury. Zatímco dynamická data Geewa zpracovává na vlastních systémech umístěných na serverech od Dellu, některé operace posílá mimo vlastní stroje.

Například na analytické služby využívá služby Kontagent, které mimo jiné fungují na technologiích HSQLDB a big data platformě Hadoop. Takové služby ovšem vyjdou na desetitisíce eur měsíčně. A na ještě větší sumy přijde služby od Amazonu, na kterém Geewa hostuje statická data. „Největší náklady z infrastruktury nám v současné době tvoří Amazon a na něm umístěný statický obsah,“ vyčísluje Tibor Nagy. Náklady na celkovou infrastrukturu vyjdou firmu na statisíce měsíčně a tvoří zhruba třetinu toho, co Geewa vydá na zaměstnance.

Statická data, kam spadají soubory her, obrázky, skripty nebo Flash, která má Geewa umístěna v cloudu Amazonu, podle Endrleho na rozdíl od dynamických dat nepředstavují žádný větší problém. Firma nicméně v současné době plánuje přechod na CDN technologii od Akamai. Výhoda CDN je ta, že umožňuje obsah umístit na serverech v mnoha geografických lokalitách po celém světě, díky čemuž je pak rychleji dostupný v daných regionech. Opět ale nejde o levnou záležitost.

Vlastní servery, na které běží dynamický obsah, firma hostuje v pražských prostorách SuperHosting.cz. To, že k těmto strojům přistupují hráči z celého světa, údajně není ani vzhledem k umístění žádný problém. „Dnes už je internetová infrastruktura na výborné úrovni a i v těch nejproblémovějších oblastech můžeme počítat s odezvou do 300 milisekund, což je v případě našich her naprosto dostačující. Není to problém ani pro Facebook na chatování, není to problém pro Zyngu,“ říká Endrle.

Hlad po vývojářích

S tím, jak si musí Geewa a další hráči psát vlastní specifické systémy a vyvíjet nové technologie, je problém se sháněním schopných vývojářů a inženýrů. I proto je možné v Silicon Valley sledovat neustálé talentové akvizice, kdy jde firmám především o to koupit si chytré mozky do svého týmu.

Také v Praze se neustále hledají nové posily, problém je ovšem s tím, že s tímto druhem služeb má málokdo zkušenosti. „Máme zkušenosti například s dobrými inženýry z velkých korporací, kteří tam řešili veliké projekty, ale u nás byli ztracení,“ popisuje složitou situaci zakladatel Geewy. „Lidi si prostě musíme vychovat.“

Z týmu 28 lidí, kteří v Geewě pracují, se jich stále většina věnuje samotným hrám. „Nevím, jestli je to dobře, nebo špatně, protože na serverech potřebujeme udělat hromadu věcí a myslím, že současný počet je hrubě nedostačující.“ Specifické znalosti ovšem nemají pouze lidi kolem serverů, ale také samotní vývojáři her, protože musí umět programovat tak, aby produkt na složité infrastruktuře a cloudu fungoval.

U nových typů technologických firem výrazně roste poptávka po odbornících, kteří zvládají programovací jazyk C. „Když napíšete odladěnou aplikaci v céčku, výrazně tím ušetříte procesy na straně serveru a tím pádem také spoustu peněz.“

Pro internetové firmy včetně Geewy jsou kromě infrastruktury důležité také webové prohlížeče, které umožňují používat nové a lepší technologie. Jejich možnosti podle Endrleho posunul především Google. „Klaním se tomu, co udělal Google s prohlížečem Chrome. Posunul hranice toho, co my a ostatní vývojáři jsme schopní na webu dělat,“ chválí a zmiňuje především HTML5 a rychlost JavaScriptu. „To, co je dnes možné napsat, je díky Chrome.“