{"id":4837,"date":"2014-01-14T20:32:06","date_gmt":"2014-01-14T19:32:06","guid":{"rendered":"http:\/\/blog.websupport.sk\/?p=4837"},"modified":"2025-03-11T21:06:22","modified_gmt":"2025-03-11T20:06:22","slug":"postrehy-z-londynskej-konferencie-velocity","status":"publish","type":"post","link":"https:\/\/www.websupport.sk\/blog\/2014\/01\/postrehy-z-londynskej-konferencie-velocity\/","title":{"rendered":"Postrehy z lond\u00fdnskej konferencie Velocity"},"content":{"rendered":"Doba \u010d\u00edtania:<\/b><\/span> 8<\/span> min.<\/span><\/span>

13. – 15. novembra sa \u010das\u0165 admin t\u00edmu presunula do Lond\u00fdna, kde sme sa z\u00fa\u010dastnili konferencie Velocity 2013. T\u00e1to konferencia je zameran\u00e1 na web performance, operations a mobiln\u00e9 technol\u00f3gie, na ktorej predn\u00e1\u0161aj\u00fa \u013eudia, ktor\u00ed \u0161k\u00e1luj\u00fa a prev\u00e1dzkuj\u00fa weby ako Facebook, Google, Tumblr, Etsy a podobne. Svoje si tu n\u00e1jdu ako syst\u00e9mov\u00ed administr\u00e1tori, tak aj developersk\u00e1 komunita, resp. DevOps.<\/p>\n

Na konferencii je mo\u017en\u00e9 obozn\u00e1mi\u0165 sa s nov\u00fdmi n\u00e1strojmi, trendami a technikami, ktor\u00e9 predna\u0161aj\u00faci v\u00e4\u010d\u0161inou s\u00e1m vyvinul, tak\u017ee to m\u00e1te \u010dastokr\u00e1t priamo od zdroja.<\/p>\n

Pre n\u00e1s to bola pr\u00edle\u017eitos\u0165 potvrdi\u0165 si, \u010di sme na spr\u00e1vnej ceste, a porovna\u0165 sa so svetov\u00fdmi trendami. Z\u00e1rove\u0148 po\u010das ve\u010dern\u00fdch meet-upov sa aj bli\u017e\u0161ie zozn\u00e1mi\u0165 priamo s \u013eu\u010fmi u\u017e z konkr\u00e9tnych firiem ako Facebook alebo CFEngine3.<\/p>\n

Ako prv\u00fa predn\u00e1\u0161ku sme nav\u0161t\u00edvili Bring the Noise<\/a> od @jonlives z Etsy, ktor\u00fd hovoril o v\u00fdzvach spracovania d\u00e1t z monitoringu. Postavi\u0165 monitoring v komplexnej\u0161\u00edch infra\u0161trukt\u00farach u\u017e nie je trivi\u00e1lna z\u00e1le\u017eitos\u0165. Rovnako nie je jednoduch\u00e9 interpretova\u0165 mno\u017estvo d\u00e1t, ktor\u00e9 na \u010dloveka z monitoringu ch\u0155lia.<\/p>\n

Trend sa teda pos\u00fava k automatizovanej anal\u00fdze d\u00e1t z monitoringu, tak aby na v\u00fdstupe dali \u010dloveku sk\u00f4r plnohodnotn\u00fa inform\u00e1ciu ne\u017e d\u00e1ta, ktor\u00e9 mus\u00ed e\u0161te dodato\u010dne analyzova\u0165. Automatizovan\u00e1 anal\u00fdza umo\u017e\u0148uje upozorni\u0165 aj na anom\u00e1lie neust\u00e1lym porovn\u00e1van\u00edm nov\u00fdch d\u00e1t s t\u00fdmi, ktor\u00e9 boli nameran\u00e9 sk\u00f4r. Syst\u00e9m sa tak m\u00f4\u017ee s\u00e1m nau\u010di\u0165, \u010do je norm\u00e1lne alebo norm\u00e1lne nie je, a upozorni\u0165 na to.<\/p>\n

V Etsy na to vyvinuli dva projekty – Skyline<\/a> – ur\u010den\u00fd na zis\u0165ovanie anom\u00e1li\u00ed v \u010dasov\u00fdch priebehoch a Oculus<\/a> – na vyh\u013ead\u00e1vanie korel\u00e1ci\u00ed medzi jednotliv\u00fdmi \u010dasov\u00fdmi priebehmi. Vyh\u013ead\u00e1vanie korel\u00e1ci\u00ed je nesmierne d\u00f4le\u017eit\u00e9 pri sk\u00faman\u00ed probl\u00e9mov a zis\u0165ovan\u00ed toho, ktor\u00fd syst\u00e9m ovplyvnil in\u00fd syst\u00e9m a ako.<\/p>\n

Detekcia anom\u00e1li\u00ed v nameran\u00fdch d\u00e1tach je jedna z vlastnost\u00ed, ktor\u00fa m\u00e1 aj CFEngine3 kv\u00f4li jeho schopnosti Model based monitoringu<\/a>.<\/p>\n

\u010eal\u0161ia zo zauj\u00edmav\u00fdch predn\u00e1\u0161ok bola When dynamic becomes static<\/a> od @wimgtr. Klasick\u00fd sp\u00f4sob generovania str\u00e1nky je neust\u00e1le renderovanie HTML pomocou PHP, ktor\u00e9 je nutn\u00e9 parsova\u0165 a interpretovan\u00e9 interpretom PHP pre ka\u017ed\u00fa jednu po\u017eiadavku. To b\u00fdva \u010dastokr\u00e1t zbyto\u010dn\u00e9, preto\u017ee na str\u00e1nkach sa r\u00f4zne jej \u010dasti menia r\u00f4znou r\u00fdchlos\u0165ou, a teda nie hne\u010f.<\/p>\n

Autor preto navrhol jazyk, resp. modul do webserveru nginx s n\u00e1zvom SCL (vychadzaj\u00faci z ESI<\/a>), ktor\u00fdm uklad\u00e1 jednotliv\u00e9 vyrenderovan\u00e9 a personifikovan\u00e9 (v pr\u00edpade session) \u010dasti str\u00e1nok do memcache. Pou\u017e\u00edvate\u013e tak dost\u00e1va neust\u00e1le vyrenderovan\u00fa str\u00e1nku z memcache, tak\u017ee v\u0161etko je ve\u013emi r\u00fdchle. Na z\u00e1klade testov bol rozdiel v prospech SCL a\u017e o tri rady vy\u0161\u0161\u00ed ne\u017e v pr\u00edpade klasick\u00e9ho generovania dynamick\u00e9ho obsahu. Tak\u00fdto rozdiel v spotrebe zdrojov predstavuje aj vy\u0161\u0161iu odolnos\u0165 webu vo\u010di r\u00f4znym vplyvom zvonka (napr\u00edklad \u00fatoky) – v\u010faka n\u00edzkej spotrebe zdrojov a kon\u0161tantn\u00fdch odoziev RAM.<\/p>\n

Je v\u0161ak jasn\u00e9, \u017ee tak\u00e1to webov\u00e1 aplik\u00e1cia mus\u00ed by\u0165 na to nap\u00edsan\u00e1 od \u00fapln\u00e9ho za\u010diatku. Zdrojov\u00e9 k\u00f3dy pre tento nginx modul e\u0161te nie s\u00fa v\u0161ak dostupn\u00e9, autor ich v\u0161ak s\u013e\u00fabil v priebehu prv\u00e9ho polroka 2014.<\/p>\n

High Performance Browser Networking<\/a> bol n\u00e1zov \u010fal\u0161ej predn\u00e1\u0161ky od @igrigorik, autora rovnomennej knihy<\/a>. Na t\u00fato t\u00e9mu mal viacero predn\u00e1\u0161ok a patrili medzi najob\u013e\u00fabenej\u0161ie.<\/p>\n

Zaoberal sa preva\u017ene vplyvom latencie poslednej m\u00edle na r\u00fdchlos\u0165 prenosu d\u00e1t medzi webserverom a browserom, ktor\u00e1 m\u00e1 na to v\u00fdznamn\u00fd vplyv.<\/p>\n

HTTP\/1.1 nie je \u00faplne najide\u00e1lnej\u0161\u00ed aplika\u010dn\u00fd protokol pre TCP\/IP, preto\u017ee pozost\u00e1va z ve\u013ea kr\u00e1tkych spojen\u00ed na webserver. Tak\u00e9to kr\u00e1tke spojenia neumo\u017e\u0148uj\u00fa vyu\u017ei\u0165 cel\u00fa prenosov\u00fa r\u00fdchlos\u0165 konektivity kv\u00f4li slow-start<\/a> algoritmu v TCP\/IP. Zjednodu\u0161ene povedan\u00e9, slow-start algoritmus m\u00e1 na starosti, aby nezahltil cel\u00fa kapacitu siete, tak\u017ee za\u010d\u00edna pren\u00e1\u0161a\u0165 najprv mal\u00e9 mno\u017estvo d\u00e1t (okno) a ka\u017ed\u00fdm \u010fal\u0161\u00edm potvrden\u00edm zvy\u0161uje mno\u017estvo d\u00e1t, ktor\u00e9 prenesie. Pri mal\u00fdch s\u00faboroch sa v\u0161ak toto okno nestihne dostato\u010dne zv\u00e4\u010d\u0161i\u0165, tak\u017ee sa viac prejavuje latencia a trv\u00e1 dlh\u0161ie, k\u00fdm sa d\u00e1ta stiahnu – napriek tomu, \u017ee m\u00e1te r\u00fdchle pripojenie k internetu.<\/p>\n

Rie\u0161en\u00ed je nieko\u013eko. Prv\u00fdm<\/a> je zv\u00e4\u010d\u0161i\u0165 ve\u013ekos\u0165 prvotn\u00e9ho okna z hodnoty 3 segmentov<\/a> na 10 segmentov, preto\u017ee p\u00f4vodn\u00e1 hodnota bola sk\u00f4r vhodn\u00e1 v 80. rokoch. Vo WebSupporte u\u017e nieko\u013eko rokov pou\u017e\u00edvame ve\u013ekos\u0165 TCP okna 10. V posledn\u00fdch kerneloch, minim\u00e1lne verzie 3.8, je t\u00e1to ve\u013ekos\u0165 u\u017e defaultn\u00e1.<\/p>\n

Druh\u00fdm je nahradi\u0165 protokol HTTP\/1.1 nov\u00fdm protokolom HTTP\/2.0<\/a>, ktor\u00fd m\u00e1 zahrnut\u00e9 ve\u013ek\u00e9 mno\u017estvo zauj\u00edmav\u00fdch vlastnost\u00ed, ktor\u00e9 lep\u0161ie vyu\u017e\u00edvaj\u00fa zdroje. Pod\u013ea autora m\u00e1 by\u0165 rok 2014 pr\u00e1ve rokom HTTP\/2.0, preto\u017ee by mala by\u0165 sfinalizovan\u00e1 podpora vo v\u0161etk\u00fdch v\u00fdznamn\u00fdch webserveroch a prehliada\u010doch.<\/p>\n

Migrovali ste niekedy hosting? Bolo to n\u00e1ro\u010dn\u00e9? A \u010do tak zmigrova\u0165 10 000 hostingov alebo rovno 50 mili\u00f3nov blogov? O ve\u013ek\u00fdch migr\u00e1ci\u00e1ch bola \u010fal\u0161ia predn\u00e1\u0161ka o (takmer) fikt\u00edvnom startupe Hipster. Ako prudko r\u00e1stol, s ak\u00fdmi probl\u00e9mami sa stret\u00e1vali a ako migrovali na nov\u00fa infra\u0161trukt\u00faru.<\/p>\n