Slave roboti WebMedea

led 31 2019
V předchozím příspěvku jsem psal, že se naše slave aplikace na internetu chovají slušně. Co si pod tím představit? Ve WebMedea se na internet díváme jako na les. Les si žije svým životem, roste a mění se nezávisle na WebMedea. Ta jej pouze z každého jeho místa pozoruje. Jak? Naše infrastruktura představuje mraveniště rozesetá po lese. Slave aplikace pak představují mravenečky sbírající po lese kousíčky informací, které odnáši do mraveniště.
 

mravenci, PixaBay

Obr. 1: Roboti WebMedea jsou hodní mravenečci :), zdroj PixaBay

Za prvé, slave aplikace respektují robots.txt na webech. Pokud si autoři webu nepřejí, aby určité části webu procházeli roboti, naše slavy to respektují. Zkrátka mraveneček není dotěrný a nevleze do nory zvířátku, které si to nepřeje. 
 
Za druhé, slave aplikace poslouchají svého mastera, který je neposílá dvakrát na to samé místo dříve, než za určitou dobu. Z daného webu si tak slave odnese jen potřebné minimum informací, které předá masterovi (a ten registrům), a na web se vrátí až když je informaci nutné aktualizovat. Mravenečci jsou tedy organizovaní a neshlukují se opakovaně na jednom místě v lese a nepustoší ho.
 
Za třetí, slavy jsou šetrné ke službám Seznamu a Google, data si berou jednou za čas a v malých množstvích. Master aplikace vyhodnocují priority - o která data si kdy říci. Analogie: Mravenečci sbírají jehličí kolem stromů a nosí je do mraveniště.
 
Toto není samo sebou, zatímco WebMedea slave je mraveneček, existují aplikace, které se v lese chovají jako dřevorubci. Zadavatel řekne dřevorubci, co má natěžit, dřevorubec vezme sekeru a jde rubat. Rube hlava nehlava. Čím více lidí chce natěžit data, tím více dřevorubců nenávratně devastuje les. Ekonom i ajťák si snadno udělají obrázek o škálovatelnosti takové služby i její závislosti na okamžité dostupnosti plundrovaného lesa. :) 

Poolování linků ve WebMedea

led 27 2019
WebMedea je založena na microservices architektuře, rozprostřené přes vlastní síť dedikovaných a virtuálních serverů. Jak si ji nejlépe představit? Viděli jste film Na hraně zítřka s Tomem Cruisem na motivy knihy All You Need Is Kill? Tak mimozemská entita, proti které hlavní hrdina bojoval, odpovídá architektuře WebMedei. Omegy jsou dedikované servery s aplikacemi nazvanými registry, ty všechno ví - jsou napojeny přímo na Cassandru a opečovávány ve špičkových datových centrech. Alphy odpovídají uzlům s aplikací nazvanou master, která dokáže nezávisle pracovat na složitějších výpočtech a řídit armádu slavů. Chobotnaté vetřelčí Bety z filmu představují aplikace typu slave, nasazené na velkém množství virtuálních serverů po celé republice. Každý slave vidí jen svého mastera, dotazuje se ho pro úkoly a odvádí rutinní práci. Slave je úplně odstíněn od registrů, může být okamžitě nahrazen a znásoben. Nutno podotknout, že slave se na internetu chová slušně.
 
Jedním z nejvíce zatížených míst v systému jsou registry, které musí neustále poskytovat data pro byznysové analýzy master uzlů. Přičemž největší tok dat způsobuje více než miliarda hypertextových odkazů napříč všemi weby v ČR, které jsou neustále sbírány, ukládány a analyzovány. Původní implementace registrů byla založena na javovském Cassandra driveru od Datastax a knihovně Spring Boot a umožňovala následující workflow:
  1. Master se dotázal REST rozhraní registrové aplikace
  2. Registry aplikace sestavila požadovaný dotaz a poslala jej Cassandře
  3. Pomocí CassandraConverterRowCallback se z výsledkové sady vytvořily požadované objekty
  4. Objekty se zpracovaly (druhotné vyfiltrování, seřazení, či jiné předzpracování)
  5. REST rozhraní registrů vrátilo Masterovi serializované pole požadových objektů
  6. Master deserializoval objekty a provedl s nimi potřebné operace
