{"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\/sq\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno","title":{"rendered":"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/07e2e32d406b8b5d6d6cb3f627a31c3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNetflix \u00ebsht\u00eb lideri i tregut t\u00eb televizionit n\u00eb internet, kompania q\u00eb e krijoi dhe e zhvillon aktivisht k\u00ebt\u00eb segment. Netflix \u00ebsht\u00eb i njohur jo vet\u00ebm p\u00ebr katalogun e gjer\u00eb t\u00eb filmave dhe serive, t\u00eb disponuesh\u00ebm nga pothuajse \u00e7do k\u00ebnd t\u00eb planetit dhe \u00e7do pajisje me ekran, por edhe p\u00ebr infrastrukturen e besueshme dhe kultur\u00ebn unike inxhinierike. <\/p>\n<p>Nj\u00eb shembull i qart\u00eb i qasjes s\u00eb Netflix n\u00eb zhvillimin dhe mb\u00ebshtetjen e sistemeve t\u00eb komplikuara n\u00eb DevOops 2019 \u00ebsht\u00eb paraqitur nga <noindex><a rel=\"nofollow\" href=\"https:\/\/sfedov.com\">Sergjio Fedorov<\/a><\/noindex> \u2014 drejtor i zhvillimit n\u00eb Netflix. Diplomuar n\u00eb Fakultetin e Shkencave Natyrore t\u00eb Universitetit t\u00eb Nizhny Novgorod, Sergei \u00ebsht\u00eb nj\u00eb nga inxhinier\u00ebt e par\u00eb n\u00eb Open Connect \u2014 ekipin CDN n\u00eb Netflix. Ai ndihmoi n\u00eb nd\u00ebrtimin e sistemeve t\u00eb monitorimit dhe analiz\u00ebs s\u00eb t\u00eb dh\u00ebnave t\u00eb videove, lan\u00e7ooi sh\u00ebrbimin e njohur p\u00ebr vler\u00ebsimin e shpejt\u00ebsis\u00eb s\u00eb lidhjes n\u00eb internet FAST.com dhe gjat\u00eb disa viteve t\u00eb fundit ka punuar p\u00ebr optimizimin e k\u00ebrkesave n\u00eb internet, p\u00ebr t\u00eb b\u00ebr\u00eb q\u00eb aplikacioni Netflix t\u00eb funksionoj\u00eb sa m\u00eb shpejt p\u00ebr p\u00ebrdoruesit.<\/p>\n<p>Diskutimi mori komente t\u00eb shk\u00eblqyera nga pjes\u00ebmarr\u00ebsit e konferenc\u00ebs, dhe ne kemi p\u00ebrgatitur nj\u00eb version t\u00eb shkruar p\u00ebr ju.<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=\"Luaj videon\" 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>N\u00eb diskutim, Sergei tregoi holl\u00ebsisht<\/h2>\n<p><\/p>\n<ul>\n<li>\u00e7far\u00eb ndikon n\u00eb vones\u00ebn e k\u00ebrkesave n\u00eb internet mes klientit dhe serverit;<\/li>\n<li>si t\u00eb reduktoni k\u00ebt\u00eb vones\u00eb;<\/li>\n<li>si t\u00eb projektoni, mbani dhe monitoroni sistemi q\u00eb jan\u00eb t\u00eb q\u00ebndruesh\u00ebm ndaj gabimeve;<\/li>\n<li>si t\u00eb arrini rezultate n\u00eb koh\u00eb t\u00eb shkurt\u00ebr dhe me rrezik minimal p\u00ebr biznesin;<\/li>\n<li>si t\u00eb analizoni rezultatet dhe t\u00eb m\u00ebsoni nga gabimet.<\/li>\n<\/ul>\n<p>\nP\u00ebrgjigjet n\u00eb k\u00ebto pyetje jan\u00eb t\u00eb nevojshme jo vet\u00ebm p\u00ebr ata q\u00eb punojn\u00eb n\u00eb korporata t\u00eb m\u00ebdha. <\/p>\n<p>Parimet dhe teknikat e paraqitura duhet t'i dij\u00eb dhe t'i praktikoj\u00eb \u00e7do nj\u00ebri q\u00eb zhvillon dhe mban produkte n\u00eb internet.<\/p>\n<p><b>M\u00eb posht\u00eb \u2014 nj\u00eb tregim nga pik\u00ebpamja e fol\u00ebsit.<\/b><\/p>\n<h2>R\u00ebnd\u00ebsia e shpejt\u00ebsis\u00eb s\u00eb internetit<\/h2>\n<p>\nShpejt\u00ebsia e k\u00ebrkesave n\u00eb internet \u00ebsht\u00eb direkt e lidhur me biznesin. Le t\u00eb shqyrtojm\u00eb fush\u00ebn e tregtis\u00eb: kompania Amazon n\u00eb vitin 2009 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gigaspaces.com\/blog\/amazon-found-every-100ms-of-latency-cost-them-1-in-sales\/\">tha<\/a><\/noindex>, q\u00eb nj\u00eb vones\u00eb prej 100 ms shkakton humbjen e 1% t\u00eb shitjeve.<\/p>\n<p>Po rritet numri i pajisjeve mobile, dhe si pasoj\u00eb, i faqeve dhe aplikacioneve mobile. N\u00ebse faqja juaj ngarkohet m\u00eb gjat\u00eb se 3 sekonda, humbni rreth gjysm\u00ebn e p\u00ebrdoruesve. Nga <noindex><a rel=\"nofollow\" href=\"https:\/\/webmasters.googleblog.com\/2018\/01\/using-page-speed-in-mobile-search.html\">qershori 2018<\/a><\/noindex> Google merr parasysh shpejt\u00ebsin\u00eb e ngarkimit t\u00eb faqes tuaj n\u00eb rezultatet e k\u00ebrkimit: sa m\u00eb shpejt t\u00eb jet\u00eb faqja, aq m\u00eb lart\u00eb \u00ebsht\u00eb pozita e saj n\u00eb Google.<\/p>\n<p>Shpejt\u00ebsia e lidhjes \u00ebsht\u00eb gjithashtu e r\u00ebnd\u00ebsishme n\u00eb organizatat financiare, ku vonesa \u00ebsht\u00eb kritike. N\u00eb vitin 2015, kompania 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\">p\u00ebrfundoi<\/a><\/noindex> kabllin e kabllit midis Nju Jorkut dhe Londr\u00ebs me nj\u00eb \u00e7mim prej 400 milion dollar\u00ebsh, p\u00ebr t\u00eb reduktuar vones\u00ebn midis qyteteve me 6 ms. Imagjinoni, 66 milion dollar\u00eb p\u00ebr 1 ms reduktim vonese!<\/p>\n<p>Sipas <noindex><a rel=\"nofollow\" href=\"https:\/\/hpbn.co\/primer-on-web-performance\/\">hulumtimi<\/a><\/noindex>, shpejt\u00ebsia e lidhjes mbi 5 Mbps ndalon t\u00eb ndikoj\u00eb drejtp\u00ebrdrejt n\u00eb shpejt\u00ebsin\u00eb e ngarkes\u00ebs s\u00eb nj\u00eb faqeje tipike. Megjithat\u00eb, ekziston nj\u00eb var\u00ebsi lineare midis vones\u00ebs s\u00eb lidhjes dhe shpejt\u00ebsis\u00eb s\u00eb ngarkes\u00ebs s\u00eb faqes:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/340ca1f2c5bdd6ca95a5caf02f67e3fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMegjithat\u00eb, Netflix nuk \u00ebsht\u00eb nj\u00eb produkt tipik. Ndikimi i vones\u00ebs dhe shpejt\u00ebsis\u00eb te p\u00ebrdoruesi \u00ebsht\u00eb nj\u00eb fush\u00eb aktive analize dhe zhvillimi. Ka ngarkes\u00eb aplikacionesh dhe zgjedhje p\u00ebrmbajtjeje, q\u00eb varen nga vonesa, por ngarkesat e elementeve statike dhe transmetimi gjithashtu varen nga shpejt\u00ebsia e lidhjes. Analiza dhe optimizimi i faktor\u00ebve ky\u00e7 q\u00eb ndikojn\u00eb n\u00eb cil\u00ebsin\u00eb e sh\u00ebrbimit p\u00ebr p\u00ebrdoruesin, \u00ebsht\u00eb nj\u00eb sfer\u00eb aktive zhvillimi p\u00ebr disa ekipe n\u00eb Netflix. Nj\u00eb nga objektivat \u00ebsht\u00eb reduktimi i vones\u00ebs s\u00eb k\u00ebrkesave midis pajisjeve Netflix dhe infrastruktur\u00ebs n\u00eb cloud.<\/p>\n<p>N\u00eb k\u00ebt\u00eb raport ne do t\u00eb fokusohemi pik\u00ebrisht n\u00eb reduktimin e vones\u00ebs (latency) duke marr\u00eb si shembull infrastruktur\u00ebn e Netflix. Do t\u00eb shikojm\u00eb nga nj\u00eb k\u00ebndv\u00ebshtrim praktik se si t'i qasemi proceseve t\u00eb projektimit, zhvillimit dhe operimit t\u00eb sistemeve t\u00eb shp\u00ebrndara komplekse dhe t\u00eb shpenzojm\u00eb koh\u00eb n\u00eb inovacione dhe rezultate, e jo n\u00eb diagnostikimin e problemeve operative dhe prishjeve.<\/p>\n<h2>Brenda Netflix<\/h2>\n<p>\nMij\u00ebra pajisje t\u00eb ndryshme mb\u00ebshtesin aplikacionet e Netflix. Zhvillimi i tyre b\u00ebhet nga kat\u00ebr ekipe t\u00eb ndryshme, t\u00eb cilat krijojn\u00eb versione t\u00eb ve\u00e7anta t\u00eb klientit p\u00ebr Android, iOS, TV dhe shfletuesin web. Dhe ne kemi shpenzuar shum\u00eb energji p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar dhe personalizuar nd\u00ebrfaqen e p\u00ebrdoruesit. P\u00ebr k\u00ebt\u00eb, ne realizojm\u00eb paralelisht qindra teste A\/B.<\/p>\n<p>Personalizimi mb\u00ebshtetet nga qindra mikrosh\u00ebrbimesh n\u00eb cloud AWS, q\u00eb ofrojn\u00eb t\u00eb dh\u00ebna t\u00eb personalizuara p\u00ebr p\u00ebrdoruesin, menaxhimin e k\u00ebrkesave, telemetrin\u00eb, Big Data dhe Encoding. Vizualizimi i trafik\u00ebve duket k\u00ebshtu:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/n7Te9WIz1ho?t=364\">Lidhja p\u00ebr videon me demostrimin (6:04-6:23)<\/a><\/noindex><\/p>\n<p>N\u00eb majtas \u00ebsht\u00eb pika e hyrjes, dhe pastaj trafiku shp\u00ebrndahet midis disa qindra mikrosh\u00ebrbimeve, t\u00eb cilat mb\u00ebshteten nga ekipe t\u00eb ndryshme backend.<\/p>\n<p>Nj\u00eb komponent tjet\u00ebr i r\u00ebnd\u00ebsish\u00ebm i infrastruktur\u00ebs ton\u00eb \u00ebsht\u00eb Open Connect CDN, i cili shp\u00ebrndan p\u00ebrmbajtjen statike te p\u00ebrdoruesi p\u00ebrfundimtar \u2014 video, imazhe, kode p\u00ebr klient\u00ebt etj. CDN \u00ebsht\u00eb vendosur n\u00eb server\u00eb t\u00eb personalizuar (OCA \u2014 Open Connect Appliance). Brenda saj ka grupe SSD dhe HDD n\u00ebn menaxhimin e FreeBSD t\u00eb optimizuar, me NGINX dhe nj\u00eb set sh\u00ebrbimesh. Ne projektojm\u00eb dhe optimizojm\u00eb komponent\u00ebt harduerik\u00eb dhe softuerik\u00eb n\u00eb m\u00ebnyr\u00eb q\u00eb nj\u00eb server CDN t\u00eb mund t\u00eb d\u00ebrgoj\u00eb sa m\u00eb shum\u00eb t\u00eb dh\u00ebna te p\u00ebrdoruesit. <\/p>\n<p>\u00abMuri\u00bb i k\u00ebtyre server\u00ebve n\u00eb pik\u00ebn e shk\u00ebmbimit t\u00eb trafikut internet (Internet eXchange \u2014 IX), duket k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/8155601c344acb1eb05b925193af8f9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nInternet Exchange ofron mund\u00ebsin\u00eb q\u00eb ofruesit e internetit dhe ofruesit e p\u00ebrmbajtjes t\u00eb \u00ablidhen\u00bb me nj\u00ebri-tjetrin p\u00ebr shk\u00ebmbim m\u00eb t\u00eb drejtp\u00ebrdrejt t\u00eb t\u00eb dh\u00ebnave n\u00eb internet. N\u00eb t\u00eb gjith\u00eb bot\u00ebn ka rreth 70-80 pika Internet Exchange, ku jan\u00eb instaluar server\u00ebt tan\u00eb, dhe ne merremi vet\u00eb me instalimin dhe mir\u00ebmbajtjen e tyre:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/77a2465314e47c0b2c90dbf7a2fb5e6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebrve\u00e7 k\u00ebsaj, ne gjithashtu ofrojm\u00eb server\u00eb drejtp\u00ebrdrejt p\u00ebr ofruesit e internetit, t\u00eb cil\u00ebt i instalojn\u00eb n\u00eb rrjetin e tyre, duke p\u00ebrmir\u00ebsuar lokalizimin e trafikut t\u00eb Netflix dhe cil\u00ebsin\u00eb e transmetimit p\u00ebr p\u00ebrdoruesit:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/63e077d2649bfafea5c7af43a0faaf85.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGrupi i sh\u00ebrbimeve AWS \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr menaxhimin e k\u00ebrkesave p\u00ebr video nga klient\u00ebt te server\u00ebt CDN, si dhe konfigurimin e vet\u00eb server\u00ebve \u2014 p\u00ebrdit\u00ebsimi i p\u00ebrmbajtjes, kodit t\u00eb programit, konfigurimeve etj. P\u00ebr k\u00ebt\u00eb t\u00eb fundit, ne gjithashtu nd\u00ebrtuam nj\u00eb rrjet backbone, i cili lidh server\u00ebt n\u00eb pikat e Internet Exchange me AWS. Rrjeti backbone p\u00ebrb\u00ebn nj\u00eb rrjet global kabllor me fibra optike dhe routera, t\u00eb cil\u00ebt mund t\u2019i projektojm\u00eb dhe konfigurim sipas nevojave tona.<\/p>\n<p>Sipas <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sandvine.com\/hubfs\/Sandvine_Redesign_2019\/Downloads\/Internet%20Phenomena\/Internet%20Phenomena%20Report%20Q32019%2020190910.pdf\">vler\u00ebsimeve Sandvine<\/a><\/noindex>, infrastruktura jon\u00eb CDN d\u00ebrgon n\u00eb or\u00ebt e pikut rreth \u215b e trafikut global t\u00eb internetit dhe \u2153 t\u00eb trafikut n\u00eb Amerik\u00ebn e Veriut, ku Netflix \u00ebsht\u00eb i pranish\u00ebm m\u00eb shum\u00eb koh\u00eb. Numra mbres\u00ebl\u00ebn\u00ebs, por p\u00ebr mua nj\u00eb nga arritjet m\u00eb t\u00eb habitshme \u00ebsht\u00eb se e gjith\u00eb sistemi CDN \u00ebsht\u00eb e zhvilluar dhe mbajtur nga nj\u00eb ekip prej m\u00eb pak se 150 personash.<\/p>\n<p>N\u00eb fillim, infrastruktura CDN ishte projektuar p\u00ebr t\u00eb d\u00ebrguar t\u00eb dh\u00ebnat video. Megjithat\u00eb, me kalimin e koh\u00ebs ne e kuptuam se mund ta p\u00ebrdorim at\u00eb gjithashtu p\u00ebr optimizimin e k\u00ebrkesave dinamike nga klient\u00ebt n\u00eb cloud-in AWS.<\/p>\n<h2>P\u00ebr p\u00ebrshpejtimin e internetit<\/h2>\n<p>\nSot ndodhet Netflix n\u00eb 3 rajone AWS, dhe vonesa e k\u00ebrkesave n\u00eb nube do t\u00eb varet nga sa larg ndodhet klienti nga rajoni m\u00eb i af\u00ebrt. Megjithat\u00eb, ne kemi shum\u00eb server\u00eb CDN, q\u00eb p\u00ebrdoren p\u00ebr shp\u00ebrndarjen e p\u00ebrmbajtjes statike. A mund ta p\u00ebrdorim ndonj\u00eb m\u00ebnyr\u00eb k\u00ebt\u00eb infrastruktur\u00eb p\u00ebr t\u00eb p\u00ebrshpejtuar k\u00ebrkesat dinamike? Megjithat\u00eb, me keqardhje, nuk mund t\u00eb keqinterpretohen k\u00ebto k\u00ebrkesa \u2014 API-t\u00eb jan\u00eb t\u00eb personalizuara dhe \u00e7do rezultat \u00ebsht\u00eb unik.<\/p>\n<p>Le t\u00eb b\u00ebjm\u00eb nj\u00eb proxy n\u00eb serverin CDN dhe t\u00eb fillojm\u00eb t\u00eb kalojm\u00eb trafik p\u00ebrmes tij. A do t\u00eb jet\u00eb kjo m\u00eb e shpejt\u00eb?<\/p>\n<h2>Materiali<\/h2>\n<p>\nLe t\u00eb rikujtojm\u00eb se si funksionojn\u00eb protokollet rrjetike. Sot, pjesa m\u00eb e madhe e trafikut n\u00eb internet p\u00ebrdor HTTPs, q\u00eb varet nga protokollet e nivelit t\u00eb posht\u00ebm TCP dhe TLS. P\u00ebr t\u00eb lidhur klientin me serverin, ai b\u00ebn nj\u00eb handshake, dhe p\u00ebr t\u00eb vendosur nj\u00eb lidhje t\u00eb sigurt, klienti duhet t\u00eb shk\u00ebmbej\u00eb mesazhe me serverin tre her\u00eb dhe m\u00eb pas s\u00eb paku nj\u00eb her\u00eb tjet\u00ebr p\u00ebr t\u00eb transferuar t\u00eb dh\u00ebnat. Me nj\u00eb vones\u00eb p\u00ebr nj\u00eb shk\u00ebmbim (RTT) prej 100 ms, do t\u00eb na duhen 400 ms p\u00ebr t\u00eb marr\u00eb bitin e par\u00eb t\u00eb t\u00eb dh\u00ebnave:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/ab12024f5a9940ca470f27821ca3c631.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00ebse certifikatat e vendosim n\u00eb serverin CDN, at\u00ebher\u00eb koha e \"ruppozit\" midis klientit dhe serverit mund t\u00eb shkurtohet ndjesh\u00ebm, n\u00ebse CDN \u00ebsht\u00eb m\u00eb af\u00ebr. Le t\u00eb supozojm\u00eb se vonesa deri n\u00eb serverin CDN \u00ebsht\u00eb 30 ms. At\u00ebher\u00eb, p\u00ebr t\u00eb marr\u00eb bitin e par\u00eb do t\u00eb k\u00ebrkohen tashm\u00eb 220 ms:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/d63134bb51592aaa6a5e0c86f1a070e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPor avantazhet nuk p\u00ebrfundojn\u00eb k\u00ebtu. Pasi lidhja \u00ebsht\u00eb vendosur, TCP rrit dritaren e trafikimit (sasia e informacionit q\u00eb mund t\u00eb transmetohet p\u00ebrmes k\u00ebsaj lidhjeje n\u00eb parallel). N\u00ebse humbet nj\u00eb paket\u00eb t\u00eb dh\u00ebnash, zbatimet klasike t\u00eb protokollit TCP (si TCP New Reno) e zvog\u00eblojn\u00eb dritaren e hapur me gjysm\u00eb. Rritja e dritares s\u00eb trafikimit dhe shpejt\u00ebsia e rim\u00ebk\u00ebmbjes nga humbja p\u00ebrs\u00ebri varet nga vonesa (RTT) deri n\u00eb server. N\u00ebse kjo lidhje shkon vet\u00ebm deri n\u00eb serverin CDN, kjo rim\u00ebk\u00ebmbje do t\u00eb jet\u00eb m\u00eb e shpejt\u00eb. N\u00eb k\u00ebt\u00eb rast, humbja e paketave \u00ebsht\u00eb nj\u00eb fenomen standard, ve\u00e7an\u00ebrisht p\u00ebr rrjetet wireless.<\/p>\n<p>Kapaciteti i internetit mund t\u00eb ulen, ve\u00e7an\u00ebrisht n\u00eb or\u00ebt e pikut p\u00ebr shkak t\u00eb trafikut nga p\u00ebrdoruesit, gj\u00eb q\u00eb mund t\u00eb \u00e7oj\u00eb n\u00eb \"t\u00eb ngjeshura\". N\u00eb k\u00ebt\u00eb rast, nuk ka m\u00ebnyr\u00eb n\u00eb internet p\u00ebr t\u00eb dh\u00ebn\u00eb prioritet disa k\u00ebrkesave n\u00eb krahasim me t\u00eb tjerat. P\u00ebr shembull, p\u00ebr t\u00eb dh\u00ebn\u00eb prioritet k\u00ebrkesave t\u00eb vogla n\u00eb volum dhe t\u00eb ndjeshme ndaj vones\u00ebs n\u00eb krahasim me \"rrjedhat e m\u00ebdha\" t\u00eb t\u00eb dh\u00ebnave, t\u00eb cilat e ngarkojn\u00eb rrjetin. Megjithat\u00eb, n\u00eb rastin ton\u00eb, prania e nj\u00eb rjeti backbone t\u00eb vetin e b\u00ebn k\u00ebt\u00eb t\u00eb mundur n\u00eb nj\u00eb pjes\u00eb t\u00eb rrug\u00ebs s\u00eb k\u00ebrkes\u00ebs \u2014 mes CDN dhe cloud-it, dhe ne mund ta konfigurojm\u00eb plot\u00ebsisht at\u00eb. Mund t\u00eb b\u00ebjm\u00eb n\u00eb m\u00ebnyr\u00eb q\u00eb paketat e vogla dhe t\u00eb ndjeshme ndaj vones\u00ebs t\u00eb ken\u00eb prioritet, nd\u00ebrsa rrjedhat e m\u00ebdha t\u00eb t\u00eb dh\u00ebnave t\u00eb shkojn\u00eb pak m\u00eb von\u00eb. Sa m\u00eb af\u00ebrt t\u00eb jet\u00eb CDN me klientin, aq m\u00eb e madhe \u00ebsht\u00eb efikasiteti.<\/p>\n<p>Nj\u00eb tjet\u00ebr ndikim mbi vones\u00ebn kan\u00eb protokollet e nivelit t\u00eb aplikacionit (OSI Nivel 7). Protokolle t\u00eb reja, si HTTP\/2, lejojn\u00eb optimizimin e performanc\u00ebs s\u00eb k\u00ebrkesave paralele. Megjithat\u00eb, kemi Netflix si klient\u00eb me pajisje t\u00eb vjetra q\u00eb nuk mb\u00ebshtesin protokollet e reja. Jo t\u00eb gjith\u00eb klient\u00ebt mund t\u00eb p\u00ebrdit\u00ebsohen ose t\u00eb konfigurohen n\u00eb m\u00ebnyr\u00eb optimale. N\u00eb k\u00ebt\u00eb rast, mes CDN proxy dhe cloud-it \u2014 \u00ebsht\u00eb kontrolli i plot\u00eb dhe mund\u00ebsia p\u00ebr t\u00eb p\u00ebrdorur protokollet dhe konfigurimet m\u00eb t\u00eb reja dhe optimale. Pjesa joefikase me protokollet e vjetra do t\u00eb funksionoj\u00eb vet\u00ebm mes klientit dhe serverit CDN. M\u00eb shum\u00eb se kaq, ne mund t\u00eb b\u00ebjm\u00eb multiplexing t\u00eb k\u00ebrkesave n\u00eb nj\u00eb lidhje tashm\u00eb t\u00eb vendosur mes CDN dhe cloud-it, duke p\u00ebrmir\u00ebsuar shfryt\u00ebzimin e lidhjes n\u00eb nivelin TCP:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/a05b49680734670dcfce9111f3ba1919.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>T\u00eb masim<\/h2>\n<p>\nMegjith\u00ebse teoria premton p\u00ebrmir\u00ebsime, ne nuk shkojm\u00eb menj\u00ebher\u00eb p\u00ebr t\u00eb lan\u00e7uar sistemin n\u00eb production. N\u00eb vend t\u00eb k\u00ebsaj, duhet s\u00eb pari t\u00eb d\u00ebshmojm\u00eb se ideja do t\u00eb funksionoj\u00eb n\u00eb praktik\u00eb. P\u00ebr k\u00ebt\u00eb, duhet t\u00eb p\u00ebrgjigjemi ndaj disa pyetjeve:<\/p>\n<ul>\n<li><b>Shpejt\u00ebsia<\/b>: A do t\u00eb jet\u00eb proxy m\u00eb i shpejt\u00eb?<\/li>\n<li><b>Besueshm\u00ebria<\/b>: A do t\u00eb d\u00ebshtoj\u00eb m\u00eb shpesh?<\/li>\n<li><b>Kompleksiteti<\/b>: Si t\u00eb integrohet me aplikacionet?<\/li>\n<li><b>\u00c7mimi<\/b>: Sa kushton vendosja e infrastruktur\u00ebs shtes\u00eb?<\/li>\n<\/ul>\n<p>\nLe t\u00eb shqyrtojm\u00eb me kujdes qasjen ton\u00eb ndaj vler\u00ebsimit t\u00eb pik\u00ebs s\u00eb par\u00eb. Pikat e tjera shqyrtohen n\u00eb m\u00ebnyr\u00eb t\u00eb ngjashme.<\/p>\n<p>P\u00ebr t\u00eb analizuar shpejt\u00ebsin\u00eb e k\u00ebrkesave, duam t\u00eb marim t\u00eb dh\u00ebna p\u00ebr t\u00eb gjith\u00eb p\u00ebrdoruesit, pa shpenzuar shum\u00eb koh\u00eb n\u00eb zhvillim dhe pa prishur production. P\u00ebr k\u00ebt\u00eb, ka disa qasje:<\/p>\n<ol>\n<li>RUM, ose matja pasive e k\u00ebrkesave. Ne matim koh\u00ebn e ekzekutimit t\u00eb k\u00ebrkesave aktuale nga p\u00ebrdoruesit dhe sigurojm\u00eb mbulimin e plot\u00eb t\u00eb p\u00ebrdoruesve. Disavantazhi \u00ebsht\u00eb se sinjali nuk \u00ebsht\u00eb shum\u00eb stabil p\u00ebr shkak t\u00eb shum\u00eb faktor\u00ebve, si\u00e7 jan\u00eb madh\u00ebsit\u00eb e ndryshme t\u00eb k\u00ebrkesave, koha e p\u00ebrpunimit n\u00eb server dhe klient. P\u00ebrve\u00e7 k\u00ebsaj, nuk \u00ebsht\u00eb e mundur t\u00eb testohet nj\u00eb konfigurim i ri pa ndikuar n\u00eb prodhim.<\/li>\n<li>Testet laboratorike. Server\u00eb dhe infrastruktur\u00eb t\u00eb posa\u00e7me q\u00eb simulojn\u00eb klient\u00ebt. Me ndihm\u00ebn e tyre kryejm\u00eb testet e nevojshme. K\u00ebshtu marrim kontroll t\u00eb plot\u00eb mbi rezultatet e matjeve dhe nj\u00eb sinjal t\u00eb qart\u00eb. Megjithat\u00eb, nuk kemi nj\u00eb mbulim t\u00eb plot\u00eb t\u00eb pajisjeve dhe vendndodhjes s\u00eb p\u00ebrdoruesve (sidomos me sh\u00ebrbime t\u00eb gjith\u00eb bot\u00ebs dhe mb\u00ebshtetje p\u00ebr mij\u00ebra modele pajisjesh).<\/li>\n<\/ol>\n<p>\nSi mund t\u00eb bashkojm\u00eb p\u00ebrfitimet e t\u00eb dy metodave?<\/p>\n<p>Ekipi yn\u00eb gjeti nj\u00eb zgjidhje. Ne shkruam nj\u00eb cop\u00eb kod \u2014 nj\u00eb most\u00ebr \u2014 t\u00eb cil\u00ebn e integrom\u00eb n\u00eb aplikacionin ton\u00eb. Mostrat na lejojn\u00eb t\u00eb b\u00ebjm\u00eb teste rrjetesh plot\u00ebsisht t\u00eb kontrolluara nga pajisjet tona. K\u00ebshtu funksionon: <\/p>\n<ol>\n<li>Shpejt pas ngarkimit t\u00eb aplikacionit dhe p\u00ebrfundimit t\u00eb aktiviteteve fillestare, ne aktivizojm\u00eb mostr\u00ebn ton\u00eb. <\/li>\n<li>Klienti b\u00ebn nj\u00eb k\u00ebrkes\u00eb n\u00eb server dhe merr nj\u00eb \"recet\u00eb\" testi. Receta p\u00ebrb\u00ebhet nga nj\u00eb list\u00eb URL-esh, p\u00ebr t\u00eb cilat duhet t\u00eb b\u00ebjm\u00eb nj\u00eb k\u00ebrkes\u00eb HTTP(s). P\u00ebrve\u00e7 k\u00ebsaj, receta konfiguron parametrat e k\u00ebrkesave: vonesat midis k\u00ebrkesave, volumet e t\u00eb dh\u00ebnave t\u00eb k\u00ebrkuara, HTTP(s) headers, etj. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, ne mund t\u00eb testojm\u00eb disa receta t\u00eb ndryshme paralelisht \u2014 gjat\u00eb k\u00ebrkes\u00ebs p\u00ebr konfigurimin ne p\u00ebrzgjidhen rast\u00ebsisht se cila recet\u00eb do t'u jepet. <\/li>\n<li>Koha e aktivizimit t\u00eb mostr\u00ebs zgjidhet n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mos krijohet konflikt me p\u00ebrdorimin aktiv t\u00eb burimeve rrjetore nga klienti. N\u00eb thelb, zgjedhim nj\u00eb koh\u00eb kur klienti nuk \u00ebsht\u00eb aktiv.<\/li>\n<li>Pas marrjes s\u00eb recet\u00ebs, klienti b\u00ebn k\u00ebrkesa n\u00eb secil\u00ebn nga URL-t\u00eb, paralelisht. K\u00ebrkesa n\u00eb secil\u00ebn adres\u00eb mund t\u00eb p\u00ebrs\u00ebritet \u2014 t\u00eb ashtuquajturat \"pulsa\". N\u00eb pulsin e par\u00eb matim se sa koh\u00eb ka marr\u00eb p\u00ebr t\u00eb vendosur lidhjen dhe shkarkuar t\u00eb dh\u00ebnat. N\u00eb pulsin e dyt\u00eb matim koh\u00ebn e ngarkimit t\u00eb t\u00eb dh\u00ebnave p\u00ebrmes lidhjes tashm\u00eb t\u00eb vendosur. Para pulsin t\u00eb tret\u00eb, ne mund t\u00eb vendosim nj\u00eb vones\u00eb dhe t\u00eb matim shpejt\u00ebsin\u00eb e vendosjes s\u00eb lidhjes s\u00eb rip\u00ebrs\u00ebritur etj.\n<p>Gjat\u00eb testit ne masim t\u00eb gjitha parametrat q\u00eb mund t\u00eb marr\u00eb pajisja:<\/p>\n<ul>\n<li>koha e k\u00ebrkes\u00ebs DNS;<\/li>\n<li>koha e vendosjes s\u00eb lidhjes TCP;<\/li>\n<li>koha e vendosjes s\u00eb lidhjes TLS;<\/li>\n<li>koha p\u00ebr t\u00eb marr\u00eb bajtin e par\u00eb t\u00eb t\u00eb dh\u00ebnave;<\/li>\n<li>koha totale e ngarkes\u00ebs;<\/li>\n<li>statusi i kodit t\u00eb rezultatit.<\/li>\n<\/ul>\n<\/li>\n<li> Pas p\u00ebrfundimit t\u00eb t\u00eb gjitha impulsave, proba ngarkon rezultatet e t\u00eb gjitha matjeve p\u00ebr analiz\u00eb.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/fff11d487b7c7725707cdeeca0734296.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPikat kryesore jan\u00eb var\u00ebsia minimale nga logjika n\u00eb klient, p\u00ebrpunimi i t\u00eb dh\u00ebnave n\u00eb server dhe matja e k\u00ebrkesave paralele. K\u00ebshtu, ne fitojm\u00eb mund\u00ebsin\u00eb t\u00eb izolojm\u00eb dhe t\u00eb testojm\u00eb ndikimin e faktor\u00ebve t\u00eb ndrysh\u00ebm q\u00eb ndikojn\u00eb n\u00eb performanc\u00ebn e k\u00ebrkesave, t'i ndryshojm\u00eb ato brenda nj\u00eb recete, dhe t\u00eb marrim rezultate nga klient\u00eb t\u00eb v\u00ebrtet\u00eb.<\/p>\n<p>Kjo infrastruktur\u00eb ka provuar t\u00eb jet\u00eb e dobishme jo vet\u00ebm p\u00ebr analiz\u00eb t\u00eb performanc\u00ebs s\u00eb k\u00ebrkesave. Aktualisht, ne kemi 14 receta aktive, m\u00eb shum\u00eb se 6000 proba n\u00eb sekond\u00eb, q\u00eb marrin t\u00eb dh\u00ebna nga t\u00eb gjitha cepet e bot\u00ebs dhe me mbulim t\u00eb plot\u00eb t\u00eb pajisjeve. N\u00ebse Netflix do t\u00eb blente nj\u00eb sh\u00ebrbim t\u00eb till\u00eb nga kompani t\u00eb jashtme, do t\u00eb kushtonte miliona dollar\u00eb n\u00eb vit, me mbulim shum\u00eb m\u00eb t\u00eb keq.<\/p>\n<h2>Kthejm\u00eb teorin\u00eb n\u00eb praktik\u00eb: prototipi<\/h2>\n<p>\nMe nj\u00eb sistem t\u00eb till\u00eb arrit\u00ebm t\u00eb vler\u00ebsojm\u00eb efikasitetin e proxy-s\u00eb CDN mbi vonesat e k\u00ebrkesave. Tani duhet:<\/p>\n<ul>\n<li>t\u00eb krijojm\u00eb nj\u00eb prototip proxy;<\/li>\n<li>t\u00eb vendosim prototipin n\u00eb CDN;<\/li>\n<li>t\u00eb p\u00ebrcaktojm\u00eb se si t\u2019i drejtojm\u00eb klient\u00ebt te proxy n\u00eb nj\u00eb server t\u00eb caktuar CDN;<\/li>\n<li>t\u00eb krahasojm\u00eb performanc\u00ebn me k\u00ebrkesat n\u00eb AWS pa proxy.<\/li>\n<\/ul>\n<p>\nDetyra \u00ebsht\u00eb t\u00eb vler\u00ebsojm\u00eb sa m\u00eb shpejt efikasitetin e zgjidhjes s\u00eb propozuar. P\u00ebr realizimin e prototipit zgjodh\u00ebm Go, fal\u00eb bibliotekave t\u00eb mira t\u00eb rrjetit. N\u00eb \u00e7do server CDN instaluam prototipin e proxy si nj\u00eb binar statik, p\u00ebr t\u00eb minimalizuar var\u00ebsit\u00eb dhe p\u00ebr t\u00eb thjeshtuar integrimin. N\u00eb realizimin fillestar p\u00ebrdor\u00ebm sa m\u00eb shum\u00eb q\u00eb mund\u00ebm komponent\u00ebt standard\u00eb dhe disa modifikime p\u00ebr pooling t\u00eb lidhjeve HTTP\/2 dhe shum\u00ebk\u00ebrkesa.<\/p>\n<p>P\u00ebr t\u00eb balancuar midis rajoneve t\u00eb AWS, ne p\u00ebrdor\u00ebm nj\u00eb baz\u00eb t\u00eb dh\u00ebnash gjeografike DNS, t\u00eb nj\u00ebjt\u00ebn q\u00eb p\u00ebrdoret p\u00ebr balancimin e klient\u00ebve. P\u00ebr t\u00eb zgjedhur serverin CDN p\u00ebr klientin, p\u00ebrdorim TCP Anycast p\u00ebr server\u00ebt n\u00eb Internet Exchange (IX). N\u00eb k\u00ebt\u00eb variant, ne p\u00ebrdorim nj\u00eb adres\u00eb IP p\u00ebr t\u00eb gjith\u00eb server\u00ebt CDN, duke e orientuar klientin drejt serverit CDN me numrin m\u00eb t\u00eb vog\u00ebl t\u00eb IP hops. N\u00eb server\u00ebt CDN t\u00eb vendosur tek ofruesit e internetit (ISP), ne nuk kemi kontroll mbi routerin p\u00ebr t\u00eb konfiguruar TCP Anycast, prandaj angazhojm\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/presentations\/netflix-streaming-arch\/\">t\u00eb nj\u00ebjt\u00ebn logjik\u00eb<\/a><\/noindex>, sipas s\u00eb cil\u00ebs klient\u00ebt orientohen te ofruesit e internetit p\u00ebr transmetim video.<\/p>\n<p>Pra, kemi tre lloje rrug\u00ebsh p\u00ebr k\u00ebrkes\u00ebn: n\u00eb cloud p\u00ebrmes internetit t\u00eb hapur, p\u00ebrmes serverit CDN n\u00eb IX, ose p\u00ebrmes serverit CDN t\u00eb vendosur te ofruesi i internetit. Q\u00ebllimi yn\u00eb \u00ebsht\u00eb t\u00eb kuptojm\u00eb cila rrug\u00eb \u00ebsht\u00eb m\u00eb e mir\u00eb dhe \u00e7far\u00eb dobie ka nga proksi, krahasuar me m\u00ebnyr\u00ebn se si k\u00ebrkesat jan\u00eb orientuar n\u00eb prodhim. P\u00ebr k\u00ebt\u00eb, p\u00ebrdorim sistemin e provave n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/51b64d5be0aaf0f141484ee0fd373396.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c7do nj\u00eb nga rrug\u00ebt b\u00ebhet nj\u00eb objektiv i ve\u00e7ant\u00eb, dhe ne shikojm\u00eb koh\u00ebn q\u00eb kemi arritur. P\u00ebr analiz\u00eb, bashkojm\u00eb rezultatet e proksit n\u00eb nj\u00eb grup (zgjedhim koh\u00ebn m\u00eb t\u00eb mir\u00eb midis proksit IX dhe ISP) dhe e krahasojm\u00eb me koh\u00ebn e k\u00ebrkesave n\u00eb cloud pa proksi:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/ec01690f6a312e61649282b0e6208778.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi\u00e7 duket, rezultatet ishin t\u00eb paqarta \u2014 n\u00eb shumic\u00ebn e rasteve, proksi ofron nj\u00eb p\u00ebrshpejtim t\u00eb mir\u00eb, por gjithashtu ka mjaft klient\u00eb p\u00ebr t\u00eb cil\u00ebt situata do t\u00eb p\u00ebrkeq\u00ebsohej ndjesh\u00ebm. <\/p>\n<p>Si rezultat, ne b\u00ebm\u00eb disa gj\u00ebra t\u00eb r\u00ebnd\u00ebsishme:<\/p>\n<ol>\n<li>Vler\u00ebsuam performanc\u00ebn e pritur t\u00eb k\u00ebrkesave nga klient\u00ebt n\u00eb cloud p\u00ebrmes proksit CDN.<\/li>\n<li>Morr\u00ebm t\u00eb dh\u00ebna nga klient\u00eb t\u00eb v\u00ebrtet\u00eb, nga t\u00eb gjitha llojet e pajisjeve.<\/li>\n<li>E kuptuam se teoria nuk u konfirmua 100% dhe propozimi fillestar me proksi CDN nuk funksionoi p\u00ebr ne.<\/li>\n<li>Nuk rrezikuam \u2014 nuk ndryshuam konfigurimet e prodhimit p\u00ebr klient\u00ebt.<\/li>\n<li>Nuk thyem asgj\u00eb. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Prototipi 2.0<\/h2>\n<p>\nPra, kthehemi n\u00eb tavolin\u00ebn e hartimit dhe p\u00ebrs\u00ebrisim procesin nga fillimi.<\/p>\n<p>Ideja \u00ebsht\u00eb q\u00eb, n\u00eb vend t\u00eb 100% proksit, p\u00ebr \u00e7do klient t\u00eb p\u00ebrcaktojm\u00eb rrug\u00ebn m\u00eb t\u00eb shpejt\u00eb dhe t\u00eb drejtojm\u00eb k\u00ebrkesat aty \u2014 dmth. do t\u00eb b\u00ebjm\u00eb at\u00eb q\u00eb quhet klienti orientimi.<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/780817f48a4d2b292d5545e0aa1ccc50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi e realizohet kjo? Ne nuk mund t\u00eb p\u00ebrdorim logjik\u00ebn n\u00eb an\u00ebn e serverit, pasi q\u00eb q\u00ebllimi \u00ebsht\u00eb t\u00eb lidhemi me k\u00ebt\u00eb server. Duhet ta b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb klient, dhe idealisht me sa m\u00eb pak logjik\u00eb komplekse q\u00eb t\u00eb mos kemi nevoj\u00eb t\u00eb zgjidhim \u00e7\u00ebshtjen e integrimit me nj\u00eb num\u00ebr t\u00eb madh platformash klient\u00ebsh. <\/p>\n<p>Zgjidhja \u00ebsht\u00eb p\u00ebrdorimi i DNS. N\u00eb rastin ton\u00eb, ne kemi infrastruktur\u00ebn ton\u00eb DNS dhe mund t\u00eb konfigurim zon\u00ebn domene p\u00ebr t\u00eb cil\u00ebn server\u00ebt tan\u00eb do t\u00eb jen\u00eb autoritar\u00eb. Kjo funksionon k\u00ebshtu:<\/p>\n<ol>\n<li>Klienti b\u00ebn nj\u00eb k\u00ebrkes\u00eb ndaj serverit DNS duke p\u00ebrdorur host-in, p\u00ebr shembull api.netflix.com.<\/li>\n<li>K\u00ebrkesa arrin n\u00eb serverin ton\u00eb DNS<\/li>\n<li>Serveri DNS e di se cili \u00ebsht\u00eb rrug\u00eb p\u00ebr k\u00ebt\u00eb klienti m\u00eb e shpejt\u00eb dhe jep adres\u00ebn p\u00ebrkat\u00ebse IP. <\/li>\n<\/ol>\n<p>\nN\u00eb zgjidhje ka nj\u00eb kompleksitet shtes\u00eb: ofruesit e DNS autoritar\u00eb nuk e shohin adres\u00ebn IP t\u00eb klientit dhe mund t\u00eb shohin vet\u00ebm adres\u00ebn IP t\u00eb resolver-it rekursiv q\u00eb p\u00ebrdoret nga klienti. <\/p>\n<p>P\u00ebrfundimisht, resolver-i yn\u00eb autoritar duhet t\u00eb marr\u00eb vendimin jo p\u00ebr nj\u00eb klient t\u00eb ve\u00e7ant\u00eb, por p\u00ebr nj\u00eb grup klient\u00ebsh n\u00eb baz\u00eb t\u00eb resolver-it rekursiv. <\/p>\n<p>P\u00ebr zgjidhjen e k\u00ebsaj ne p\u00ebrdorim t\u00eb nj\u00ebjtat proba, agregojm\u00eb rezultatet e matjeve nga klient\u00ebt p\u00ebr \u00e7do resolver rekursiv dhe vendosim se ku ta drejtojm\u00eb k\u00ebt\u00eb grup \u2013 p\u00ebrmes proxy-it p\u00ebrmes IX me TCP Anycast, p\u00ebrmes ISP proxy ose direkt n\u00eb cloud.<\/p>\n<p>Ne marrim nj\u00eb sistem t\u00eb till\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/ad23219938d1cb7b6eef498671c3e151.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nModeli i marr\u00eb DNS steering lejon t\u00eb drejtoj\u00eb klient\u00ebt n\u00eb baz\u00eb t\u00eb v\u00ebzhgimeve historike t\u00eb shpejt\u00ebsive t\u00eb lidhjeve nga klient\u00ebt deri n\u00eb cloud. <\/p>\n<p>Edhe nj\u00eb her\u00eb, \u00e7\u00ebshtja \u00ebsht\u00eb \u2013 sa efektiv do t\u00eb funksionoj\u00eb nj\u00eb qasje e till\u00eb? P\u00ebr t'u p\u00ebrgjigjur, ne p\u00ebrs\u00ebri p\u00ebrdorim sistemin ton\u00eb t\u00eb mostrave. K\u00ebshtu, ne konfigurajm\u00eb nj\u00eb konfigurim t\u00eb fundit, ku nj\u00eb nga targetet ndjek drejtimin nga DNS steering, tjetri shkon direkt n\u00eb cloud (produksioni aktual).<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/ceb2ded9367ebd0aa0ede46191a89a88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb fund, krahasojm\u00eb rezultatet dhe marrim nj\u00eb vler\u00ebsim t\u00eb efektivitetit:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/ca0db88461d5f2cb0f3f7c07eae14f10.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi rezultat, m\u00ebsuam disa gj\u00ebra t\u00eb r\u00ebnd\u00ebsishme:<\/p>\n<ol>\n<li>Vler\u00ebsuam performanc\u00ebn e pritur t\u00eb k\u00ebrkesave nga klient\u00ebt n\u00eb cloud duke p\u00ebrdorur DNS Steering.<\/li>\n<li>Morr\u00ebm t\u00eb dh\u00ebna nga klient\u00eb t\u00eb v\u00ebrtet\u00eb, nga t\u00eb gjitha llojet e pajisjeve.<\/li>\n<li>Demonstruam efektivitetin e ideve t\u00eb propozuara.<\/li>\n<li>Nuk rrezikuam \u2014 nuk ndryshuam konfigurimet e prodhimit p\u00ebr klient\u00ebt.<\/li>\n<li>Nuk thyem asgj\u00eb.<\/li>\n<\/ol>\n<p><\/p>\n<h2>Tani p\u00ebr t\u00eb v\u00ebshtir\u00ebn \u2013 e vendosim n\u00eb produkte.<\/h2>\n<p>\nT\u00eb keqijat m\u00eb t\u00eb lehta tani jan\u00eb mbrapa \u2014 kemi nj\u00eb prototip funksional. Tani pjesa e v\u00ebshtir\u00eb \u00ebsht\u00eb t\u00eb fillojm\u00eb zgjidhjen p\u00ebr t\u00eb gjith\u00eb trafikun e Netflix-it, ta implementojm\u00eb p\u00ebr 150 milion p\u00ebrdorues, mij\u00ebra aparate, qindra mikro-sh\u00ebrbime dhe produkte dhe infrastruktur\u00eb q\u00eb ndryshon vazhdimisht. N\u00eb serverat e Netflix po vijn\u00eb miliona k\u00ebrkesa n\u00eb sekond\u00eb dhe mund t\u00eb d\u00ebmtohet leht\u00ebsisht sh\u00ebrbimi nga nj\u00eb veprim i pap\u00ebrgjegjsh\u00ebm. Megjithat\u00eb, ne duam t\u00eb drejtojm\u00eb trafik dinamikisht p\u00ebrmes mij\u00ebra server\u00ebve CDN, n\u00eb internet, ku di\u00e7ka ndryshon dhe prishet vazhdimisht n\u00eb momentin m\u00eb t\u00eb pap\u00ebrshtatsh\u00ebm. <\/p>\n<p>Dhe n\u00eb t\u00eb gjith\u00eb k\u00ebt\u00eb, n\u00eb ekip jan\u00eb 3 inxhinier\u00eb, t\u00eb p\u00ebrgjegjsh\u00ebm p\u00ebr zhvillimin, implementimin dhe mb\u00ebshtetje t\u00eb plot\u00eb t\u00eb sistemit.<\/p>\n<p>Prandaj, tani do flasim p\u00ebr gjumin e qet\u00eb dhe t\u00eb sh\u00ebndetsh\u00ebm.<\/p>\n<p>Si t\u00eb vazhdojm\u00eb zhvillimin, pa e shpenzuar t\u00ebr\u00eb koh\u00ebn n\u00eb mb\u00ebshtetje? N\u00eb baz\u00eb t\u00eb qasjes ton\u00eb, jan\u00eb 3 parime:<\/p>\n<ol>\n<li>Ulin rrezikun e mundsh\u00ebm t\u00eb defekteve (blast radius). <\/li>\n<li>Jemi t\u00eb p\u00ebrgatitur p\u00ebr surpriza \u2013 presim q\u00eb di\u00e7ka do t\u00eb prishet, pavar\u00ebsisht nga testimi dhe p\u00ebrvoja personale.<\/li>\n<li>Degenerimi i gradualt (graceful degradation) - n\u00ebse di\u00e7ka nuk funksionon si duhet, ajo duhet t\u00eb riparoj\u00eb automatikisht, ndoshta n\u00eb nj\u00eb m\u00ebnyr\u00eb jo shum\u00eb efikase.<\/li>\n<\/ol>\n<p>\nDoli se n\u00eb rastin ton\u00eb, me k\u00ebt\u00eb qasje ndaj problemit, mund t\u00eb gjejm\u00eb nj\u00eb zgjidhje t\u00eb thjesht\u00eb dhe efektive dhe t\u00eb thjeshtojm\u00eb ndjesh\u00ebm mb\u00ebshtetjen e sistemit. Ne kuptuam se mund t\u00eb shtojm\u00eb nj\u00eb cop\u00ebz t\u00eb vog\u00ebl kodi te klienti dhe t\u00eb monitorojm\u00eb gabimet n\u00eb k\u00ebrkesat rrjetore q\u00eb shkaktohen nga probleme me lidhjen. N\u00eb rastin e d\u00ebmtimeve n\u00eb rrjet, b\u00ebjm\u00eb fallback direkt n\u00eb re. Ky zgjidhje nuk k\u00ebrkon p\u00ebrpjekje t\u00eb m\u00ebdha nga ekipet e klient\u00ebve, por ndjesh\u00ebm ul rrezikun nga d\u00ebshtimet dhe surprizat e papritura p\u00ebr ne.<\/p>\n<p>Sigurisht, p\u00ebrkund\u00ebr fallback-ut, ne megjithat\u00eb ndjekim nj\u00eb disiplin\u00eb t\u00eb qart\u00eb gjat\u00eb zhvillimit:<\/p>\n<ol>\n<li>Testi n\u00eb prova.<\/li>\n<li>T\u00eb testuar A\/B ose Canaries.<\/li>\n<li>Shp\u00ebrndarje graduale (progressive rollout).<\/li>\n<\/ol>\n<p>\nP\u00ebr provat, qasja \u00ebsht\u00eb p\u00ebrshkruar - ndryshimet testohen fillimisht p\u00ebrmes nj\u00eb recepti t\u00eb konfiguruar.<\/p>\n<p>P\u00ebr testimin canary, na nevojiten \u00e7iftet e server\u00ebve p\u00ebr t'u krahasuar se si funksionon sistemi para dhe pas ndryshimeve. P\u00ebr k\u00ebt\u00eb, nga shum\u00eb site tonat CDN, ne b\u00ebjm\u00eb nj\u00eb most\u00ebr t\u00eb \u00e7ift server\u00ebsh q\u00eb marrin trafik t\u00eb krahasuesh\u00ebm:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/eef504f5c81aa985b78339fd5f913d14.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPastaj ne vendosim nd\u00ebrtimin me ndryshime n\u00eb serverat Canary. P\u00ebr t\u00eb vler\u00ebsuar rezultatet, nis\u00ebm nj\u00eb sistem q\u00eb p\u00ebrcakton p\u00ebraf\u00ebrsisht 100-150 metrika me nj\u00eb grup Kontrol:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/898edb0a5bd493d6ef228cd116c1a939.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00ebse testimi i Canary-it kalon me sukses, ne b\u00ebjm\u00eb publikimin n\u00eb m\u00ebnyr\u00eb graduale, n\u00eb val\u00eb. N\u00eb secilin nga faqet, ne nuk p\u00ebrdit\u00ebsojm\u00eb serverat nj\u00ebkoh\u00ebsisht \u2014 humbja e nj\u00eb faqeje t\u00eb t\u00ebr\u00eb n\u00eb rast problemesh ka nj\u00eb ndikim m\u00eb t\u00eb madh p\u00ebr sh\u00ebrbimin p\u00ebr p\u00ebrdoruesit, sesa humbja e t\u00eb nj\u00ebjtit num\u00ebr serverash, por n\u00eb vende t\u00eb ndryshme.<\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, efikasiteti dhe siguria e k\u00ebtij qasjes varen nga numri dhe cil\u00ebsia e metrikave t\u00eb mbledhura. P\u00ebr sistemin ton\u00eb t\u00eb p\u00ebrshpejtimit t\u00eb k\u00ebrkesave, ne mbledhim metrika nga t\u00eb gjitha komponent\u00ebt e mundsh\u00ebm: <\/p>\n<ul>\n<li>nga klient\u00ebt \u2014 numri i sesioneve dhe k\u00ebrkesave, norma e r\u00ebnies; <\/li>\n<li>proxy \u2014 statistika mbi numrin dhe koh\u00ebn e k\u00ebrkesave;<\/li>\n<li>DNS \u2014 numri dhe rezultatet e k\u00ebrkesave;<\/li>\n<li>cloud edge \u2014 numri dhe koha e p\u00ebrpunimit t\u00eb k\u00ebrkesave n\u00eb cloud.<\/li>\n<\/ul>\n<p>\nT\u00eb gjitha k\u00ebto mblidhen n\u00eb nj\u00eb pipeline t\u00eb vet\u00ebm, dhe, n\u00eb var\u00ebsi t\u00eb nevojave, ne vendosim se cilat metrika t\u00eb d\u00ebrgojm\u00eb p\u00ebr analitik\u00eb n\u00eb koh\u00eb reale, dhe cilat \u2014 n\u00eb Elasticsearch ose Big Data p\u00ebr diagnostikim m\u00eb t\u00eb detajuar.<\/p>\n<h2>Monitorojm\u00eb<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/ff8b00b1239a20f85e96ce23c2d7c2d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb rastin ton\u00eb, b\u00ebjm\u00eb ndryshime n\u00eb rrug\u00ebn kritike t\u00eb k\u00ebrkesave midis klientit dhe serverit. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, numri i komponent\u00ebve t\u00eb ndrysh\u00ebm n\u00eb klient, n\u00eb server dhe n\u00eb rrug\u00ebn p\u00ebrmes internetit \u2014 \u00ebsht\u00eb i madh. Ndryshimet n\u00eb klient dhe server ndodhin vazhdimisht \u2014 gjat\u00eb pun\u00ebs s\u00eb dhjetra ekipeve dhe ndryshimeve natyrore n\u00eb ekosistem. Ne jemi n\u00eb mes \u2014 gjat\u00eb diagnostikimit t\u00eb problemeve ka nj\u00eb mund\u00ebsi t\u00eb madhe q\u00eb ne do t\u00eb jemi t\u00eb p\u00ebrfshir\u00eb n\u00eb k\u00ebt\u00eb. Prandaj, na nevojitet nj\u00eb kuptim i qart\u00eb p\u00ebr si t\u00eb p\u00ebrcaktojm\u00eb, mbledhim dhe analizojm\u00eb metrikat p\u00ebr lokalizimin e shpejt\u00eb t\u00eb problemeve. <\/p>\n<p>Idealisht \u2014 qasje e plot\u00eb n\u00eb t\u00eb gjitha llojet e metrikave dhe filtrave n\u00eb koh\u00eb reale. Por ka shum\u00eb metrika, k\u00ebshtu q\u00eb lind pyetja e kostos. N\u00eb rastin ton\u00eb, ne ndajm\u00eb metrikat dhe mjetet e zhvillimit si m\u00eb posht\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/0b4a15776f3b44331652adc14ea87390.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr zbules\u00ebn dhe triage-n e problemeve, ne p\u00ebrdorim sistemin ton\u00eb real-time me kod t\u00eb hapur <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Netflix\/atlas\">Atlas<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/netflixtechblog.com\/lumen-custom-self-service-dashboarding-for-netflix-8c56b541548c\">Lumen<\/a><\/noindex> \u2014 p\u00ebr vizualizim. Ajo ruan metrikat e agreguara n\u00eb memorie, \u00ebsht\u00eb e besueshme dhe integrohet me sistemin e alarmit. P\u00ebr lokalizimin dhe diagnostikimin, kemi qasje n\u00eb logjet nga Elasticsearch dhe Kibana. P\u00ebr analiz\u00ebn statistikore dhe modelimin \u2014 angazhojm\u00eb big data dhe vizualizimin n\u00eb Tableau.<\/p>\n<p>Duket se me nj\u00eb qasje t\u00eb till\u00eb \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb punosh. Megjithat\u00eb, me organizimin hierarkik t\u00eb metrikave dhe mjeteve, ne mund t\u00eb analizojm\u00eb shpejt problemin, t\u00eb p\u00ebrcaktojm\u00eb llojin e problemit dhe pastaj t\u00eb thellohemi n\u00eb metrikat e detajuara. P\u00ebr t\u00eb identifikuar burimin e defektit, ne p\u00ebrgjith\u00ebsisht harxhojm\u00eb rreth 1-2 minuta. Pas k\u00ebsaj, ne punojm\u00eb me ekipin e caktuar mbi diagnostikimin \u2014 nga dhjet\u00ebra minuta deri n\u00eb disa or\u00eb.<\/p>\n<p>Edhe n\u00ebse diagnostikimi b\u00ebhet shpejt, ne nuk duam q\u00eb kjo t\u00eb ndodh\u00eb shpesh. N\u00eb rastin ideal, ne do t\u00eb merrnim nj\u00eb alert kritik vet\u00ebm kur ka nj\u00eb ndikim t\u00eb r\u00ebnd\u00ebsish\u00ebm n\u00eb sh\u00ebrbim. P\u00ebr sistemin ton\u00eb t\u00eb p\u00ebrshpejtimit t\u00eb k\u00ebrkesave, ne kemi vet\u00ebm 2 alerta q\u00eb do t\u00eb na njoftojn\u00eb:<\/p>\n<ul>\n<li>procenti i Client Fallback \u2014 vler\u00ebsimi i sjelljes s\u00eb klient\u00ebve;<\/li>\n<li>procenti i Probe errors \u2014 t\u00eb dh\u00ebna p\u00ebr stabilitetin e komponent\u00ebve t\u00eb rrjetit.<\/li>\n<\/ul>\n<p>\nK\u00ebto alerta kritike mbajn\u00eb n\u00ebn kontroll n\u00ebse sistemi funksionon p\u00ebr shumic\u00ebn e p\u00ebrdoruesve. Ne shikojm\u00eb se sa klient\u00eb kan\u00eb p\u00ebrfituar nga fallback, n\u00ebse ata nuk arrit\u00ebn t\u00eb marrin p\u00ebrshpejtim k\u00ebrkesash. Mesatarisht kemi m\u00eb pak se 1 alarm kritik n\u00eb jav\u00eb, megjith\u00ebse n\u00eb sistem ndodhin nj\u00eb s\u00ebr\u00eb ndryshimesh. Pse na mjafton kjo?<\/p>\n<ol>\n<li>Ka client fallback n\u00eb rast se proksi yn\u00eb nuk funksionon.<\/li>\n<li>Ka nj\u00eb sistem automatizimi steering, i cili reagon ndaj problemeve.<\/li>\n<\/ol>\n<p>\nM\u00eb shum\u00eb p\u00ebr t\u00eb fundit. Sistemi yn\u00eb i probe-ve, dhe sistemi automatizues p\u00ebr p\u00ebrcaktimin e rrug\u00ebs optimale p\u00ebr k\u00ebrkesat nga klienti n\u00eb cloud, lejojn\u00eb t\u00eb p\u00ebrballen automatikisht me disa probleme. <\/p>\n<p>Le t\u00eb kthehemi te konfigurimi yn\u00eb i probe-ve dhe 3 kategorit\u00eb e rrug\u00ebve. P\u00ebrve\u00e7 koh\u00ebs s\u00eb ngarkes\u00ebs, ne mund t\u00eb shikojm\u00eb n\u00eb vet\u00eb faktin e dor\u00ebzimit. N\u00ebse nuk arrijm\u00eb t\u00eb ngarkojm\u00eb t\u00eb dh\u00ebnat, duke shqyrtuar rezultatet p\u00ebr rrug\u00eb t\u00eb ndryshme, ne mund t\u00eb p\u00ebrcaktojm\u00eb se ku dhe \u00e7far\u00eb ka d\u00ebshtuar, dhe n\u00ebse mund ta riparojm\u00eb automatikisht duke ndryshuar rrug\u00ebn e k\u00ebrkes\u00ebs.<\/p>\n<p>Shembuj:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/7d935da82aaca53af87f05fbdf215c4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/f74ef9d3de953099921a68fbc65cb187.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/3c77cbd47813d3320efbf339a0690c53.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKy proces mund t\u00eb automatizohet. Ta p\u00ebrfshijm\u00eb at\u00eb n\u00eb sistemin steering. Dhe ta m\u00ebsojm\u00eb t\u00eb reagoj\u00eb ndaj problemeve me performanc\u00ebn dhe besueshm\u00ebrin\u00eb. N\u00ebse di\u00e7ka fillon t\u00eb d\u00ebshtoj\u00eb \u2014 t\u00eb reagoj\u00eb, n\u00ebse ka nj\u00eb opsion m\u00eb t\u00eb mir\u00eb. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, reagimi momental nuk \u00ebsht\u00eb kritik, fal\u00eb fallback p\u00ebr klient\u00ebt.<\/p>\n<p>K\u00ebshtu, parimet e mb\u00ebshtetjes s\u00eb sistemit mund t\u00eb p\u00ebrmblidhen k\u00ebshtu:<\/p>\n<ul>\n<li>minimizojm\u00eb shkall\u00ebn e defekteve;<\/li>\n<li>mbledhim metrika;<\/li>\n<li>riparojm\u00eb defektet automatikisht, n\u00ebse mundemi;<\/li>\n<li>n\u00ebse nuk mundemi \u2014 njoftojm\u00eb;<\/li>\n<li>Ne jemi duke punuar n\u00eb dashboards dhe triage toolset p\u00ebr reagim t\u00eb shpejt\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<h2>M\u00ebsimet e nxjerra<\/h2>\n<p>\nP\u00ebr t\u00eb shkruar nj\u00eb prototip, nuk nevojitet shum\u00eb koh\u00eb. N\u00eb rastin ton\u00eb, ai ishte gati pas vet\u00ebm 4 muajsh. Me t\u00eb ne mor\u00ebm metrika t\u00eb reja, dhe pas 10 muajsh q\u00eb nga fillimi i zhvillimit mor\u00ebm trafikun e par\u00eb n\u00eb production. Pastaj filloi puna e lodhshme dhe shum\u00eb e komplikuar: gradualisht produktizimi dhe shkall\u00ebzimi i sistemit, migruar trafik kryesor dhe m\u00ebsuar nga gabimet. Ky proces efektiv nuk do t\u00eb jet\u00eb lineare \u2014 pavar\u00ebsisht nga t\u00eb gjitha p\u00ebrpjekjet, nuk mund t\u00eb parashikoni gjith\u00e7ka. M\u00eb efikase \u00ebsht\u00eb iterimi i shpejt\u00eb dhe reagimi ndaj t\u00eb dh\u00ebnave t\u00eb reja. <\/p>\n<p><img decoding=\"async\" alt=\"Accelerat k\u00ebrkesat p\u00ebr internet dhe flini rehat\" src=\"\/wp-content\/uploads\/2020\/06\/c9c182a1a4fa048b1f1b2a82a4db65e1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke u bazuar n\u00eb p\u00ebrvoj\u00ebn ton\u00eb, mund t\u00eb rekomandojm\u00eb sa vijon:<\/p>\n<ol>\n<li>Mos e besoni intuit\u00ebn.\n<p>Intuita jon\u00eb na ka mashtruar vazhdimisht, pavar\u00ebsisht p\u00ebrvoj\u00ebs s\u00eb madhe t\u00eb an\u00ebtar\u00ebve t\u00eb ekipit. P\u00ebr shembull, ne parashikuam gabim rritjen e pritur nga p\u00ebrdorimi i CDN proxy, ose sjelljen e TCP Anycast.<\/li>\n<li>Merrni t\u00eb dh\u00ebna nga production.\n<p>\u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb keni akses sa m\u00eb shpejt n\u00eb t\u00eb pakt\u00ebn nj\u00eb sasi t\u00eb vog\u00ebl t\u00eb t\u00eb dh\u00ebnave nga production. Numri i rasteve unike, konfigurimeve dhe cil\u00ebsimeve n\u00eb kushte laboratorike \u00ebsht\u00eb praktikisht i pamundur t\u00eb merret. Aksesi i shpejt\u00eb n\u00eb rezultatet do t'ju ndihmoj\u00eb t\u00eb m\u00ebsoni m\u00eb shpejt p\u00ebr problemet potenciale dhe t'i merrni parasysh ato n\u00eb arkitektur\u00ebn e sistemit.<\/li>\n<li>Mos ndiqni k\u00ebshillat dhe rezultatet e t\u00eb tjer\u00ebve \u2014 mbledhni t\u00eb dh\u00ebnat tuaja.\n<p>Ndihuni pas parimeve p\u00ebr mbledhjen dhe analizimin e t\u00eb dh\u00ebnave, por mos merrni verb\u00ebrisht rezultatet dhe pohimet e t\u00eb tjer\u00ebve. Vet\u00ebm ju mund t\u00eb dini sakt\u00ebsisht se \u00e7far\u00eb funksionon p\u00ebr p\u00ebrdoruesit tuaj. Sistemet tuaja dhe klient\u00ebt tuaj mund t\u00eb ndryshojn\u00eb ndjesh\u00ebm nga kompanit\u00eb e tjera. Fatmir\u00ebsisht, mjetet p\u00ebr analiz\u00eb tani jan\u00eb t\u00eb disponueshme dhe t\u00eb lehta p\u00ebr t'u p\u00ebrdorur. Rezultatet e marra nga ju mund t\u00eb mos p\u00ebrputhen me ato q\u00eb pohon Netflix, Facebook, Akamai dhe kompani t\u00eb tjera. N\u00eb rastin ton\u00eb, performanca e TLS, HTTP2 ose statistikat p\u00ebr k\u00ebrkesat DNS ndryshojn\u00eb nga rezultatet e Facebook, Uber, Akamai \u2014 sepse kemi pajisje, klient\u00eb dhe flukse t\u00eb dh\u00ebnash t\u00eb ndryshme.<\/li>\n<li>Mos u ngjitni pas trendeve t\u00eb mod\u00ebs pa nevoj\u00eb dhe pa vler\u00ebsuar efektivitetin.\n<p>Filloni me t\u00eb thjesht\u00ebn. \u00cbsht\u00eb m\u00eb mir\u00eb t\u00eb krijoni nj\u00eb sistem funksional t\u00eb thjesht\u00eb brenda nj\u00eb kohe t\u00eb shkurt\u00ebr, sesa t\u00eb investoni nj\u00eb sasi t\u00eb madhe kohe n\u00eb zhvillimin e komponent\u00ebve q\u00eb nuk ju nevojiten. Zgjidhni detyra dhe probleme q\u00eb jan\u00eb t\u00eb r\u00ebnd\u00ebsishme bazuar n\u00eb matjet dhe rezultatet tuaja. <\/li>\n<li>Jini t\u00eb gatsh\u00ebm p\u00ebr aplikime t\u00eb reja.\n<p>Ashtu si\u00e7 \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb parashikohet \u00e7do problem, ashtu \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb parashikosh p\u00ebrfitimet dhe aplikimet p\u00ebrpara. Merrni shembull nga startup-et \u2013 aft\u00ebsia e tyre p\u00ebr t'u adaptuar n\u00eb kushtet e klient\u00ebve. N\u00eb rastin tuaj, mund t\u00eb zbuloni probleme t\u00eb reja dhe zgjidhje p\u00ebr to. N\u00eb projektin ton\u00eb, q\u00ebllimi yn\u00eb ishte t\u00eb paksonim vonesat e k\u00ebrkesave. Megjithat\u00eb, gjat\u00eb analiz\u00ebs dhe diskutimeve, kuptuam se mund t\u00eb aplikonim server\u00ebt proxy gjithashtu:<\/p>\n<ul>\n<li>p\u00ebr balancimin e trafikut n\u00eb regionet e AWS-s\u00eb dhe uljen e kostove;<\/li>\n<li>p\u00ebr modelimin e stabilitetit t\u00eb CDN;<\/li>\n<li>p\u00ebr konfigurimin e DNS;<\/li>\n<li>p\u00ebr konfigurimin e TLS\/TCP.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>P\u00ebrfundim<\/h2>\n<p>\nN\u00eb raportin e prezantova si Netflix zgjidh problemin e p\u00ebrshpejtimit t\u00eb k\u00ebrkesave t\u00eb internetit mes klient\u00ebve dhe cloud-it. Si mbledhim t\u00eb dh\u00ebna p\u00ebrmes sistemit t\u00eb mostrave te klient\u00ebt, dhe p\u00ebrdorim t\u00eb dh\u00ebnat historike t\u00eb mbledhura p\u00ebr t\u00eb drejtuar k\u00ebrkesat e prodhimit nga klient\u00ebt p\u00ebrmes rrug\u00ebs m\u00eb t\u00eb shpejt\u00eb n\u00eb internet. Si p\u00ebrdorim parimet e pun\u00ebs s\u00eb protokolleve rrjet\u00ebrore, infrastruktur\u00ebn ton\u00eb CDN, rrjetin backbone dhe server\u00ebt DNS p\u00ebr t\u00eb arritur k\u00ebt\u00eb q\u00ebllim.<\/p>\n<p>Megjithat\u00eb, zgjidhja jon\u00eb \u00ebsht\u00eb vet\u00ebm nj\u00eb shembull i asaj se si ne n\u00eb Netflix kemi realizuar nj\u00eb sistem t\u00eb till\u00eb. \u00c7far\u00eb ka funksionuar p\u00ebr ne. Pjesa aplikative e raportit tim p\u00ebr ju jan\u00eb parimet e zhvillimit dhe mb\u00ebshtetjes, q\u00eb ndjekim dhe arrijm\u00eb rezultate t\u00eb mira.<\/p>\n<p>Zgjidhja jon\u00eb p\u00ebr problemin mund t\u00eb mos ju p\u00ebrshtatet. Megjithat\u00eb, teoria dhe parimet e zhvillimit mbeten, edhe n\u00ebse ju nuk keni nj\u00eb infrastruktur\u00eb CDN t\u00eb vet\u00ebn, ose n\u00ebse ajo ndryshon nd significantly nga e jona. <\/p>\n<p>Gjithashtu mbetet r\u00ebnd\u00ebsia e shpejt\u00ebsis\u00eb s\u00eb k\u00ebrkesave p\u00ebr biznesin. Edhe p\u00ebr nj\u00eb sh\u00ebrbim t\u00eb thjesht\u00eb duhet t\u00eb b\u00ebni nj\u00eb zgjedhje: midis ofruesve 'cloud', vendndodhjes s\u00eb server\u00ebve, CDN dhe ofruesve t\u00eb DNS. Zgjedhja juaj do t\u00eb ndikoj\u00eb n\u00eb efikasitetin e muajve t\u00eb k\u00ebrkesave p\u00ebr klient\u00ebt tuaj. Dhe \u00ebsht\u00eb e r\u00ebnd\u00ebsishme p\u00ebr ju t\u00eb matni dhe kuptoni k\u00ebt\u00eb ndikim.<\/p>\n<p>Filloni me zgjidhje t\u00eb thjeshta, kujdesuni p\u00ebr m\u00ebnyr\u00ebn se si e ndryshoni produktin. M\u00ebsoni gjat\u00eb procesit dhe p\u00ebrmir\u00ebsoni sistemin n\u00eb baz\u00eb t\u00eb t\u00eb dh\u00ebnave nga klient\u00ebt tuaj, infrastruktur\u00ebs tuaj dhe biznesit tuaj. Mendoni p\u00ebr mund\u00ebsit\u00eb e d\u00ebshtimeve t\u00eb papritura gjat\u00eb projektimit. M\u00eb pas do t\u00eb mund t\u00eb p\u00ebrshpejtoni procesin tuaj t\u00eb zhvillimit, p\u00ebrmir\u00ebsoni efikasitetin e zgjidhjes, shmangni ngarkes\u00ebn e tep\u00ebrt n\u00eb mb\u00ebshtetje dhe flini rehat.<\/p>\n<blockquote><p>K\u00ebt\u00eb vit <noindex><a rel=\"nofollow\" href=\"http:\/\/devoops-moscow.ru\/?utm_source=habr&amp;utm_medium=506106\">konferenca do t\u00eb mbahet nga 6 deri m\u00eb 10 korrik<\/a><\/noindex> n\u00eb format online. Do t\u00eb keni mund\u00ebsin\u00eb t\u00eb b\u00ebni pyetje nj\u00ebrit prej prind\u00ebrve t\u00eb DevOps, John Willis-it vet\u00eb!<\/p><\/blockquote>\n<p>Burimi: <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.2 - 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\/sq\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47Shpejtojm\u00eb k\u00ebrkesat n\u00eb internet dhe flejm\u00eb qet\u00eb | ProHoster","description":"Netflix \u00ebsht\u00eb lider n\u00eb tregun e televizioni n\u00eb internet -","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/uskoryaem-internet-zaprosy-i-spim-spokojno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/84876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=84876"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/84876\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/84877"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=84876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=84876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=84876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}