Osmý rok Myšlenek Otce Fura

eighth  birthday Osmý rok mého blogování nebyl ve směru psaní moc plodný, jak se dalo poznat z počtu publikovaných článků - podařilo se mi dokončit pouhé tři. Omezit psaní bylo to z mé strany vědomé rozhodnutí a měl jsem pro to hned několik důvodů. Přiznávám, že jedním z nich bylo i jisté vyschnutí inspirace, ale především jsem svoji energii chtěl věnovat prostě něčemu jinému. Dal jsem si dva hlavní úkoly - zorganizovat ne-konferenci jOpenSpace v lepší kvalitě a bohatším programem, než tomu bylo v roce 2013 a druhým velkým úkolem byl rozjezd služby MonkeyTracker, se kterou jsme si s kolegy už od roku 2013 hráli a experimentovali.

jOpenSpace 2014

Teprve až se člověk pokusí něco sám zorganizovat, zjistí, jaké množství úsilí a času podobná věc vyžaduje. Je dobré si to uvědomit, vždy kdy kritizujeme akci, kterou pro nás organizuje někdo jiný - zvlášť, pokud je to akce za hubičku. Sám si už dvakrát rozmyslím, jestli nějakou kritiku z pusy vypustím nebo ne. Hluboce smekám před všemi organizátory DevFestů, Barcampů, WebExpo, Geeconu a dalších - opravdu to není žádná procházka růžovým sadem. Je pravda, že když se akce povede nabije plno lidí úplně novou energií a ty nadšené tváře za to stojí. I tak jsem rád, že si štafetový kolík organizace na příští rok bere někdo jiný :)

jOpenSpace 2014

Web jOpenSpace konference dostal letos nový kabátek od Forrestů a také velmi pomohl sponzoring firem RedHat, MoroSystems, Vendavo, Abra FlexiBee a Kerio. Sponzoring výrazně zjednodušuje organizaci takto malých akcí, protože v nich do poslední chvíle hraje roli řada proměnných. Třebas letos odřeklo hned několik lidí na poslední chvíli, kvůli paralelní akci Bi Hackathon, která jak na potvoru připadla na stejný termín (oznámena však byla mnohem později). Na organizaci jOpenSpace se navíc nevydělává - vybrané peníze mají jen pokrýt náklady na akci a tak sladit příjmy a výdaje při větší fluktuaci není vůbec jednoduché. Hotel navíc také vychází z nějakých předpokladů a ve výsledku se musíme počtem trefit do rozsahu 30-40 lidí. Sponzoring zajišťuje organizátorovi vítaný polštář. Držím palce mému nástupci, aby se mu sešli dárci stejně jako mě letos.

Ale dost už lamentování - vše se letos povedlo na jedničku a myslím, že z akce jsem neodjížděl nadšený jenom já. Letos jsme si kromě lightning talků vyzkoušeli i řadu praktických hands-on-labů, sportovní program, degustaci vín ve sklípku a parta lidí, co se tam sjela byla prostě skvělá.

Pro mne byla konference přínosná už jen tím, že mi pomohla vyřešit nepříjemné problémy synchronizace operací a držení in-memory dat v clusteru. Na hands on labu týkajícího se memory gridu Hazelcast jsem z Míry Hamaly vytáhl všechny zásadní informace, které jsem k vyhodnocení užitečnosti Hazelcastu potřeboval :)

MonkeyTracker

Letošní rok se nesl ve znamení přípravy a vydání služby MonkeyTracker, která slouží k tvorbě teplotních map na základě sledování aktivit uživatelů na webu. Jedná se tedy o nástroj, který pomáhá designérům a majitelům zlepšovat user-experience jejich webu.

Click - HeatmapScroll - Heatmap

Služba se rodila už od začátku roku 2013, ale teprve loni jsme se rozhodli do toho šlápnout a ke spuštění došlo v listopadu. Hlavní motivací pro vytvoření služby byla vysoká cena zahraničních služeb, chybějící možnost měření responsivních webů, či nepříjemná práce s existujícími nástroji. K podobnému závěru došli evidentně i další  vývojáři, protože v posledních 2 letech byly spuštěny minimálně 3 podobné služby a některé naopak zanikly. Jestli se nám podaří mezi konkurencí probojovat uvidíme v nejbližším roce či dvou.