Uvedené řešení fungovalo spolehlivě zhruba do začátku léta 2018. Mezitím přerostl počet evidovaných hyperlinků miliardu. Narostla také hustota linků v okolí jednotlivých webů. Při zpracování začalo docházet k enormnímu paměťovému zatížení a to zejména u registry aplikací.
 
Situaci jsme se rozhodli vyřešit poolováním objektů v registry a master aplikacích. Protože jsme neměli kontrolu nad instancováním tříd v CassandraConverterRowCallback a při deserializaci Sprint Boot, byli jsme nuceni tuto funkci přenechat poolu. Implementace poolu byla jednoduchá, bylo jen potřeba pamatovat na to, že si do něj souběžně chce šahat více vláken...
 
@Component
public class LinkPool {

  Deque<Link> links = new ConcurrentLinkedDeque<>();

  public void recycle(Collection<Link> links) {
    synchronized (this.links) {
      this.links.addAll(links);
    }
  }

  public void recycle(Link link) {
    synchronized (links) {
      this.links.add(link);
    }
  }

  public Link getLink(Row row) {
    Link link = null;
    synchronized(links) {
      while (link == null) {
        if (links.isEmpty()) {
          return new Link(row);
        }
        link = links.poll();
      }
    }
    return link.fromResultSetRow(row);
  }
}
Další optimalizací bylo snížení trafficu mezi registry a masterem. Byznys vrstvy pracují s linky na úrovni logických celků. Naše výpočetní algoritmy jsou založeny na principu procházení grafu do šířky. Tím pádem se systematicky přesouvají od jedné domény na druhou a zpracovávají jejich okolí. No a projít okolí domácích gigantů jakými jsou iDnes, nebo Firmy.cz vyžaduje přechroustat velké množství linků, ve kterých se zdrojové a cílové domény často opakují. Indexací duplicit při serializaci v registrech a opětovným zrekonstruováním linků při deserializaci v master aplikacích se nám v ideálním případě podařilo zmenšit traffic až o 50%.
 
Souběžně s optimalizací aplikace Marek vyčlenil master server Ares pouze k účelu analýz nad linky. Řešení se ukázalo být stabilní a neustále rostoucí databázi zvládáme bez velké zátěže vyhodnocovat.

Jak jsme pracovali v roce 2018

led 20 2019

K lednu patří bilancování nad předchozím rokem. Již na předvánoční besídce jsme si promítali finanční výsledky WebMedea services za rok 2018.

TRITON IT je firma, kde se veškerá práce podřizuje klientským zakázkám. Redukované tržby (po odečtení provozních nákladů, provizí a kreditů pro Google, Seznam, AdForm, magazíny) padnou z většiny na pokrytí práce na klientských zakázkách. Jedinou interní zakázkou je v současnosti příprava nové webové prezentace, kterou potřebujeme jako sůl.

Naopak WebMedea services (WMS) je pro nás vyloženě investiční záležitostí. Základem je odložená spotřeba. Tím, že si jako společníci od založení WMS nevyplácíme plat, můžeme vydělané prostředky alokovat do investic, které tvoří 40% veškeré práce odpracované v rámci WMS za rok 2018.

Rozložení práce ve WebMedea services v roce 2018

Obr. 1: Rozložení práce ve WebMedea services v roce 2018

