{"id":84876,"date":"2020-06-11T13:43:18","date_gmt":"2020-06-11T11:43:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno"},"modified":"2020-06-11T13:43:18","modified_gmt":"2020-06-11T11:43:18","slug":"uskoryaem-internet-zaprosy-i-spim-spokojno","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno","title":{"rendered":"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/07e2e32d406b8b5d6d6cb3f627a31c3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Netflix \u2013 az internetes t\u00e9v\u00e9szolg\u00e1ltat\u00e1s piacvezet\u0151je \u2013 egy olyan v\u00e1llalat, amely l\u00e9trehozta \u00e9s akt\u00edvan fejleszti ezt a szegmenst. A Netflix nemcsak egy sz\u00e9les film- \u00e9s sorozatkatal\u00f3gusr\u00f3l ismert, amelyet szinte b\u00e1rhol a vil\u00e1gon \u00e9s b\u00e1rmilyen kijelz\u0151vel rendelkez\u0151 eszk\u00f6z\u00f6n el\u00e9rhet\u00fcnk, hanem megb\u00edzhat\u00f3 infrastrukt\u00far\u00e1j\u00e1r\u00f3l \u00e9s egyed\u00fcl\u00e1ll\u00f3 m\u00e9rn\u00f6ki kult\u00far\u00e1j\u00e1r\u00f3l is. <\/p>\n<p>A Netflix megk\u00f6zel\u00edt\u00e9s\u00e9nek szeml\u00e9letes p\u00e9ld\u00e1j\u00e1t mutatta be a DevOops 2019 konferenci\u00e1n <noindex><a rel=\"nofollow\" href=\"https:\/\/sfedov.com\">Szergej Fedorov<\/a><\/noindex> \u2013 a Netflix fejleszt\u00e9si igazgat\u00f3ja. A Lobacsevszkij NNI VMK kar\u00e1nak v\u00e9gzettje, Szergej az els\u0151 m\u00e9rn\u00f6k\u00f6k egyike volt az Open Connect \u2013 a Netflix CDN csapat\u00e1ban. \u0150 \u00e9p\u00edtette ki a videoadatok monitoroz\u00e1si \u00e9s elemz\u00e9si rendszereit, elind\u00edtotta a n\u00e9pszer\u0171 internet sebess\u00e9g\u00e9rt\u00e9kel\u0151 szolg\u00e1ltat\u00e1st, a FAST.com-ot, \u00e9s az utols\u00f3 n\u00e9h\u00e1ny \u00e9vben az internetes k\u00e9r\u00e9sek optimaliz\u00e1l\u00e1s\u00e1n dolgozik, hogy a Netflix alkalmaz\u00e1s a lehet\u0151 leggyorsabban m\u0171k\u00f6dj\u00f6n a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra.<\/p>\n<p>A besz\u00e1mol\u00f3 a konferencia r\u00e9sztvev\u0151it\u0151l a legjobb visszajelz\u00e9seket kapta, \u00e9s elk\u00e9sz\u00edtett\u00fck a sz\u00f6veges v\u00e1ltozat\u00e1t.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"n7Te9WIz1ho\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/n7Te9WIz1ho\/hqdefault.jpg\" alt=\"Vide\u00f3 lej\u00e1tsz\u00e1sa\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2>A besz\u00e1mol\u00f3ban Szergej r\u00e9szletesen besz\u00e9lt<\/h2>\n<p><\/p>\n<ul>\n<li>arr\u00f3l, hogy mik befoly\u00e1solj\u00e1k az internetes k\u00e9r\u00e9sek k\u00e9sleltet\u00e9s\u00e9t a kliens \u00e9s a szerver k\u00f6z\u00f6tt;<\/li>\n<li>hogyan lehet cs\u00f6kkenteni ezt a k\u00e9sleltet\u00e9st;<\/li>\n<li>hogyan lehet tervezni, fenntartani \u00e9s monitorozni a hibat\u0171r\u0151 rendszereket;<\/li>\n<li>hogyan lehet el\u00e9rni az eredm\u00e9nyeket r\u00f6vid id\u0151 alatt, minim\u00e1lis kock\u00e1zattal a v\u00e1llalkoz\u00e1s sz\u00e1m\u00e1ra;<\/li>\n<li>hogyan lehet elemezni az eredm\u00e9nyeket \u00e9s tanulni a hib\u00e1kb\u00f3l.<\/li>\n<\/ul>\n<p>\nEzekre a k\u00e9rd\u00e9sekre nemcsak azoknak van sz\u00fcks\u00e9ge, akik nagyv\u00e1llalatokn\u00e1l dolgoznak. <\/p>\n<p>A bemutatott elvek \u00e9s technik\u00e1k ismerete \u00e9s gyakorl\u00e1sa mindenki sz\u00e1m\u00e1ra fontos, aki internetes term\u00e9keket fejleszt \u00e9s tart karban.<\/p>\n<p><b>K\u00f6vetkezik a sz\u00f3nok besz\u00e1mol\u00f3ja.<\/b><\/p>\n<h2>Az internet sebess\u00e9g\u00e9nek fontoss\u00e1ga<\/h2>\n<p>\nAz internetes k\u00e9r\u00e9sek sebess\u00e9ge k\u00f6zvetlen \u00f6sszef\u00fcgg\u00e9sben \u00e1ll az \u00fczlettel. Vegy\u00fck szem\u00fcgyre a v\u00e1s\u00e1rl\u00e1si szf\u00e9r\u00e1t: az Amazon 2009-ben <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gigaspaces.com\/blog\/amazon-found-every-100ms-of-latency-cost-them-1-in-sales\/\">meg\u00e1llap\u00edtotta,<\/a><\/noindex>, hogy a 100 ms k\u00e9sleltet\u00e9s 1% -os \u00e9rt\u00e9kes\u00edt\u00e9si vesztes\u00e9get okoz.<\/p>\n<p>M\u0171veleti eszk\u00f6z\u00f6k \u00e9s vel\u00fck egy\u00fctt mobil oldalak \u00e9s alkalmaz\u00e1sok sz\u00e1ma folyamatosan n\u00f6vekszik. Ha az \u00d6n oldal\u00e1nak bet\u00f6lt\u00e9si ideje meghaladja a 3 m\u00e1sodpercet, k\u00f6r\u00fclbel\u00fcl a felhaszn\u00e1l\u00f3k fel\u00e9t elvesz\u00edti. A <noindex><a rel=\"nofollow\" href=\"https:\/\/webmasters.googleblog.com\/2018\/01\/using-page-speed-in-mobile-search.html\">2018. j\u00falius 1-j\u00e9t\u0151l<\/a><\/noindex> a Google figyelembe veszi a weboldala bet\u00f6lt\u00e9si sebess\u00e9g\u00e9t a keres\u00e9si eredm\u00e9nyekben: min\u00e9l gyorsabb az oldal, ann\u00e1l el\u0151kel\u0151bb helyez\u00e9st kap a Google-ben.<\/p>\n<p>A kapcsolat sebess\u00e9ge szint\u00e9n fontos a p\u00e9nz\u00fcgyi int\u00e9zm\u00e9nyekn\u00e9l, ahol a k\u00e9sleltet\u00e9s kritikus. 2015-ben a Hibernia Networks <noindex><a rel=\"nofollow\" href=\"https:\/\/www.submarinenetworks.com\/en\/systems\/trans-atlantic\/project-express\/hibernia-express-connects-new-york-to-london-in-under-58-95ms\">befejezte<\/a><\/noindex> A k\u00e1belt\u00e1vvezet\u00e9k, amely New York \u00e9s London k\u00f6z\u00f6tt 400 milli\u00f3 doll\u00e1r\u00e9rt k\u00e9sz\u00fclt, hogy 6 ms-al cs\u00f6kkentse a k\u00e9sleltet\u00e9st a v\u00e1rosok k\u00f6z\u00f6tt. K\u00e9pzelje el, 66 milli\u00f3 doll\u00e1r 1 ms k\u00e9sleltet\u00e9s cs\u00f6kkent\u00e9s\u00e9\u00e9rt!<\/p>\n<p>A k\u00f6vetkez\u0151 szerint <noindex><a rel=\"nofollow\" href=\"https:\/\/hpbn.co\/primer-on-web-performance\/\">TechRepublic<\/a><\/noindex>, a 5 Mbit\/s sebess\u00e9gn\u00e9l a kapcsolat sebess\u00e9ge m\u00e1r nem hat k\u00f6zvetlen\u00fcl a weboldalak bet\u00f6lt\u00e9si sebess\u00e9g\u00e9re. Azonban van egy line\u00e1ris \u00f6sszef\u00fcgg\u00e9s a k\u00e9sleltet\u00e9s \u00e9s az oldalbet\u00f6lt\u00e9si sebess\u00e9g k\u00f6z\u00f6tt:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/340ca1f2c5bdd6ca95a5caf02f67e3fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Netflix azonban nem egy tipikus term\u00e9k. A k\u00e9sleltet\u00e9s \u00e9s a sebess\u00e9g felhaszn\u00e1l\u00f3ra gyakorolt hat\u00e1sa akt\u00edv elemz\u00e9s \u00e9s fejleszt\u00e9si ter\u00fclet. Vannak alkalmaz\u00e1sbet\u00f6lt\u00e9sek \u00e9s tartalomv\u00e1laszt\u00e1sok, amelyek a k\u00e9sleltet\u00e9st\u0151l f\u00fcggenek, de a statikus elemek bet\u00f6lt\u00e9se \u00e9s a streaming is f\u00fcgg a kapcsolat sebess\u00e9g\u00e9t\u0151l. A felhaszn\u00e1l\u00f3i \u00e9lm\u00e9ny min\u0151s\u00e9g\u00e9t befoly\u00e1sol\u00f3 kulcsfontoss\u00e1g\u00fa t\u00e9nyez\u0151k elemz\u00e9se \u00e9s optimaliz\u00e1l\u00e1sa a Netflix t\u00f6bb csapat\u00e1nak akt\u00edv fejleszt\u00e9si ter\u00fclete. Az egyik feladat a k\u00e9sleltet\u00e9s cs\u00f6kkent\u00e9se a Netflix eszk\u00f6z\u00f6k \u00e9s a felh\u0151infrastrukt\u00fara k\u00f6z\u00f6tt.<\/p>\n<p>Jelent\u00e9s\u00fcnk f\u00f3kusz\u00e1ban a k\u00e9sleltet\u00e9s cs\u00f6kkent\u00e9se \u00e1ll, a Netflix infrastrukt\u00far\u00e1j\u00e1nak p\u00e9ld\u00e1j\u00e1n kereszt\u00fcl. Megvizsg\u00e1ljuk, hogy gyakorlatilag hogyan k\u00f6zel\u00edthet\u00fcnk a bonyolult elosztott rendszerek tervez\u00e9s\u00e9hez, fejleszt\u00e9s\u00e9hez \u00e9s \u00fczemeltet\u00e9s\u00e9hez, \u00e9s hogyan t\u00f6lthet\u00fcnk id\u0151t az innov\u00e1ci\u00f3n \u00e9s az eredm\u00e9nyeken, nem pedig oper\u00e1ci\u00f3s probl\u00e9m\u00e1k \u00e9s hib\u00e1k diagnosztiz\u00e1l\u00e1s\u00e1n.<\/p>\n<h2>A Netflix belsej\u00e9ben<\/h2>\n<p>\nT\u00f6bb ezer k\u00fcl\u00f6nb\u00f6z\u0151 eszk\u00f6z t\u00e1mogatja a Netflix alkalmaz\u00e1sokat. Ezek fejleszt\u00e9s\u00e9t n\u00e9gy k\u00fcl\u00f6nb\u00f6z\u0151 csapat v\u00e9gzi, amelyek k\u00fcl\u00f6nf\u00e9le \u00fcgyf\u00e9l verzi\u00f3kat k\u00e9sz\u00edtenek Android, iOS, TV \u00e9s webb\u00f6ng\u00e9sz\u0151k sz\u00e1m\u00e1ra. Nagy m\u00e9rt\u00e9kben fektet\u00fcnk abba, hogy jav\u00edtsuk \u00e9s szem\u00e9lyre szabjuk a felhaszn\u00e1l\u00f3i fel\u00fcletet. Ehhez p\u00e1rhuzamosan t\u00f6bb sz\u00e1z A\/B tesztet ind\u00edtunk.<\/p>\n<p>A szem\u00e9lyre szab\u00e1s t\u00f6bb ezer mikroszolg\u00e1ltat\u00e1s r\u00e9v\u00e9n val\u00f3sul meg az AWS felh\u0151ben, amelyek szem\u00e9lyre szabott adatokat ny\u00fajtanak a felhaszn\u00e1l\u00f3knak, k\u00e9r\u00e9smenedzsmentet, telemetri\u00e1t, Big Data-t \u00e9s k\u00f3dol\u00e1st. A forgalom vizualiz\u00e1ci\u00f3ja \u00edgy n\u00e9z ki:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/n7Te9WIz1ho?t=364\">Vide\u00f3ra mutat\u00f3 link a bemutat\u00f3val (6:04-6:23)<\/a><\/noindex><\/p>\n<p>A bal oldalon tal\u00e1lhat\u00f3 bel\u00e9p\u00e9si pont, majd a forgalom eloszt\u00f3dik t\u00f6bb sz\u00e1z mikroszolg\u00e1ltat\u00e1s k\u00f6z\u00f6tt, amelyeket k\u00fcl\u00f6nb\u00f6z\u0151 backend csapatok t\u00e1mogatnak.<\/p>\n<p>Egy m\u00e1sik fontos \u00f6sszetev\u0151je infrastrukt\u00far\u00e1nknak az Open Connect CDN, amely statikus tartalmat \u2013 vide\u00f3kat, k\u00e9peket, \u00fcgyf\u00e9lk\u00f3dot stb. \u2013 juttat el a v\u00e9gfelhaszn\u00e1l\u00f3khoz. A CDN egyedi szervereken (OCA \u2013 Open Connect Appliance) helyezkedik el. Ezekben SSD \u00e9s HDD t\u00f6mb\u00f6k tal\u00e1lhat\u00f3k, optimaliz\u00e1lt FreeBSD, NGINX \u00e9s egy sor szolg\u00e1ltat\u00e1s m\u0171k\u00f6dtet\u00e9s\u00e9vel. \u00dagy tervezz\u00fck \u00e9s optimaliz\u00e1ljuk a hardver- \u00e9s szoftverkomponenseket, hogy a CDN szerver a lehet\u0151 legt\u00f6bb adatot tudja eljuttatni a felhaszn\u00e1l\u00f3khoz. <\/p>\n<p>Ezeknek a szervereknek a 'fala' az internetforgalom-csere pontj\u00e1n (Internet eXchange \u2013 IX) \u00edgy n\u00e9z ki:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/8155601c344acb1eb05b925193af8f9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz Internet Exchange lehet\u0151s\u00e9get biztos\u00edt az internetszolg\u00e1ltat\u00f3knak \u00e9s a tartalomszolg\u00e1ltat\u00f3knak, hogy \"csatlakozzanak\" egym\u00e1shoz a k\u00f6zvetlenebb adatcser\u00e9re az interneten. Vil\u00e1gszerte kb. 70-80 Internet Exchange pont tal\u00e1lhat\u00f3, ahol szervereink telep\u00edtve vannak, \u00e9s mi saj\u00e1t magunk v\u00e9gezz\u00fck az install\u00e1l\u00e1sukat \u00e9s karbantart\u00e1sukat:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/77a2465314e47c0b2c90dbf7a2fb5e6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEzen fel\u00fcl k\u00f6zvetlen\u00fcl internetszolg\u00e1ltat\u00f3knak is biztos\u00edtunk szervereket, amelyeket \u0151k a saj\u00e1t h\u00e1l\u00f3zatukba telep\u00edtenek, jav\u00edtva a Netflix forgalom lokaliz\u00e1ci\u00f3j\u00e1t \u00e9s a streaming min\u0151s\u00e9g\u00e9t a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/63e077d2649bfafea5c7af43a0faaf85.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz AWS szolg\u00e1ltat\u00e1sok k\u00e9szlete felel\u0151s a vide\u00f3 k\u00e9r\u00e9sek ir\u00e1ny\u00edt\u00e1s\u00e1\u00e9rt a CDN szerverekhez, valamint a szerverek konfigur\u00e1l\u00e1s\u00e1\u00e9rt \u2013 tartalom, programk\u00f3d, be\u00e1ll\u00edt\u00e1sok friss\u00edt\u00e9se stb. Ehhez l\u00e9trehoztunk egy backbone h\u00e1l\u00f3zatot is, amely \u00f6sszek\u00f6ti a szervereket az Internet Exchange pontokon az AWS-sel. A backbone h\u00e1l\u00f3zat egy glob\u00e1lis optikai sz\u00e1las k\u00e1belekb\u0151l \u00e9s routerekb\u0151l \u00e1ll\u00f3 h\u00e1l\u00f3zat, amelyet ig\u00e9nyeink szerint tervezhet\u00fcnk \u00e9s konfigur\u00e1lhatunk.<\/p>\n<p>A <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sandvine.com\/hubfs\/Sandvine_Redesign_2019\/Downloads\/Internet%20Phenomena\/Internet%20Phenomena%20Report%20Q32019%2020190910.pdf\">Sandvine \u00e9rt\u00e9kel\u00e9sek<\/a><\/noindex>, a CDN infrastrukt\u00far\u00e1nk cs\u00facsid\u0151szakban a glob\u00e1lis internetforgalom k\u00f6r\u00fclbel\u00fcl \u215b-\u00e1t, \u00e9s \u00c9szak-Amerik\u00e1ban a forgalom \u2153-\u00e1t juttatja el, ahol a Netflix m\u00e1r a legr\u00e9gebb \u00f3ta el\u00e9rhet\u0151. Megd\u00f6bbent\u0151 sz\u00e1mok, de sz\u00e1momra az egyik legmeglep\u0151bb eredm\u00e9ny az, hogy az eg\u00e9sz CDN rendszer kevesebb mint 150 f\u0151s csapat \u00e1ltal ker\u00fcl kifejleszt\u00e9sre \u00e9s fenntart\u00e1sra.<\/p>\n<p>Kezdetben a CDN infrastrukt\u00far\u00e1t vide\u00f3adatok sz\u00e1ll\u00edt\u00e1s\u00e1ra tervezt\u00e9k. Azonban id\u0151vel r\u00e1j\u00f6tt\u00fcnk, hogy a dinamikus k\u00e9r\u00e9sek optimaliz\u00e1l\u00e1s\u00e1ra is felhaszn\u00e1lhatjuk az AWS felh\u0151ben.<\/p>\n<h2>Az internet gyors\u00edt\u00e1sa<\/h2>\n<p>\nA Netflix 3 AWS r\u00e9gi\u00f3val rendelkezik, \u00e9s a felh\u0151hez val\u00f3 kapcsol\u00f3d\u00e1s k\u00e9sleltet\u00e9se att\u00f3l f\u00fcgg, milyen messze van az \u00fcgyf\u00e9l a legk\u00f6zelebbi r\u00e9gi\u00f3t\u00f3l. Ezen k\u00edv\u00fcl sz\u00e1mos CDN szerver\u00fcnk van, amelyek statikus tartalom kiszolg\u00e1l\u00e1s\u00e1ra szolg\u00e1lnak. Van valamilyen m\u00f3d, hogy ezt az infrastrukt\u00far\u00e1t felhaszn\u00e1lva felgyors\u00edtsuk a dinamikus lek\u00e9r\u00e9seket? Sajnos ezeket a lek\u00e9r\u00e9seket nem lehet gyors\u00edt\u00f3t\u00e1razni, mivel az API-k szem\u00e9lyre szabottak, \u00e9s minden eredm\u00e9ny egyedi.<\/p>\n<p>Csin\u00e1ljunk egy proxyt a CDN szerveren, \u00e9s kezdj\u00fck el rajta \u00e1tvezetni a forgalmat. Ez gyorsabb lesz?<\/p>\n<h2>A h\u00e1l\u00f3zati alapok<\/h2>\n<p>\nEml\u00e9kezz\u00fcnk, hogyan m\u0171k\u00f6dnek a h\u00e1l\u00f3zati protokollok. Ma a forgalom nagy r\u00e9sze az interneten HTTPs-t haszn\u00e1l, amely a TCP \u00e9s TLS als\u00f3bb szint\u0171 protokolljait\u00f3l f\u00fcgg. Ahhoz, hogy az \u00fcgyf\u00e9l csatlakozzon a szerverhez, k\u00e9zfog\u00e1sra van sz\u00fcks\u00e9g, \u00e9s a biztons\u00e1gos kapcsolat l\u00e9trehoz\u00e1s\u00e1hoz az \u00fcgyf\u00e9lnek h\u00e1rom \u00fczenetet kell cser\u00e9lnie a szerverrel, valamint legal\u00e1bb m\u00e9g egyszer, hogy adatokat tov\u00e1bb\u00edtson. Ha az egy k\u00f6rben t\u00f6rt\u00e9n\u0151 k\u00e9sleltet\u00e9s (RTT) 100 ms, akkor 400 ms-ra van sz\u00fcks\u00e9g\u00fcnk, hogy megkapjuk az els\u0151 adatbitet:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/ab12024f5a9940ca470f27821ca3c631.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHa a tan\u00fas\u00edtv\u00e1nyokat a CDN szerveren helyezz\u00fck el, akkor a 'k\u00e9zfog\u00e1s' ideje a kliens \u00e9s a szerver k\u00f6z\u00f6tt jelent\u0151sen cs\u00f6kkenthet\u0151, ha a CDN k\u00f6zelebb van. Tegy\u00fck fel, hogy a k\u00e9sleltet\u00e9s a CDN szerverhez 30 ms. Ekkor az els\u0151 bit megszerz\u00e9s\u00e9hez m\u00e1r csak 220 ms sz\u00fcks\u00e9ges:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/d63134bb51592aaa6a5e0c86f1a070e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe a pozit\u00edvumok itt nem \u00e9rnek v\u00e9get. Miut\u00e1n a kapcsolat m\u00e1r l\u00e9trej\u00f6tt, a TCP n\u00f6veli a congestion window-t (azt az inform\u00e1ci\u00f3mennyis\u00e9get, amelyet p\u00e1rhuzamosan \u00e1t tud adni ezen a kapcsolaton). Ha egy adatcsomag elveszik, a klasszikus TCP-implement\u00e1ci\u00f3k (p\u00e9ld\u00e1ul TCP New Reno) a nyitott 'ablak' m\u00e9ret\u00e9t a fel\u00e9re cs\u00f6kkentik. A congestion window n\u00f6veked\u00e9se \u00e9s a vesztes\u00e9gb\u0151l val\u00f3 helyre\u00e1ll\u00e1s sebess\u00e9ge ism\u00e9t a szerverhez val\u00f3 k\u00e9sleltet\u00e9st\u0151l (RTT) f\u00fcgg. Ha a kapcsolat csak a CDN szerverhez vezet, akkor a helyre\u00e1ll\u00edt\u00e1s gyorsabb lesz. A csomagveszt\u00e9s pedig standard jelens\u00e9g, k\u00fcl\u00f6n\u00f6sen vezet\u00e9k n\u00e9lk\u00fcli h\u00e1l\u00f3zatokban.<\/p>\n<p>Az internet s\u00e1vsz\u00e9less\u00e9ge cs\u00f6kkenhet, k\u00fcl\u00f6n\u00f6sen cs\u00facsid\u0151ben a felhaszn\u00e1l\u00f3i forgalom miatt, ami \"dug\u00f3kat\" okozhat. Az interneten nincs m\u00f3dszer a k\u00e9r\u00e9sek priorit\u00e1s\u00e1nak megad\u00e1s\u00e1ra m\u00e1sokkal szemben. P\u00e9ld\u00e1ul priorit\u00e1st adni a kis m\u00e9ret\u0171 \u00e9s k\u00e9sleltet\u00e9sre \u00e9rz\u00e9keny k\u00e9r\u00e9seknek a \"neh\u00e9z\" adatfolyamokkal szemben, amelyek leterhelik a h\u00e1l\u00f3zatot. Azonban a saj\u00e1t backbone h\u00e1l\u00f3zatunk lehet\u0151v\u00e9 teszi ezt a k\u00e9r\u00e9s \u00fatj\u00e1nak egy r\u00e9sz\u00e9n \u2013 a CDN \u00e9s a felh\u0151 k\u00f6z\u00f6tt, \u00e9s ezt teljes m\u00e9rt\u00e9kben konfigur\u00e1lhatjuk. Megtehetj\u00fck, hogy a kis \u00e9s k\u00e9sleltet\u00e9sre \u00e9rz\u00e9keny csomagokat prioritizedjuk, m\u00edg a nagy adatfolyamok kicsit k\u00e9s\u0151bb indulnak el. Min\u00e9l k\u00f6zelebb van a CDN a klienshez, ann\u00e1l hat\u00e9konyabb lesz.<\/p>\n<p>A k\u00e9sleltet\u00e9sre hat\u00e1ssal vannak az alkalmaz\u00e1si szint\u0171 protokollok (OSI 7. szint). Az \u00faj protokollok, mint p\u00e9ld\u00e1ul a HTTP\/2, lehet\u0151v\u00e9 teszik a p\u00e1rhuzamos k\u00e9r\u00e9sek teljes\u00edtm\u00e9ny\u00e9nek optimaliz\u00e1l\u00e1s\u00e1t. Azonban van a Netflixnek \u00fcgyfelei, akik r\u00e9gi eszk\u00f6z\u00f6ket haszn\u00e1lnak, amelyek nem t\u00e1mogatj\u00e1k az \u00faj protokollokat. Nem minden \u00fcgyfelet lehet friss\u00edteni, vagy optim\u00e1lisan konfigur\u00e1lni. A CDN proxy \u00e9s a felh\u0151 k\u00f6z\u00f6tti teljes kontrolljaink \u00e9s lehet\u0151s\u00e9g\u00fcnk van \u00faj, optim\u00e1lis protokollok \u00e9s be\u00e1ll\u00edt\u00e1sok haszn\u00e1lat\u00e1ra. A r\u00e9gi protokollokkal rendelkez\u0151 r\u00e9sz ineffekt\u00edv lesz, \u00e9s csak a kliens \u00e9s a CDN szerver k\u00f6z\u00f6tt m\u0171k\u00f6dik. R\u00e1ad\u00e1sul m\u00e1r l\u00e9tez\u0151 kapcsolat eset\u00e9n multiplexelhetj\u00fck a k\u00e9r\u00e9seket a CDN \u00e9s a felh\u0151 k\u00f6z\u00f6tt, jav\u00edtva a TCP szint\u0171 kapcsolat kihaszn\u00e1l\u00e1s\u00e1t:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/a05b49680734670dcfce9111f3ba1919.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>M\u00e9rj\u00fck<\/h2>\n<p>\nB\u00e1r a tudom\u00e1ny \u00edg\u00e9r fejleszt\u00e9seket, nem ugrunk r\u00f6gt\u00f6n a rendszer \u00e9les \u00fczembe helyez\u00e9s\u00e9re. El\u0151sz\u00f6r bizony\u00edtanunk kell, hogy az elk\u00e9pzel\u00e9s a gyakorlatban is m\u0171k\u00f6dik. Ehhez n\u00e9h\u00e1ny k\u00e9rd\u00e9sre kell v\u00e1laszt adni:<\/p>\n<ul>\n<li><b>Sebess\u00e9g<\/b>: gyorsabb lesz a proxy?<\/li>\n<li><b>Megb\u00edzhat\u00f3s\u00e1g<\/b>: gyakrabban fog-e megsz\u0171nni?<\/li>\n<li><b>Bonyolults\u00e1g<\/b>: hogyan integr\u00e1lhat\u00f3 a alkalmaz\u00e1sokkal?<\/li>\n<li><b>\u00c1r<\/b>: mennyibe ker\u00fcl a tov\u00e1bbi infrastrukt\u00fara telep\u00edt\u00e9se?<\/li>\n<\/ul>\n<p>\nR\u00e9szletesen megvizsg\u00e1ljuk az els\u0151 ponthoz alkalmazott megk\u00f6zel\u00edt\u00e9s\u00fcnket. A t\u00f6bbit hasonl\u00f3 m\u00f3don vizsg\u00e1ljuk meg.<\/p>\n<p>A k\u00e9r\u00e9sek sebess\u00e9g\u00e9nek elemz\u00e9s\u00e9hez az \u00f6sszes felhaszn\u00e1l\u00f3ra vonatkoz\u00f3 adatokat szeretn\u00e9nk kapni, an\u00e9lk\u00fcl, hogy sok id\u0151t pazaroln\u00e1nk a fejleszt\u00e9sre vagy megs\u00e9rten\u00e9nk a production rendszert. Erre t\u00f6bb megk\u00f6zel\u00edt\u00e9s l\u00e9tezik:<\/p>\n<ol>\n<li>RUM, vagy passz\u00edv k\u00e9r\u00e9sm\u00e9r\u00e9s. M\u00e9rj\u00fck a felhaszn\u00e1l\u00f3k aktu\u00e1lis k\u00e9r\u00e9seinek v\u00e9grehajt\u00e1si idej\u00e9t, \u00e9s biztos\u00edtjuk a felhaszn\u00e1l\u00f3k teljes lefedetts\u00e9g\u00e9t. H\u00e1tr\u00e1ny \u2014 nem t\u00fal stabil jel a sok t\u00e9nyez\u0151 miatt, p\u00e9ld\u00e1ul a k\u00fcl\u00f6nb\u00f6z\u0151 k\u00e9r\u00e9sm\u00e9retek, a szerver \u00e9s kliens feldolgoz\u00e1si ideje miatt. Ezen k\u00edv\u00fcl nem lehet \u00faj konfigur\u00e1ci\u00f3t tesztelni a produkci\u00f3s k\u00f6rnyezet hat\u00e1sa n\u00e9lk\u00fcl.<\/li>\n<li>Laborat\u00f3riumi tesztek. Speci\u00e1lis szerverek \u00e9s infrastrukt\u00fara, amelyek \u00fcgyfeleket szimul\u00e1lnak. Ezek seg\u00edts\u00e9g\u00e9vel v\u00e9gezz\u00fck a sz\u00fcks\u00e9ges teszteket. \u00cdgy teljes kontrollt kapunk az m\u00e9r\u00e9si eredm\u00e9nyek felett \u00e9s vil\u00e1gos jelet. De nincs teljes lefedetts\u00e9g az eszk\u00f6z\u00f6k \u00e9s a felhaszn\u00e1l\u00f3k elhelyezked\u00e9se szempontj\u00e1b\u00f3l (k\u00fcl\u00f6n\u00f6sen a vil\u00e1gm\u00e9ret\u0171 szolg\u00e1ltat\u00e1sok \u00e9s ezer k\u00e9sz\u00fcl\u00e9kmodell t\u00e1mogat\u00e1sa eset\u00e9n).<\/li>\n<\/ol>\n<p>\nHogyan lehet \u00f6sszevonni a k\u00e9t m\u00f3dszer el\u0151nyeit?<\/p>\n<p>Csapatunk megtal\u00e1lta a megold\u00e1st. \u00cdrtunk egy kis k\u00f3dot \u2014 pr\u00f3b\u00e1t \u2014 amelyet be\u00e9p\u00edtett\u00fcnk az alkalmaz\u00e1sunkba. A pr\u00f3b\u00e1k lehet\u0151v\u00e9 teszik sz\u00e1munkra, hogy teljesen ellen\u0151rz\u00f6tt h\u00e1l\u00f3zati teszteket v\u00e9gezz\u00fcnk az eszk\u00f6zeinkr\u0151l. \u00cdgy m\u0171k\u00f6dik: <\/p>\n<ol>\n<li>Nem sokkal az alkalmaz\u00e1s bet\u00f6lt\u00e9se \u00e9s az els\u0151 tev\u00e9kenys\u00e9gek befejez\u00e9se ut\u00e1n elind\u00edtjuk a pr\u00f3b\u00e1inkat. <\/li>\n<li>Az \u00fcgyf\u00e9l k\u00e9r\u00e9s\u00e9re a szerver megkapja a teszt \"receptj\u00e9t\". A recept egy URL-c\u00edmek list\u00e1j\u00e1t tartalmazza, amelyekhez HTTP(s) k\u00e9r\u00e9seket kell k\u00fcldeni. Ezen k\u00edv\u00fcl a recept konfigur\u00e1lja a k\u00e9r\u00e9sek param\u00e9tereit: k\u00e9sleked\u00e9sek a k\u00e9r\u00e9sek k\u00f6z\u00f6tt, a k\u00e9rt adatok mennyis\u00e9ge, HTTP(s) fejl\u00e9c \u00e9s \u00edgy tov\u00e1bb. Ek\u00f6zben p\u00e1rhuzamosan t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 receptet is tesztelhet\u00fcnk \u2014 a konfigur\u00e1ci\u00f3s k\u00e9r\u00e9s sor\u00e1n v\u00e9letlenszer\u0171en hat\u00e1rozzuk meg, hogy melyik receptet adjuk ki. <\/li>\n<li>A pr\u00f3ba ind\u00edt\u00e1s\u00e1nak ideje \u00fagy van kiv\u00e1lasztva, hogy ne \u00fctk\u00f6zz\u00f6n az \u00fcgyf\u00e9l h\u00e1l\u00f3zati er\u0151forr\u00e1sainak akt\u00edv haszn\u00e1lat\u00e1val. L\u00e9nyeg\u00e9ben egy olyan id\u0151pontot v\u00e1lasztunk, amikor az \u00fcgyf\u00e9l inakt\u00edv.<\/li>\n<li>A recept megkap\u00e1sa ut\u00e1n az \u00fcgyf\u00e9l p\u00e1rhuzamosan k\u00e9r\u00e9seket ind\u00edt minden egyes URL-c\u00edmre. A k\u00e9r\u00e9sek minden egyes c\u00edmen ism\u00e9tl\u0151dhetnek \u2014 a leg\u00fajabb \"impulzusok\". Az els\u0151 impulzus sor\u00e1n m\u00e9rj\u00fck, hogy mennyi id\u0151t vett ig\u00e9nybe a kapcsolat l\u00e9tes\u00edt\u00e9se \u00e9s az adatok let\u00f6lt\u00e9se. A m\u00e1sodik impulzus sor\u00e1n az adatbet\u00f6lt\u00e9si id\u0151t m\u00e9rj\u00fck a m\u00e1r l\u00e9trej\u00f6tt kapcsolaton. A harmadik impulzus el\u0151tt k\u00e9sleltet\u00e9st \u00e1ll\u00edthatunk be, \u00e9s m\u00e9rhetj\u00fck az \u00faj kapcsolat l\u00e9tes\u00edt\u00e9s\u00e9nek sebess\u00e9g\u00e9t stb.\n<p>A teszt sor\u00e1n minden olyan param\u00e9tert m\u00e9r\u00fcnk, amelyet az eszk\u00f6z k\u00e9pes ny\u00fajtani:<\/p>\n<ul>\n<li>DNS lek\u00e9rdez\u00e9s ideje;<\/li>\n<li>TCP kapcsolat l\u00e9trehoz\u00e1s\u00e1nak ideje;<\/li>\n<li>TLS kapcsolat l\u00e9trehoz\u00e1s\u00e1nak ideje;<\/li>\n<li>az els\u0151 b\u00e1jt adat meg\u00e9rkez\u00e9s\u00e9nek ideje;<\/li>\n<li>teljes bet\u00f6lt\u00e9si id\u0151;<\/li>\n<li>a v\u00e1lasz st\u00e1tusz k\u00f3dja.<\/li>\n<\/ul>\n<\/li>\n<li> Miut\u00e1n az \u00f6sszes m\u00e9r\u00e9s befejez\u0151d\u00f6tt, a pr\u00f3bafel\u00fclet bet\u00f6lti az \u00f6sszes m\u00e9r\u00e9s eredm\u00e9nyeit az elemz\u00e9shez.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/fff11d487b7c7725707cdeeca0734296.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA kulcsfontoss\u00e1g\u00fa elemek k\u00f6z\u00e9 tartozik a minim\u00e1lis f\u00fcgg\u00e9s az \u00fcgyf\u00e9l logik\u00e1j\u00e1t\u00f3l, az adatok feldolgoz\u00e1sa a szerveren \u00e9s a p\u00e1rhuzamos lek\u00e9rdez\u00e9sek m\u00e9r\u00e9se. \u00cdgy lehet\u0151s\u00e9g\u00fcnk van izol\u00e1lni \u00e9s tesztelni a k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e9nyez\u0151k hat\u00e1s\u00e1t a lek\u00e9rdez\u00e9sek teljes\u00edtm\u00e9ny\u00e9re, \u00e9s vari\u00e1lni azokat egy recept keretein bel\u00fcl, valamint eredm\u00e9nyekhez jutni a val\u00f3s helyzetb\u0151l.<\/p>\n<p>Ez az infrastrukt\u00fara nemcsak a lek\u00e9rdez\u00e9sek teljes\u00edtm\u00e9ny\u00e9nek elemz\u00e9s\u00e9re bizonyult hasznosnak. Jelenleg 14 akt\u00edv recept\u00fcnk van, t\u00f6bb mint 6000 pr\u00f3ba m\u00e1sodpercenk\u00e9nt, amelyek az eg\u00e9sz vil\u00e1g minden sark\u00e1b\u00f3l adatokat gy\u0171jtenek, teljes eszk\u00f6zbor\u00edt\u00e1ssal. Ha a Netflix k\u00fcls\u0151 c\u00e9gekt\u0151l v\u00e1s\u00e1rolna hasonl\u00f3 szolg\u00e1ltat\u00e1st, az \u00e9vente milli\u00f3kba ker\u00fclne, sokkal rosszabb lefedetts\u00e9ggel.<\/p>\n<h2>Ellen\u0151rizz\u00fck a elm\u00e9letet a gyakorlatban: protot\u00edpus<\/h2>\n<p>\nEzzel a rendszerrel lehet\u0151s\u00e9g\u00fcnk volt \u00e9rt\u00e9kelni a CDN proxy hat\u00e9konys\u00e1g\u00e1t a lek\u00e9rdez\u00e9sek k\u00e9s\u00e9s\u00e9ben. Most sz\u00fcks\u00e9g van arra, hogy:<\/p>\n<ul>\n<li>prot\u00f3t\u00edpus proxy-t hozzunk l\u00e9tre;<\/li>\n<li>a protot\u00edpust a CDN-en helyezz\u00fck el;<\/li>\n<li>meghat\u00e1rozzuk, hogyan ir\u00e1ny\u00edthatjuk az \u00fcgyfeleket a proxyhoz egy adott CDN szerveren;<\/li>\n<li>\u00f6sszehasonl\u00edtsuk a teljes\u00edtm\u00e9nyt az AWS lek\u00e9rdez\u00e9seivel proxy n\u00e9lk\u00fcl.<\/li>\n<\/ul>\n<p>\nA feladat az, hogy a lehet\u0151 leggyorsabban \u00e9rt\u00e9kelj\u00fck a javasolt megold\u00e1s hat\u00e9konys\u00e1g\u00e1t. A protot\u00edpus megval\u00f3s\u00edt\u00e1s\u00e1hoz a Go nyelvet v\u00e1lasztottuk, figyelembe v\u00e9ve a j\u00f3 h\u00e1l\u00f3zati k\u00f6nyvt\u00e1rakat. Minden CDN szerveren a protot\u00edpust statikus bin\u00e1risk\u00e9nt telep\u00edtett\u00fck, hogy minimaliz\u00e1ljuk a f\u00fcgg\u0151s\u00e9geket \u00e9s megk\u00f6nny\u00edts\u00fck az integr\u00e1ci\u00f3t. A kezdeti megval\u00f3s\u00edt\u00e1s sor\u00e1n maxim\u00e1lisan kihaszn\u00e1ltuk a standard komponenseket, \u00e9s n\u00e9h\u00e1ny apr\u00f3 m\u00f3dos\u00edt\u00e1st v\u00e9gezt\u00fcnk a HTTP\/2 kapcsolati pooling \u00e9s k\u00e9r\u00e9s multiplex\u00e1l\u00e1s ter\u00e9n.<\/p>\n<p>A region\u00e1lis terhel\u00e9seloszt\u00e1s \u00e9rdek\u00e9ben az AWS r\u00e9gi\u00f3k k\u00f6z\u00f6tt egy f\u00f6ldrajzi DNS adatb\u00e1zist haszn\u00e1ltunk, amelyet az \u00fcgyf\u00e9lforgalom terhel\u00e9seloszt\u00e1s\u00e1hoz is alkalmazunk. Az \u00fcgyf\u00e9l CDN szerver\u00e9nek kiv\u00e1laszt\u00e1s\u00e1hoz TCP Anycast-ot alkalmazunk az Internet Exchange-en (IX) tal\u00e1lhat\u00f3 szerverekn\u00e9l. Ebben az esetben egy IP-c\u00edmet haszn\u00e1lunk az \u00f6sszes CDN szerverhez, \u00edgy az \u00fcgyf\u00e9l a legkevesebb IP hops-ot ig\u00e9nyl\u0151 CDN szerverhez ker\u00fcl ir\u00e1ny\u00edt\u00e1sra. Az internetszolg\u00e1ltat\u00f3k (ISP) \u00e1ltal telep\u00edtett CDN szervereken nincs ellen\u0151rz\u00e9s\u00fcnk a router felett a TCP Anycast be\u00e1ll\u00edt\u00e1s\u00e1hoz, \u00edgy <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/presentations\/netflix-streaming-arch\/\">ugyanazt a logik\u00e1t<\/a><\/noindex>, amely alapj\u00e1n az \u00fcgyfelek az internetszolg\u00e1ltat\u00f3khoz ker\u00fclnek ir\u00e1ny\u00edt\u00e1sra videostreaminghez.<\/p>\n<p>\u00cdgy h\u00e1romf\u00e9le \u00fat \u00e1ll rendelkez\u00e9s\u00fcnkre a k\u00e9r\u00e9sekhez: a felh\u0151be ny\u00edlt interneten kereszt\u00fcl, IX-en kereszt\u00fcl egy CDN szerveren, vagy egy internetszolg\u00e1ltat\u00f3 \u00e1ltal elhelyezett CDN szerveren kereszt\u00fcl. C\u00e9lunk, hogy meg\u00e9rts\u00fck, melyik \u00fat a legjobb, \u00e9s mi a haszna a proxynak a k\u00e9r\u00e9sek production-ba val\u00f3 ir\u00e1ny\u00edt\u00e1s\u00e1hoz k\u00e9pest. Ehhez pr\u00f3b\u00e1lkoz\u00e1si rendszert haszn\u00e1lunk az al\u00e1bbi m\u00f3don:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/51b64d5be0aaf0f141484ee0fd373396.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMindegyik \u00fat k\u00fcl\u00f6n c\u00e9lnak sz\u00e1m\u00edt, \u00e9s n\u00e9zz\u00fck az el\u00e9rt id\u0151t. Az elemz\u00e9shez \u00f6sszevonjuk a proxy eredm\u00e9nyeket egy csoportba (kiv\u00e1lasztjuk a legjobb id\u0151t az IX \u00e9s ISP proxy k\u00f6z\u00f6tt), \u00e9s \u00f6sszehasonl\u00edtjuk az id\u0151t a felh\u0151be jut\u00f3 k\u00e9relmekkel proxy n\u00e9lk\u00fcl:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/ec01690f6a312e61649282b0e6208778.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhogy l\u00e1that\u00f3, az eredm\u00e9nyek vegyesek lettek - a legt\u00f6bb esetben a proxy j\u00f3 sebess\u00e9gn\u00f6veked\u00e9st ad, de olyan \u00fcgyfelek is vannak sz\u00e1mos, akiknek a helyzete jelent\u0151sen romlik. <\/p>\n<p>V\u00e9g\u00fcl n\u00e9h\u00e1ny fontos dolgot tett\u00fcnk:<\/p>\n<ol>\n<li>\u00c9rt\u00e9kelt\u00fck az \u00fcgyfelek v\u00e1rhat\u00f3 k\u00e9r\u00e9si teljes\u00edtm\u00e9ny\u00e9t a CDN proxy-n kereszt\u00fcl a felh\u0151be.<\/li>\n<li>Adatokat gy\u0171jt\u00f6tt\u00fcnk val\u00f3di \u00fcgyfelekt\u0151l, mindenf\u00e9le eszk\u00f6zr\u0151l.<\/li>\n<li>Meg\u00e9rtett\u00fck, hogy a teoria nem bizonyult 100%-ig helyt\u00e1ll\u00f3nak, \u00e9s az eredeti javaslatunk a CDN proxy haszn\u00e1lat\u00e1val nem m\u0171k\u00f6dik sz\u00e1munkra.<\/li>\n<li>Nem kock\u00e1ztattunk - nem v\u00e1ltoztattunk a production konfigur\u00e1ci\u00f3kon az \u00fcgyfelek sz\u00e1m\u00e1ra.<\/li>\n<li>Semmit sem romboltunk le. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Protot\u00edpus 2.0<\/h2>\n<p>\nTeh\u00e1t visszat\u00e9r\u00fcnk a tervez\u0151asztalhoz, \u00e9s \u00fajra elkezdj\u00fck a folyamatot.<\/p>\n<p>Az \u00f6tlet az, hogy a 100%-os proxynak helyett minden \u00fcgyf\u00e9l sz\u00e1m\u00e1ra meghat\u00e1rozzuk a leggyorsabb utat, \u00e9s oda ir\u00e1ny\u00edtjuk a k\u00e9r\u00e9seket - vagyis azt tessz\u00fck, amit \u00fcgyf\u00e9lir\u00e1ny\u00edt\u00e1snak h\u00edvunk.<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/780817f48a4d2b292d5545e0aa1ccc50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHogyan val\u00f3s\u00edthat\u00f3 meg? Nem haszn\u00e1lhatunk szerveroldali logik\u00e1t, mivel a c\u00e9l az, hogy csatlakozzunk ehhez a szerverhez. Valahogyan ezt a kliens oldalon kell megoldanunk. Ide\u00e1lis esetben minim\u00e1lis bonyolult logik\u00e1val kell ezt tenn\u00fcnk, hogy ne kelljen integr\u00e1lni egy sz\u00e9les \u00fcgyf\u00e9lsorozatra. <\/p>\n<p>A v\u00e1lasz a DNS haszn\u00e1lata. Az eset\u00fcnkben saj\u00e1t DNS-infrastrukt\u00far\u00e1nk van, \u00e9s be\u00e1ll\u00edthatjuk azt a domain z\u00f3n\u00e1t, amelyhez a szervereink autoritat\u00edvak lesznek. Ez \u00edgy m\u0171k\u00f6dik:<\/p>\n<ol>\n<li>A kliens megkeres\u00e9st k\u00fcld a DNS-szerverhez a hoszt haszn\u00e1lat\u00e1val, p\u00e9ld\u00e1ul api.netflix.com.<\/li>\n<li>A keres\u00e9s a DNS-szerver\u00fcnkre \u00e9rkezik.<\/li>\n<li>A DNS-szerver tudja, hogy melyik \u00fat a leggyorsabb az adott kliens sz\u00e1m\u00e1ra, \u00e9s visszaadja a megfelel\u0151 IP-c\u00edmet. <\/li>\n<\/ol>\n<p>\nA megold\u00e1sban van egy plusz neh\u00e9zs\u00e9g: az autoritat\u00edv DNS-szolg\u00e1ltat\u00f3k nem l\u00e1tj\u00e1k a kliens IP-c\u00edm\u00e9t, \u00e9s csak a kliens \u00e1ltal haszn\u00e1lt rekurz\u00edv resolver IP-c\u00edm\u00e9t l\u00e1tj\u00e1k. <\/p>\n<p>V\u00e9g\u00fcl az autoritat\u00edv resolver\u00fcnknek nem az egyes kliensnek kell d\u00f6ntenie, hanem a klienscsoportoknak a rekurz\u00edv resolver alapj\u00e1n. <\/p>\n<p>A megold\u00e1shoz ugyanazokat a pr\u00f3b\u00e1kat haszn\u00e1ljuk, aggreg\u00e1lva a m\u00e9r\u00e9sek eredm\u00e9nyeit a kliensekt\u0151l minden rekurz\u00edv resolverhez, \u00e9s eld\u00f6ntj\u00fck, hogy hova ir\u00e1ny\u00edtjuk ezt a csoportot \u2014 proxy az IX-en TCP Anycast seg\u00edts\u00e9g\u00e9vel, ISP proxyn kereszt\u00fcl vagy k\u00f6zvetlen\u00fcl a felh\u0151be.<\/p>\n<p>\u00cdgy kapunk egy rendszert:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/ad23219938d1cb7b6eef498671c3e151.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz elk\u00e9sz\u00fclt DNS steering modell lehet\u0151v\u00e9 teszi a kliensek ir\u00e1ny\u00edt\u00e1s\u00e1t a felh\u0151ig terjed\u0151 kapcsolatok sebess\u00e9gi megfigyel\u00e9sei alapj\u00e1n. <\/p>\n<p>Ism\u00e9t felmer\u00fcl a k\u00e9rd\u00e9s \u2014 mennyire hat\u00e9konyan fog m\u0171k\u00f6dni ez a megk\u00f6zel\u00edt\u00e9s? A v\u00e1laszhoz ism\u00e9t a pr\u00f3b\u00e1k rendszer\u00e9t haszn\u00e1ljuk. \u00cdgy be\u00e1ll\u00edtjuk a konfigot, ahol az egyik c\u00e9l a DNS steering ir\u00e1ny\u00e1ba megy, a m\u00e1sik pedig k\u00f6zvetlen\u00fcl a felh\u0151be (jelenlegi termel\u00e9s).<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/ceb2ded9367ebd0aa0ede46191a89a88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00e9g\u00fcl a resultados \u00f6sszehasonl\u00edt\u00e1s\u00e1val \u00e9rt\u00e9kelj\u00fck a hat\u00e9konys\u00e1got:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/ca0db88461d5f2cb0f3f7c07eae14f10.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00d6sszess\u00e9g\u00e9ben n\u00e9h\u00e1ny fontos dolgot tanultunk:<\/p>\n<ol>\n<li>\u00c9rt\u00e9kelt\u00fck a v\u00e1rt teljes\u00edtm\u00e9nyt a kliensek felh\u0151h\u00f6z val\u00f3 kapcsol\u00f3d\u00e1s\u00e1val DNS Steering haszn\u00e1lat\u00e1val.<\/li>\n<li>Adatokat gy\u0171jt\u00f6tt\u00fcnk val\u00f3di \u00fcgyfelekt\u0151l, mindenf\u00e9le eszk\u00f6zr\u0151l.<\/li>\n<li>Bizony\u00edtottuk a javasolt \u00f6tlet hat\u00e9konys\u00e1g\u00e1t.<\/li>\n<li>Nem kock\u00e1ztattunk - nem v\u00e1ltoztattunk a production konfigur\u00e1ci\u00f3kon az \u00fcgyfelek sz\u00e1m\u00e1ra.<\/li>\n<li>Semmit sem romboltunk le.<\/li>\n<\/ol>\n<p><\/p>\n<h2>Most k\u00f6vetkezik a neheze \u2014 induljunk a termel\u00e9sbe.<\/h2>\n<p>\nA legnehezebb mostant\u00f3l m\u00f6g\u00f6tt\u00fcnk van \u2013 van egy m\u0171k\u00f6d\u0151 protot\u00edpusunk. A neheze most kezd\u0151dik \u2013 elind\u00edtani a megold\u00e1st a Netflix forgalm\u00e1ra, telep\u00edteni 150 milli\u00f3 felhaszn\u00e1l\u00f3ra, ezer eszk\u00f6zre, sz\u00e1z mikroszolg\u00e1ltat\u00e1sra \u00e9s folyamatosan v\u00e1ltoz\u00f3 term\u00e9kekre \u00e9s infrastrukt\u00far\u00e1ra. A Netflix szervereire m\u00e1sodpercenk\u00e9nt milli\u00f3k \u00e9rkeznek, \u00e9s egy \u00f3vatlan l\u00e9p\u00e9ssel k\u00f6nnyen megbomolhat a szolg\u00e1ltat\u00e1s. K\u00f6zben dinamikusan k\u00edv\u00e1njuk ir\u00e1ny\u00edtani a forgalmat ezer CDN szerveren kereszt\u00fcl az interneten, ahol valami \u00e1lland\u00f3an v\u00e1ltozik \u00e9s romlik, legrosszabb pillanatokban is. <\/p>\n<p>\u00c9s mindezek mellett a csapatban \u2013 3 m\u00e9rn\u00f6k felel\u0151s a rendszer fejleszt\u00e9s\u00e9\u00e9rt, telep\u00edt\u00e9s\u00e9\u00e9rt \u00e9s teljesk\u00f6r\u0171 t\u00e1mogat\u00e1s\u00e1\u00e9rt.<\/p>\n<p>Ez\u00e9rt most a nyugodt \u00e9s eg\u00e9szs\u00e9ges alv\u00e1sr\u00f3l fogunk besz\u00e9lni.<\/p>\n<p>Hogyan folytassuk a fejleszt\u00e9st, an\u00e9lk\u00fcl, hogy az id\u0151nket folyamatosan t\u00e1mogat\u00e1sra pazaroln\u00e1nk? A megk\u00f6zel\u00edt\u00e9s\u00fcnk alapja 3 elv:<\/p>\n<ol>\n<li>Cs\u00f6kkentj\u00fck a potenci\u00e1lis hib\u00e1k terjed\u00e9s\u00e9t (blast radius). <\/li>\n<li>K\u00e9szen \u00e1llunk a meglepet\u00e9sekre \u2013 sz\u00e1m\u00edtunk arra, hogy valami elromlik, a tesztel\u00e9s \u00e9s a szem\u00e9lyes tapasztalatok ellen\u00e9re.<\/li>\n<li>Fokozatos degrad\u00e1ci\u00f3 (graceful degradation) \u2013 ha valami nem m\u0171k\u00f6dik j\u00f3l, akkor automatikusan meg kell javulnia, m\u00e9g ha nem is a leghat\u00e9konyabb m\u00f3don.<\/li>\n<\/ol>\n<p>\nKider\u00fclt, hogy a mi eset\u00fcnkben, e megk\u00f6zel\u00edt\u00e9ssel egyszer\u0171 \u00e9s hat\u00e9kony megold\u00e1st tal\u00e1lhatunk, amely jelent\u0151sen leegyszer\u0171s\u00edti a rendszer t\u00e1mogat\u00e1s\u00e1t. R\u00e1j\u00f6tt\u00fcnk, hogy hozz\u00e1adhatunk egy kis k\u00f3dot az \u00fcgyf\u00e9lhez, amely figyeli a h\u00e1l\u00f3zati k\u00e9r\u00e9sek hib\u00e1it, amelyeket a kapcsolat hib\u00e1ja okoz. H\u00e1l\u00f3zati hiba eset\u00e9n k\u00f6zvetlen\u00fcl az felh\u0151be t\u00e9r\u00fcnk vissza. Ez a megold\u00e1s nem ig\u00e9nyel jelent\u0151s er\u0151fesz\u00edt\u00e9st az \u00fcgyf\u00e9lig\u00e9ny\u0171 csapatokt\u00f3l, ugyanakkor nagym\u00e9rt\u00e9kben cs\u00f6kkenti a v\u00e1ratlan hib\u00e1k \u00e9s meglepet\u00e9sek kock\u00e1zat\u00e1t sz\u00e1munkra.<\/p>\n<p>Term\u00e9szetesen, a fallback ellen\u00e9re is szigor\u00fa fegyelemhez ragaszkodunk a fejleszt\u00e9s sor\u00e1n:<\/p>\n<ol>\n<li>Pr\u00f3bateszt.<\/li>\n<li>A\/B tesztel\u00e9s vagy Canaries.<\/li>\n<li>Fokozatos kiad\u00e1s (progressive rollout).<\/li>\n<\/ol>\n<p>\nA pr\u00f3b\u00e1k sor\u00e1n a megk\u00f6zel\u00edt\u00e9st le\u00edrtuk \u2013 a m\u00f3dos\u00edt\u00e1sokat el\u0151sz\u00f6r egy be\u00e1ll\u00edtott recept seg\u00edts\u00e9g\u00e9vel tesztelj\u00fck.<\/p>\n<p>A canary tesztel\u00e9shez \u00f6sszehasonl\u00edthat\u00f3 szerverp\u00e1rokra van sz\u00fcks\u00e9g, amelyeken \u00f6sszehasonl\u00edthat\u00f3 a rendszer m\u0171k\u00f6d\u00e9se a v\u00e1ltoztat\u00e1sok el\u0151tt \u00e9s ut\u00e1n. Ehhez sz\u00e1mos CDN webhely\u00fcnkb\u0151l p\u00e1rokat v\u00e1lasztunk ki, amelyek hasonl\u00f3 forgalmat kapnak:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/eef504f5c81aa985b78339fd5f913d14.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEzut\u00e1n a m\u00f3dos\u00edt\u00e1sokkal ell\u00e1tott buildet a Canary szerverekre telep\u00edtj\u00fck. Az eredm\u00e9nyek \u00e9rt\u00e9kel\u00e9s\u00e9re egy rendszert ind\u00edtunk el, amely k\u00f6r\u00fclbel\u00fcl 100-150 metrik\u00e1t hasonl\u00edt \u00f6ssze a Control szerverek mint\u00e1j\u00e1val:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/898edb0a5bd493d6ef228cd116c1a939.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHa a Canary-teszt sikeresen lezajlott, akkor fokozatosan, hull\u00e1mokban v\u00e9gezz\u00fck el a kiad\u00e1st. Minden weboldalon nem friss\u00edtj\u00fck a szervereket egyszerre \u2014 egy eg\u00e9sz weboldal elveszt\u00e9se a probl\u00e9m\u00e1k eset\u00e9n jelent\u0151sebb hat\u00e1ssal van a szolg\u00e1ltat\u00e1sra a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra, mint ugyanannyi szerver veszt\u00e9se, de k\u00fcl\u00f6nb\u00f6z\u0151 helyeken.<\/p>\n<p>\u00d6sszess\u00e9g\u00e9ben ennek a megk\u00f6zel\u00edt\u00e9snek a hat\u00e9konys\u00e1ga \u00e9s biztons\u00e1ga a gy\u0171jt\u00f6tt metrik\u00e1k mennyis\u00e9g\u00e9t\u0151l \u00e9s min\u0151s\u00e9g\u00e9t\u0151l f\u00fcgg. A k\u00e9r\u00e9sgyors\u00edt\u00f3 rendszer\u00fcnk sz\u00e1m\u00e1ra minden lehets\u00e9ges komponensb\u0151l gy\u0171jt\u00fcnk metrik\u00e1kat: <\/p>\n<ul>\n<li>az \u00fcgyfelekt\u0151l \u2014 a munkamenetek \u00e9s k\u00e9r\u00e9sek sz\u00e1ma, fallback ar\u00e1nyok; <\/li>\n<li>proxy \u2014 a k\u00e9r\u00e9sek sz\u00e1m\u00e1nak \u00e9s idej\u00e9nek statisztik\u00e1ja;<\/li>\n<li>DNS \u2014 a k\u00e9r\u00e9sek sz\u00e1ma \u00e9s eredm\u00e9nyei;<\/li>\n<li>cloud edge \u2014 a k\u00e9relmek feldolgoz\u00e1s\u00e1nak sz\u00e1ma \u00e9s ideje a felh\u0151ben.<\/li>\n<\/ul>\n<p>\nMindezt egy egys\u00e9ges pipeline-ba gy\u0171jtj\u00fck, \u00e9s a sz\u00fcks\u00e9gleteknek megfelel\u0151en d\u00f6nt\u00fcnk arr\u00f3l, hogy melyik metrik\u00e1t k\u00fcldj\u00fck a val\u00f3s idej\u0171 elemz\u00e9sre, \u00e9s melyik ker\u00fcl az Elasticsearch-ba vagy Big Data-ba a r\u00e9szletes diagn\u00f3zis \u00e9rdek\u00e9ben.<\/p>\n<h2>Monitoroz\u00e1s<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/ff8b00b1239a20f85e96ce23c2d7c2d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA mi eset\u00fcnkben a k\u00e9r\u00e9sek kritikus \u00fatvonal\u00e1n v\u00e9gezz\u00fck a v\u00e1ltoztat\u00e1sokat az \u00fcgyf\u00e9l \u00e9s a szerver k\u00f6z\u00f6tt. Ek\u00f6zben az \u00fcgyf\u00e9len, szerveren \u00e9s az interneten kereszt\u00fcl sokf\u00e9le komponens van. Az \u00fcgyf\u00e9l \u00e9s a szerver k\u00f6z\u00f6tti v\u00e1ltoz\u00e1sok folyamatosan bek\u00f6vetkeznek \u2014 sok csapat munk\u00e1ja \u00e9s az \u00f6kosziszt\u00e9ma term\u00e9szetes v\u00e1ltoz\u00e1sai k\u00f6vetkezt\u00e9ben. Mi a k\u00f6z\u00e9ppontban \u00e1llunk \u2014 a probl\u00e9m\u00e1k diagnosztiz\u00e1l\u00e1sakor nagy val\u00f3sz\u00edn\u0171s\u00e9ggel r\u00e9szt vesz\u00fcnk ebben. Ez\u00e9rt pontosan meg kell \u00e9rten\u00fcnk, hogyan kell meghat\u00e1rozni, gy\u0171jteni \u00e9s elemezni a metrik\u00e1kat a probl\u00e9m\u00e1k gyors lokaliz\u00e1l\u00e1sa \u00e9rdek\u00e9ben. <\/p>\n<p>Ide\u00e1lis esetben \u2014 teljes hozz\u00e1f\u00e9r\u00e9s mindenf\u00e9le metrik\u00e1hoz \u00e9s sz\u0171r\u0151kh\u00f6z val\u00f3s id\u0151ben. De nagyon sok metrika van, \u00edgy felmer\u00fcl a k\u00f6lts\u00e9gek k\u00e9rd\u00e9se. A mi eset\u00fcnkben a metrik\u00e1kat \u00e9s a fejleszt\u00e9si eszk\u00f6z\u00f6ket a k\u00f6vetkez\u0151k\u00e9ppen k\u00fcl\u00f6nb\u00f6ztetj\u00fck meg:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/0b4a15776f3b44331652adc14ea87390.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA probl\u00e9m\u00e1k \u00e9s a triage \u00e9szlel\u00e9se \u00e9rdek\u00e9ben saj\u00e1t val\u00f3s idej\u0171, ny\u00edlt forr\u00e1sk\u00f3d\u00fa rendszert haszn\u00e1lunk <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Netflix\/atlas\">Atlas<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/netflixtechblog.com\/lumen-custom-self-service-dashboarding-for-netflix-8c56b541548c\">Lumen<\/a><\/noindex> \u2014 a vizualiz\u00e1l\u00e1shoz. Ez az aggreg\u00e1lt metrik\u00e1kat a mem\u00f3ri\u00e1ban t\u00e1rolja, megb\u00edzhat\u00f3 \u00e9s integr\u00e1l\u00f3dik az \u00e9rtes\u00edt\u00e9si rendszerrel. A lokaliz\u00e1l\u00e1sra \u00e9s diagn\u00f3zisra hozz\u00e1f\u00e9r\u00e9s\u00fcnk van az Elasticsearch \u00e9s Kibana logokhoz. A statisztikai elemz\u00e9shez \u00e9s modellez\u00e9shez a big data-t \u00e9s a Tableau vizualiz\u00e1l\u00e1s\u00e1t haszn\u00e1ljuk.<\/p>\n<p>A t\u0171nik, hogy ezzel a megk\u00f6zel\u00edt\u00e9ssel nagyon neh\u00e9z dolgozni. Azonban a metrik\u00e1k \u00e9s eszk\u00f6z\u00f6k hierarchikus szervez\u00e9s\u00e9vel gyorsan meg tudjuk elemezni a probl\u00e9m\u00e1t, meghat\u00e1rozni a probl\u00e9ma t\u00edpus\u00e1t, majd r\u00e9szletes metrik\u00e1kba m\u00e9lyedni. A hiba forr\u00e1s\u00e1nak felder\u00edt\u00e9se \u00e1ltal\u00e1ban 1-2 percet vesz ig\u00e9nybe. Ezt k\u00f6vet\u0151en egy konkr\u00e9t csapattal dolgozunk a diagnosztik\u00e1n \u2014 ez ak\u00e1r t\u00f6bb \u00f3r\u00e1t is ig\u00e9nybe vehet.<\/p>\n<p>M\u00e9g ha a diagnosztika gyorsan is elk\u00e9sz\u00fcl, nem szeretn\u00e9nk, ha ez gyakran el\u0151fordulna. Ide\u00e1lis esetben csak akkor kapunk kritikus \u00e9rtes\u00edt\u00e9st, ha jelent\u0151s hat\u00e1ssal van a szolg\u00e1ltat\u00e1sra. Az \u00fcgyf\u00e9lk\u00e9r\u00e9sek gyors\u00edt\u00f3 rendszer\u00fcnkben csup\u00e1n 2 \u00e9rtes\u00edt\u00e9st fogunk kapni, amelyek \u00e9rtes\u00edtenek:<\/p>\n<ul>\n<li>Client Fallback sz\u00e1zal\u00e9k \u2014 az \u00fcgyfelek viselked\u00e9s\u00e9nek \u00e9rt\u00e9kel\u00e9se;<\/li>\n<li>Probe errors sz\u00e1zal\u00e9k \u2014 a h\u00e1l\u00f3zati komponensek stabilit\u00e1s\u00e1ra vonatkoz\u00f3 adatok.<\/li>\n<\/ul>\n<p>\nEzek a kritikus \u00e9rtes\u00edt\u00e9sek figyelik, hogy a rendszer m\u0171k\u00f6dik-e a t\u00f6bbs\u00e9gi felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra. Megn\u00e9zz\u00fck, h\u00e1ny \u00fcgyf\u00e9l haszn\u00e1lta a fallback-et, ha nem tudtak ig\u00e9nybe venni gyors\u00edt\u00e1st. \u00c1tlagosan heti kevesebb mint 1 kritikus \u00e9rtes\u00edt\u00e9s\u00fcnk van, pedig a rendszerben hatalmas mennyis\u00e9g\u0171 v\u00e1ltoz\u00e1s t\u00f6rt\u00e9nik. Mi\u00e9rt elegend\u0151 ez sz\u00e1munkra?<\/p>\n<ol>\n<li>Van client fallback, ha a proxy-nk nem m\u0171k\u00f6dik.<\/li>\n<li>Van egy automatikus steering rendszer, amely reag\u00e1l a probl\u00e9m\u00e1kra.<\/li>\n<\/ol>\n<p>\nR\u00e9szletesebben az utols\u00f3 pontr\u00f3l. Pr\u00f3ba rendszer\u00fcnk \u00e9s az \u00fcgyfelekt\u0151l a felh\u0151be ir\u00e1nyul\u00f3 k\u00e9r\u00e9sek optim\u00e1lis \u00fatvonal\u00e1nak automatikus meghat\u00e1roz\u00e1s\u00e1ra szolg\u00e1l\u00f3 rendszer lehet\u0151v\u00e9 teszi, hogy automatikusan kezelj\u00fck a probl\u00e9m\u00e1k egy r\u00e9sz\u00e9t. <\/p>\n<p>Visszat\u00e9rve a pr\u00f3ba konfigur\u00e1ci\u00f3nkra \u00e9s a 3 kateg\u00f3ri\u00e1s \u00fatvonalra. A bet\u00f6lt\u00e9si id\u0151 mellett figyelhetj\u00fck mag\u00e1nak a k\u00e9Delivery-t is. Ha nem siker\u00fcl adatokat bet\u00f6lteni, akkor a k\u00fcl\u00f6nb\u00f6z\u0151 \u00fatvonalak eredm\u00e9nyeit n\u00e9zve meg tudjuk hat\u00e1rozni, hol \u00e9s mi romlott el, \u00e9s k\u00e9pesek vagyunk-e automatikusan kijav\u00edtani azt, megv\u00e1ltoztatva a k\u00e9r\u00e9s \u00fatvonal\u00e1t.<\/p>\n<p>P\u00e9ld\u00e1k:<\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/7d935da82aaca53af87f05fbdf215c4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/f74ef9d3de953099921a68fbc65cb187.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/3c77cbd47813d3320efbf339a0690c53.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz a folyamat automatiz\u00e1lhat\u00f3. Be lehet \u00e9p\u00edteni a steering rendszerbe. \u00c9s meg lehet tan\u00edtani, hogy reag\u00e1ljon a teljes\u00edtm\u00e9ny \u00e9s megb\u00edzhat\u00f3s\u00e1g probl\u00e9m\u00e1ira. Ha valami kezd elromlani \u2014 reag\u00e1ljon, ha van jobb opci\u00f3. K\u00f6zben a pillanatnyi reakci\u00f3 nem kritikus, k\u00f6sz\u00f6nhet\u0151en a fallback-nek az \u00fcgyfelekn\u00e9l.<\/p>\n<p>\u00cdgy a rendszer t\u00e1mogat\u00e1s\u00e1nak elveit a k\u00f6vetkez\u0151k\u00e9ppen lehet \u00f6sszefoglalni:<\/p>\n<ul>\n<li>cs\u00f6kkentj\u00fck a meghib\u00e1sod\u00e1sok m\u00e9rt\u00e9k\u00e9t;<\/li>\n<li>m\u00e9rj\u00fck a metrik\u00e1kat;<\/li>\n<li>automatikusan kijav\u00edtjuk a hib\u00e1kat, ha tudjuk;<\/li>\n<li>ha nem, \u00e9rtes\u00edtj\u00fck.<\/li>\n<li>Dolgozunk a dashboardokon \u00e9s a triage eszk\u00f6z\u00f6k\u00f6n a gyors reag\u00e1l\u00e1s \u00e9rdek\u00e9ben.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Tanulm\u00e1nyozott leck\u00e9k.<\/h2>\n<p>\nA protot\u00edpus elk\u00e9sz\u00edt\u00e9s\u00e9hez nem sz\u00fcks\u00e9ges sok id\u0151. A mi eset\u00fcnkben n\u00e9gy h\u00f3nap alatt elk\u00e9sz\u00fclt. Ezzel \u00faj metrik\u00e1kat kaptunk, \u00e9s t\u00edz h\u00f3nappal a fejleszt\u00e9s megkezd\u00e9se ut\u00e1n megszerezt\u00fck az els\u0151 produkci\u00f3s forgalmat. Ezut\u00e1n kezd\u0151d\u00f6tt a monoton \u00e9s nagyon bonyolult munka: fokozatosan term\u00e9kes\u00edteni \u00e9s sk\u00e1l\u00e1zni a rendszert, migr\u00e1lni a f\u0151 forgalmat, \u00e9s tanulni a hib\u00e1kb\u00f3l. Ez a hat\u00e9kony folyamat nem lesz line\u00e1ris \u2013 a nagy er\u0151fesz\u00edt\u00e9sek ellen\u00e9re sem lehet mindent el\u0151re l\u00e1tni. Sokkal hat\u00e9konyabb a gyors iter\u00e1ci\u00f3 \u00e9s a \u00faj adatokra val\u00f3 reag\u00e1l\u00e1s. <\/p>\n<p><img decoding=\"async\" alt=\"Felgyors\u00edtjuk az internetes keres\u00e9seket \u00e9s nyugodtan alszunk\" src=\"\/wp-content\/uploads\/2020\/06\/c9c182a1a4fa048b1f1b2a82a4db65e1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTapasztalataink alapj\u00e1n a k\u00f6vetkez\u0151ket javasoljuk:<\/p>\n<ol>\n<li>Ne b\u00edzz a meg\u00e9rz\u00e9seidben.\n<p>A meg\u00e9rz\u00e9seink folyamatosan cserben hagytak minket, annak ellen\u00e9re, hogy a csapat tagjainak \u00f3ri\u00e1si tapasztalata volt. P\u00e9ld\u00e1ul hib\u00e1san becs\u00fclt\u00fck meg a CDN proxy haszn\u00e1lat\u00e1b\u00f3l v\u00e1rhat\u00f3 teljes\u00edtm\u00e9nyn\u00f6veked\u00e9st, vagy a TCP Anycast viselked\u00e9s\u00e9t.<\/li>\n<li>Szerezz be adatokat a produkci\u00f3b\u00f3l.\n<p>Fontos, hogy min\u00e9l hamarabb hozz\u00e1f\u00e9rj egy kis mennyis\u00e9g\u0171 produkci\u00f3s adathoz. A laborat\u00f3riumi k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt szinte lehetetlen megszerezni az egyedi esetek, konfigur\u00e1ci\u00f3k \u00e9s be\u00e1ll\u00edt\u00e1sok sz\u00e1m\u00e1t. A gyors hozz\u00e1f\u00e9r\u00e9s az eredm\u00e9nyekhez lehet\u0151v\u00e9 teszi, hogy gyorsabban \u00e9rtes\u00fclj a potenci\u00e1lis probl\u00e9m\u00e1kr\u00f3l, \u00e9s figyelembe tudd venni \u0151ket a rendszer architekt\u00far\u00e1j\u00e1ban.<\/li>\n<li>Ne k\u00f6vesd m\u00e1sok tan\u00e1csait \u00e9s eredm\u00e9nyeit \u2014 gy\u0171jtsd \u00f6ssze a saj\u00e1t adataidat.\n<p>K\u00f6vesd az adatok gy\u0171jt\u00e9s\u00e9nek \u00e9s elemz\u00e9s\u00e9nek elveit, de ne fogadd el vakon m\u00e1sok eredm\u00e9nyeit \u00e9s \u00e1ll\u00edt\u00e1sait. Csak te tudod pontosan, hogy mi m\u0171k\u00f6dik a felhaszn\u00e1l\u00f3id sz\u00e1m\u00e1ra. A te rendszereid \u00e9s \u00fcgyfeleid jelent\u0151sen elt\u00e9rhetnek m\u00e1s c\u00e9gekt\u0151l. Szerencs\u00e9re a mai vil\u00e1gban az elemz\u0151 eszk\u00f6z\u00f6k k\u00f6nnyen hozz\u00e1f\u00e9rhet\u0151k \u00e9s haszn\u00e1lhat\u00f3k. Az \u00e1ltalad kapott eredm\u00e9nyek lehet, hogy nem egyeznek meg azzal, amit a Netflix, Facebook, Akamai \u00e9s m\u00e1s c\u00e9gek \u00e1ll\u00edtanak. Az eset\u00fcnkben a TLS, HTTP2 teljes\u00edtm\u00e9nye vagy a DNS lek\u00e9rdez\u00e9sek statisztik\u00e1i elt\u00e9rnek a Facebook, Uber, Akamai eredm\u00e9nyeit\u0151l \u2014 mert nek\u00fcnk m\u00e1s eszk\u00f6zeink, \u00fcgyfeleink \u00e9s adatfolyamaink vannak.<\/li>\n<li>Ne t\u00f6rekedj divatos trendek keres\u00e9s\u00e9re sz\u00fcks\u00e9gtelen\u00fcl \u00e9s hat\u00e9konys\u00e1g\u00e9rt\u00e9kel\u00e9s n\u00e9lk\u00fcl.\n<p>Kezdj egyszer\u0171en. Jobb egy egyszer\u0171, m\u0171k\u00f6d\u0151 rendszert gyorsan l\u00e9trehozni, mint \u00f3ri\u00e1si id\u0151t pazarolni haszontalan komponensek fejleszt\u00e9s\u00e9re. Oldd meg azokat a feladatokat \u00e9s probl\u00e9m\u00e1kat, amelyek fontosak a m\u00e9r\u00e9seid \u00e9s eredm\u00e9nyeid alapj\u00e1n. <\/li>\n<li>Legyen felk\u00e9sz\u00fclve az \u00faj alkalmaz\u00e1sokra.\n<p>Ahogy neh\u00e9z el\u0151re megj\u00f3solni az \u00f6sszes probl\u00e9m\u00e1t, \u00fagy a j\u00f6v\u0151beni el\u0151ny\u00f6ket \u00e9s alkalmaz\u00e1sokat is neh\u00e9z megbecs\u00fclni. Vegyen p\u00e9ld\u00e1t a startupokr\u00f3l \u2013 azok alkalmazkod\u00f3 k\u00e9pess\u00e9ge az \u00fcgyfelek ig\u00e9nyeihez. Az \u00f6n eset\u00e9ben felfedezheti az \u00faj probl\u00e9m\u00e1kat \u00e9s megold\u00e1saikat. A projekt\u00fcnk c\u00e9lja az volt, hogy cs\u00f6kkents\u00fck a k\u00e9r\u00e9sek k\u00e9sleked\u00e9s\u00e9t. Azonban az elemz\u00e9sek \u00e9s megbesz\u00e9l\u00e9sek sor\u00e1n r\u00e1j\u00f6tt\u00fcnk, hogy a proxy szervereket is alkalmazhatjuk:<\/p>\n<ul>\n<li>a forgalom egyens\u00falyoz\u00e1s\u00e1ra az AWS r\u00e9gi\u00f3k k\u00f6z\u00f6tt, \u00e9s a k\u00f6lts\u00e9gek cs\u00f6kkent\u00e9s\u00e9re;<\/li>\n<li>a CDN stabilit\u00e1s\u00e1nak modellez\u00e9s\u00e9re;<\/li>\n<li>a DNS konfigur\u00e1l\u00e1s\u00e1ra;<\/li>\n<li>a TLS\/TCP konfigur\u00e1l\u00e1s\u00e1ra.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Z\u00e1r\u00e1s<\/h2>\n<p>\nA besz\u00e1mol\u00f3mban le\u00edrtam, hogyan oldja meg a Netflix a gyorsabb internetes k\u00e9r\u00e9sek probl\u00e9m\u00e1j\u00e1t a kliensek \u00e9s a felh\u0151 k\u00f6z\u00f6tt. Hogyan gy\u0171jt\u00fcnk adatokat az \u00fcgyf\u00e9lv\u00e1ltoz\u00f3 rendszeren kereszt\u00fcl, \u00e9s hogyan haszn\u00e1ljuk fel az \u00f6sszegy\u0171jt\u00f6tt t\u00f6rt\u00e9neti adatokat, hogy a produkci\u00f3s k\u00e9r\u00e9seket a leggyorsabb internetes \u00faton ir\u00e1ny\u00edtsuk. Hogyan haszn\u00e1ljuk a h\u00e1l\u00f3zati protokollok m\u0171k\u00f6d\u00e9si elveit, a CDN infrastrukt\u00far\u00e1nkat, a backbone h\u00e1l\u00f3zatunkat \u00e9s a DNS szervereket ennek a c\u00e9lnak az el\u00e9r\u00e9s\u00e9re.<\/p>\n<p>Azonban a mi megold\u00e1sunk csup\u00e1n p\u00e9lda arra, hogyan val\u00f3s\u00edtottuk meg ezt a rendszert a Netflixn\u00e9l. Ami m\u0171k\u00f6d\u00f6tt sz\u00e1munkra. A besz\u00e1mol\u00f3m gyakorlati r\u00e9sze sz\u00e1motokra a fejleszt\u00e9si \u00e9s fenntart\u00e1si elvek, amelyeket k\u00f6vet\u00fcnk, hogy j\u00f3 eredm\u00e9nyeket \u00e9rj\u00fcnk el.<\/p>\n<p>A mi probl\u00e9mamegold\u00e1sunk tal\u00e1n nem m\u0171k\u00f6dik az \u00f6n sz\u00e1m\u00e1ra. Azonban az elm\u00e9let \u00e9s a fejleszt\u00e9si elvek \u00e9rv\u00e9nyben maradnak, m\u00e9g akkor is, ha nincs saj\u00e1t CDN infrastrukt\u00far\u00e1ja, vagy ha jelent\u0151sen elt\u00e9r a mi\u00e9nkt\u0151l. <\/p>\n<p>Tov\u00e1bbra is fontos a k\u00e9r\u00e9sek sebess\u00e9ge az \u00fczlet szempontj\u00e1b\u00f3l. M\u00e9g a legegyszer\u0171bb szolg\u00e1ltat\u00e1s eset\u00e9n is v\u00e1lasztani kell: a \u201efelh\u0151\u201d szolg\u00e1ltat\u00f3k, a szerverek elhelyezked\u00e9se, a CDN \u00e9s a DNS szolg\u00e1ltat\u00f3k k\u00f6z\u00f6tt. Az \u00f6n v\u00e1laszt\u00e1sa befoly\u00e1solni fogja az internetes k\u00e9r\u00e9sek hat\u00e9konys\u00e1g\u00e1t az \u00fcgyfelei sz\u00e1m\u00e1ra. Fontos, hogy ezt a hat\u00e1st m\u00e9rje \u00e9s meg\u00e9rtse.<\/p>\n<p>Kezdje egyszer\u0171 megold\u00e1sokkal, figyeljen arra, hogyan v\u00e1ltoztatja meg a term\u00e9ket. Tanuljon a folyamat sor\u00e1n, \u00e9s finom\u00edtsa a rendszert az \u00fcgyfeleit\u0151l, az infrastrukt\u00far\u00e1j\u00e1t\u00f3l \u00e9s az \u00fczlet\u00e9t\u0151l sz\u00e1rmaz\u00f3 adatok alapj\u00e1n. Gondoljon az el\u0151re nem l\u00e1that\u00f3 hib\u00e1k lehet\u0151s\u00e9g\u00e9re a tervez\u00e9s sor\u00e1n. \u00cdgy felgyors\u00edthatja a fejleszt\u00e9si folyamat\u00e1t, jav\u00edthatja a megold\u00e1s hat\u00e9konys\u00e1g\u00e1t, elker\u00fclheti a t\u00falzott t\u00e1mogat\u00e1si terhet, \u00e9s nyugodtan alhat.<\/p>\n<blockquote><p>Id\u00e9n <noindex><a rel=\"nofollow\" href=\"http:\/\/devoops-moscow.ru\/?utm_source=habr&amp;utm_medium=506106\">a konferencia j\u00falius 6-t\u00f3l 10-ig tart.<\/a><\/noindex> online form\u00e1tumban. K\u00e9rd\u00e9seket lehet feltenni a DevOps aty\u00e1inak egyik\u00e9nek, mag\u00e1nak John Willisonak!<\/p><\/blockquote>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/506106\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Netflix \u2014 \u043b\u0438\u0434\u0435\u0440 \u0440\u044b\u043d\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u044f \u2014 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u0432\u0448\u0430\u044f \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u044d\u0442\u043e\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442. Netflix \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u043a\u0438\u043d\u043e \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441 \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0443\u0433\u043e\u043b\u043a\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c, \u043d\u043e \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u043e\u0439. \u041d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Netflix \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 DevOops 2019 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84877,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84876","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Netflix \u2014 \u043b\u0438\u0434\u0435\u0440 \u0440\u044b\u043d\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u044f \u2014.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u0441\u043f\u0438\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Netflix \u2014 \u043b\u0438\u0434\u0435\u0440 \u0440\u044b\u043d\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u044f \u2014.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-11T11:43:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-11T11:43:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Felgyors\u00edtjuk az internetes k\u00e9r\u00e9seket \u00e9s nyugodtan alszunk | ProHoster","description":"A Netflix az internetes telev\u00edzi\u00f3z\u00e1s piacvezet\u0151je.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u0441\u043f\u0438\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e | ProHoster","og:description":"Netflix \u2014 \u043b\u0438\u0434\u0435\u0440 \u0440\u044b\u043d\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u044f \u2014.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-11T11:43:18+00:00","article:modified_time":"2020-06-11T11:43:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84876","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:48:22","updated":"2022-09-27 23:34:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/84876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=84876"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/84876\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/84877"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=84876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=84876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=84876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}