Už nyní mohu alespoň za sebe říct, že už cesta je pro mě cílem, protože s tím, co jsem se naučil za poslední rok bych se jinak vůbec nepotkal.

technického pohledu ...

... bylo zajímavé řešit architektonicky službu, která musí potenciálně zvládat velký vstupní provoz tak, aby byla ideálně bezvýpadková.

Průměrně 300 tisíc requestů denněUp-time 99,98%

Služba běží prozatím v režimu předběžného přístupu a je tudíž zcela zdarma. Měsíčně naměříme aktuálně něco přes 7 mil. kliknutí. Data jsou ukládána do replikované MongoDB a žurnálujeme je jako obyčejné flat soubory na souborový systém a následně zálohujeme. Na aplikační vrstvě nám běží Java 8, Tomcat 8, Spring, Hazelcast a EhCache. Pro hosting jsme zvolili cenově dostupné, české virtuální servery Wedos SSD a z nich si poskládali cluster, který je aktuálně složen ze 6 nodů. K instalaci používáme Chef, takže v případě potřeby bychom byli schopni velice rychle migrovat někam jinam. Prozatím jsme ale se službami tohoto českého hostingu spokojeni - na druhou stranu nepotřebujeme víc než čisté mašiny s rychlými disky a neomezeným připojením k síti. Wedos nabízí navíc pro každý uzel velmi velké pěknou velikost RAM, což se pro účely cachování šikne. Pro poskytovní statických souborů a terminaci HTTPS používáme CDN Incapsula.

Výpadky, které jsme doposud zaznamenali byli způsobeny buď nedostupností hostingu nebo CDN a to vždy v případech rozsáhlých DDOS útoků na některé ostatní weby, které přes ně běží. Oba dva poskytovatelé mají vybudované robustní ochrany proti DDOS, ale i tak občas k něčemu podobnému dojde. Bohužel zrovna tohle je věc, se kterou vy jako provozovatelé (malé) služby vůbec nic nenaděláte.

Z lidského pohledu ...

... jsem se naučil snad ještě víc. Musel jsem přestat přemýšlet jako programátor, který vyrábí na zakázku to, co po něm někdo chce, a začít přemýšlet jako ten, kdo to má celé na starosti. Je zajímavé mít plnou kontrolu nad tím, které vlastnosti a úkoly dostanou prioritu a které se odloží nebo se nebudou realizovat vůbec. Přemýšlet nad tím, jak navrhnout registrační flow tak, aby bylo co nejjednodušší a nejpříjemnější. Sestavovat strukturu homepage a snažit se upoutat potenciální zákazníky, psát texty, řešit newslettery, komunikaci přes sociální sítě, marketing. Kontaktovat lidi, kteří se tímto byznysem zabývají a zjišťovat jejich priority a potřeby. Vymýšlet pricing model, vybírat platební bránu a řešit provozní záležitosti jako třeba financování nutných výdajů. A to vše vyargumentovávat se svými společníky, kteří mají na řadu věcí (naštěstí) naprosto odlišný názor než vy.

Velkým štěstím pro nás je, že investorem je FG Forrest, kde máme odborníky z různých oborů a můžeme řadu věci konzultovat či si nechat rovnou vyrobit (grafiku, textaci apod.). Stejně ale za většinou věcí stojíme nakonec sami - někde jsme si nechali poradit a jinde sázíme na svoji intuici. Určitě jsme neudělali všechno optimálně, ale to je prostě součást procesu učení.

Na některé věci jsem díky tomu získal jiný názor a budu je v budoucnosti řešit jinak - a to i v případě zakázkových projektů, které mě stále živí.

A plány pro rok 2015?

Chtěl bych se zase vrátit k blogování -  i když to určitě nebude v takové intenzitě jako dříve. V šuplíku se mi prozatím nahromadilo pár námětů na články. Namátkou třeba něco o tom, jak jsme ve Forrestu vizualizovali KPI, proč jsme to udělali a co to přineslo. Nebo o evoluci architektury MonkeyTracker a výsledky z výkonnostního testování, respektive prvních měsíců provozu - s lehkým odkazem na Lambda / Kappa architekturu. Něco málo o Kryo knihovně a také už konečně vydat záznamy přednášek z jOpenSpace 2014, které mě doteď straší v RAW podobě na disku :)

Přeji všem šťastný a klidný rok 2015!