V oněch 40% hodin odpracovaných na investicích se skrývají naše investiční projekty. Největší položku představuje vývoj a provoz analytického softwaru WebMedea. Dále projekt Markeťáci.online, který přiblížím v budoucnu. Dále projekt s krycím názvem Tlampač, na který plánujeme získat investici a založit pro něj samostatnou společnost. Následuje projekt Rakousko.cz, který připravujeme společně s Bizmarkem a v roce 2019 bude představovat jednu z nějvětších investic WMS. V neposlední řadě se jedná o projekt Net Forest.

Rozložení investiční práce WebMedea services v roce 2018

Obr. 2: Rozložení investiční práce WebMedea services v roce 2018

Něco málo přes 32% času jsme strávili čistou prací na zakázkách WebMedea services. Konkrétně se jednalo o realizace marketingových studií a strategií na základě dat z WebMedea. Dále pak o návrh architektury a distribuované NoSQL databáze pro projekt Politinn a dodej dat z WebMedea pro tento projekt. Zde jsme zužitkovali zkušenosti z tří let vývoje vlastního řešení.

Téměř 14% práce připadlo na režii. Ta byla tvořena schůzkami s klienty, projektovým řízením, firemními poradami, personálními záležitostmi, účetnictvím a další byrokracií.

Posledních téměř 14% práce padlo na presale. Tedy proces od navázání kontaktu po uzavření první zakázky. V prvním pololetí 2018 se presale podařilo redukovat díky spolupráci s Movisio. V druhém pololetí 2018 se nám perfektně rozjela spolupráce s Bizmarkem. Dlouhodobou investici pro redukci presalu představuje Net Forest. V neposlední řadě jsme v rámci presale rozjeli slibnou spolupráci se startupem LiveSweaters.

Do roku 2019 jsme vstoupili s novými zakázkami a možnostmi spolupráce a již jsme v plném proudu prací na dalším rozvoji :)

Net Forest pohled do zákulisí

led 14 2019

Máme za sebou další úspěšný Net Forest, tentokráte jsem si také zanetworkoval. Nové rozhovory z lednové akce přibudou brzy na webu Net Forest. Pozitivní ohlas účastníků je velkou motivací pro nás všechny, kteří jsme se kolem této akce dali dohromady. A v jakém složení že akci připravujeme a jak?

Ondra Bukáček řeší moderování a veškerou administravitu - přihlášky, fakturace a komunikaci. Petr Vašut z Movisia zajišťuje provoz po stránce prostor a občerstvení. WebMedea services má na starosti web a propagaci akce. Tomáš Kouřim pomáhá s organizací a zajišťuje důležitou část offline propagace.

Pro nás vše začíná přibližně kolem čtvrté hodiny, kdy začínáme připravovat raut. Je to příjemné zpestření dne, kdy můžeme na chvíli vzhlédnout od obrazovek monitorů, diářů či zápisníků a pod Petrovou taktovkou i odborným dohledem kuchaře Pavla připravujeme rozličné dobroty.

Příprava rautu Net Forest ve WineBar

Obr. 1: Petr řídí přípravu rautu

Kolem páté přichází Ondra, který nastavuje audiotechniku, přesouvá stoly a kontroluje zasedací pořádek i pravidla pro přesuny účastníků během minutového networkingu.

Příprava stolů Net Forest ve WineBar

Obr. 2: Ondra připravuje stoly a zasedací pořádek

Kolem šesté přichází hosteska a kameraman Martin, který je autorem propagačních videí a Net Forest rozhovorů. Ondra instruuje hostesku ohledně průběhu networkingu.

Mezi šestou a sedmou postupně přicházejí hosté, kteří jsou s welcome drinkem usazeni v dolní části WineBaru. Úderem sedmé hodiny se hosté přesouvají do horní části WineBaru a networking začíná :).

Na poslední akci mě velmi potěšil Pavel Filip z Rise & Shine, který správně postřehl, že nás příprava večerního networkingu baví. Po čtyřech úspěšných večerech máme už své první "štamgasty" a kolem Net Forestu začíná postupně vznikat komunita. Vše také nasvědčuje tomu, že se v roce 2019 Net Forestem poprvé podíváme mimo Prahu.

Migrace blogu na Bludit

led 14 2019

Od redakčního systému (CMS) pro svůj osobní blog očekávám, že bude především jednoduchý a svižný. Tedy žádné složité pluginovací systémy a konfigurace. A především žádné instalace a provoz databázových systémů. Před pár lety padla moje volba na NibbleBlog, tvořil jsem na něm blog ozlatu.cz a používal jej na osobním blogu až do konce roku 2018.

S novým rokem přišel čas na nahradit NibbleBlog jeho mladším bráškou :). Bludit je moderní flat-file CMS, se kterým jsem zatím maximálně spokojen. Děkuji Markovi za přípravu Bootstrap 4 verze mé oblíbené šablony.

Dárečky z WineBar

pro 12 2018

Blíží se Ježíšek a opět vybíráme drobné dárečky pro stálé klienty TRITON IT. Letos naše volba padla na lahodná vína našeho partnera a klienta - luxusní vinárny WineBar. Reklamu pro WineBar nás prostě baví dělat a společně se radujeme z výsledků...

Obr. 1: PPC WineBar 

Úsilí se vyplatilo a WineBar oslovuje čím dále tím více lidí, kteří touží nejen po kvalitních vínech z malých rodinných vinařství, ale také po kýtách prvotřídní šunky Jamón. Ve Winebaru například nedostanete koupit žádný produkt, kteří zdejší someliéři osobně neochutnali v místě jeho výroby, a osobně nedomluvili jeho odběr.

Pro naše klienty jsme zakoupili španělská vína, která nám doporučil someliér Petr Mikeska a Marek byl včera ochutnat na degustaci :).

Když se obchod snoubí s marketingem

lis 03 2018

U klienta se pravidelně setkávám s člověkem, který se stal jedním z mých vzorů. Je to zkušený obchodník, jehož tah na branku je tak enormní, že sám vymýšlí dokonalé marketingové taktiky. Protiváhou (v dobrém slova smyslu) je mu analytický šéf marketingu, který nápady dokáže racionalizovat zhlediska aktuálních možností. Dohromady jsou naprostá elita, spolupráce s nimi mě baví a motivuje. Jejich firma se rozvíjí, i když se pohybuje v těžce konkurenčním prostředí s obtížně vyrobitelnou přidanou hodnotou. 

Obchod nad marketing

Proč o tom píšu? Marketing (a především ten výkonostní) a obchod mají velký společný průnik. Stále se setkávám s firmami silně zaměnými na obchod, které se diví, proč i přes velmi zkušený obchodní tým v dnešní době nerostou tak rychle, jak by si přály. Přitom jejich marketingové oddělení je podfinancované. A obchodníci konkurence mají za zády podporu marketingu, který pracuje s daty, ohřívá kontakty prostřednictvím cílené reklamy, ovlivňuje mínění veřejnosti o značce či produktech.

Marketing nad obchod

Setkávám se ale i s opakem. Firmami, jejichž marketingová oddělení (nebo externí dodavatelé marketingu) se považují za jakousi duševní šlechtu. V jejich očích jsou obchodníci spotřebním zbožím, nesoucím zodpovědnost za neúspěch. Marketing "drží tu vizi" a "vysílá firemní hodnoty", kreativci mají neomezené možnosti v překreslování log na základě svých pocitů, weby jsou neuživatelské, PPC kampaně jsou přeoptimalizované vzhledem k podružným ukazatelům. A obchodníci jsou hubováni za špatné výsledky. Ve výsledku však nikdo nepracuje se zpětnou vazbou, nevyhodnocují se data z výkonostního marketingu i obchodu. Místo toho, aby se produkt přizpůsoboval zákazníkovi, kterého znají nejlépe obchodníci, tak se marketing snaží přizpůsobit zákazníka produktu. 

Když se obchod snoubí s marketingem

Kromě týmu u našeho klienta doslova hltám videa Honzy Laibla z pořadu Já nic nechci. Honzu bohužel osobně neznám, ale bezesporu je geniálním obchodníkem se silným přesahem do marketingu. Ve svých příspěvcích pomáhá nacházet odpovědi třeba na následující otázky:

Byl Masaryk startupista?

říj 27 2018

Slavíme 100 let samostatnosti. Zkusme se na osobu TGM podívat trochu jinýma očima. Pojměme vznik republiky jako startup s enormní mírou rizika. A porovnejme si Masarykovo počínání s dnešní realitou těch, kteří něco budují.

T. G. Masaryk od Olivera Hellera, zdroj olomouckadrbna.cz

Obr. 1: Tuto malbu vytvořil ke příležitosti 100 let republiky olomoucký streetartový umělec Oliver Heller, zdroj: olomouckadrbna.cz

Kdy odejít z korporátu

První bod je přechod od austroslavismu k myšlence samostatného Československa. Masaryk včas pochopil, že přichází chvíle udělat se sám pro sebe, nebo budeme dříve či později pohlceni "německým korporátem", který v posledních dekádách integroval vše na zápád od hranic naší monarchie. Sasové, Bavoráci a další rychle vyměnili své samostatné identity za myšlenku jednotného Německa. U nás byla také rostoucí poptávka Čechů po vlastní zemi, ale i značné riziko spojené s realizací této myšlenky. Válka vše urychlila, Masaryk se rozhodl, nebylo cesty zpět.

Kde hledat podporu

Rozjezd každého byznysu či projektu je o získávání podpory a kapitálu. Masaryk vsadil na populární téma, kterému alespoň doma nepotřeboval dělat reklamu a vyrábět pro něj publikum. Doma však kampaně vést nemohl, byl by tvrdě potrestán za zradu. Navíc, dokud se o myšlence mluvilo po hospodách, každý měl velké vize, ale jakmile měl dav přiložit ruku k dílu, nebo vytáhnout pár drobných, ideály se rozplynuly a každý raději koukal na svůj plný talíř. Masaryk se rozhodl pro emigraci.

Jak motivovat tým a vést ho k cíli

Byli tu ale také mladí lidé, kterých se nikdo na nic neptal a odvedl je do ciziny do války obětovat se za zkostnatělý korporát, kterému nevěřili. Mnoho z nich ve válce trpělo či padlo do zajetí. Došlo jim, že klidnou budoucnost už ztratili a nebáli se proto riskovat pro myšlenku, která jim dávala smysl. Masaryk legionáře osobně zorganizoval, zlegitimizoval na západě a udělal jim PR. Dal jim ale ještě něco mnohem důležitějšího. Každý startup je založen na motivaci a očekávání, ti co pro něj pracují, bojují za svou budoucnost. Právě takovou motivaci legionářům Masaryk dal - budou se mít kam vrátit. Připadá nám to dnes jako samozřejmost? Ale evropská historie zná osud mužů, kteří se ocitli v podobné situaci jako naši legionáři, neměli se kam vrátit a celý svět si pak nad jejich masakrem umyl ruce.

Jak vybudovat značku

Česko bylo v zahraničí noname značka a když už byla rozpoznána, tak spíše negativně. I přes rozpoutanou válku si Francie přála, aby Rakousko-Uhersko zůstalo vyvažujícím státem Evropy, Anglie díky příbuzenským vztahům mezi šlechtou jednotu mocnářství také podporovala, USA si nepřály rozdrobení Evropy, Vatikán sázel na katolickou vlnu a byl si dobře vědom protestanství Čechů. V USA neměl Masaryk na růžích ustláno. Potřeboval finance, PR a podporu zdejších elit. Podařilo se mu uspět s crowdfundingem u našich emigrantů. Vsadil na partnerství a cross-marketing. Partnerství s M.R Štefánikem mu zajistilo vstup do mnoha salónů i rozšířilo hranice budoucího společného státu. Cross-marketing s populárním hnutím za ženská práva mu zajistil přístup k masám, kterým hlásal v té době doslova virální téma: "vybuduji zemi, kde budou ženy rovnoprávné s muži". Tento slib Masaryk dodržel a Československo se v roce 1919 stalo v pořadí osmou zemí na světě s volebním právem pro ženy (USA byla až devátá). V neposlední řadě Masaryk cestoval, publikoval, přednášel a kooperoval s médii. Vše kolem Masaryka začalo být zajímavým tématem: legie, situace v Evropě, diskuze o poválečném uspořádání. Masarykovi se tak dařilo zesilovat účinek kampaní, které vedl. A když legie obsadily transsibiřskou magistrálu a zmocnili se carského pokladu, byl to virál jako Brno :)

Jak zajistit fungování

Ani po vyhlášení republiky 28. 10. 2018 neměl Masaryk vyhráno. Naši sousedé podobu samostatného Československa neuznávali. Navíc část Jižní Moravy včele se Znojmem chtěla zůstat připojena k Rakousku. Šumava se chtěla připojit k bavorské části Německa, Liberecko zase chtělo k saské části Německa a severní Morava k dnešní Polské části Německa. Francouzské legie byly v té době ještě daleko a 60 000 ruských legionářů ještě mnohem dále. Bylo zapotřebí perfektní koordinace a načasování. Zajistit vojenské útvary hlásící k Československu a poslat je rychle obsadit zbylá území. To se povedlo s minimálními ztrátami na životech. Masaryk mohl 21. 12. 2018 slavnostně přijet do svého Československa, kde ho čekalo mnoho a mnoho další práce.

Dovětek

Kolem Masaryka dnes existují rozporuplné názory a kontraverzní tvrzení. Zdeněk Mahler u řady z nich doložil, že se jedná o pomluvy, některé už skoro sto let staré, například z pera Karla Kramáře :). Každopádně všichni jsme lidé, nikdo z nás není svatý. Co ale stojí za respekt je to, co díky vzájemné spolupráci a odvaze dokážeme. Autorům hanlivých komentářů na internetu proto vzkazuji: "Pod své komentáře v online magazínech připište, co největšího jste v životě dokázal(a)? Co je Váš největší úspěch, na který jste pyšný či pyšná? Nebojte, nepočítám s tím, že jste vyloboval(a) republiku po 392 letech cizí nadvlády a zajistil(a) jí mezinárodní uznání. Ale třeba ostatní mile překvapíte."

Zkusme se ještě na osobu Masaryka podívat očima WebMedea. Vezměme si nejprve hezké slovo jako "tatíček Masaryk" nebo "prezident osvoboditel". WebMedea nám pro ně automaticky dohledala servery, které o Masarykovi píší v kontextu těchto slov. Protože WebMedea zná témata (klíčová slova) spojená s uvedenými servery, podívala se na ta, která servery vzájemně propojují. Společná témata potom WebMedea ovážila zájmem lidí. Výsledkem je následující obrázek.

WebMedea Masaryk pozitivní témata

Obr. 2: Na jaká témata se soustředí servery spojené s klíčovým slovem "prezident osvoboditel"

Co nám obrázek říká? Že o Masarykovi píše řada historických serverů, jejichž společným propojujícím tématem je jednak samotný Masaryk, ale také Hitler, nebo Marie Terezie.

A teď zkusme něco ošklivého, nějaký hoax, třeba "střílení do dělníků". Kdopak asi může něco takového na internetu hledat? Co tím sleduje? A co propojuje servery (i v nich obsažené diskuze), které na dané klíčové slovo vybíhají. WebMedea nám opět odpovídá propojujícími tématy ováženými zájmem.

WebMedea Masaryk negativní témata

Obr. 3: Na jaká témata se soustředí servery spojené s klíčovým slovem "střílení do dělníků"