[M'għandekx] tuża CDN

Kważi kull artikolu jew għodda għall-ottimizzazzjoni tal-veloċità tas-sit għandu klawżola modesta "uża CDN." B'mod ġenerali, CDN huwa netwerk ta' kunsinna ta' kontenut jew netwerk ta' kunsinna ta' kontenut. Aħna fil-Metod Lab spiss niltaqgħu ma' mistoqsijiet minn klijenti dwar dan is-suġġett uħud minnhom jippermettu s-CDN tagħhom stess. L-iskop ta' dan l-artikolu huwa li wieħed jifhem x'jista' jipprovdi CDN f'termini ta' veloċità tat-tagħbija tas-sit, liema problemi jistgħu jinqalgħu, u f'liema każijiet l-użu ta' CDN huwa ġġustifikat.

[M'għandekx] tuża CDN

Id-dewmien imdawwar fl-istampa huwa kkawżat mill-użu ta 'CDN.

Ftit storja

Bħal ħafna teknoloġiji, is-CDNs ħarġu min-neċessità. Bl-iżvilupp ta 'kanali tal-Internet fost l-utenti tal-Internet, dehru servizzi tal-vidjow onlajn. Naturalment, il-kontenut tal-vidjo jeħtieġ ordnijiet ta 'kobor aktar bandwidth meta mqabbel mal-kontenut regolari tal-websajt (stampi, test, u kodiċi CSS jew JS).

Meta tipprova xxandar stream video b'mod parallel ma 'ħafna klijenti minn server wieħed, il-kanal tal-Internet tas-server x'aktarx isir il-konġestjoni. Bħala regola, ftit eluf ta 'ħjut huma biżżejjed biex jinstaddu kanal tipiku tas-server. Naturalment, jista 'jkun hemm limitazzjonijiet oħra tar-riżorsi, iżda mhumiex importanti bħalissa. Huwa wkoll importanti li l-espansjoni tal-kanal tas-server tkun għalja wisq (u xi kultant impossibbli), u wkoll imprattikabbli. It-tagħbija fuq il-kanal waqt ix-xandiriet se tkun ċiklika.

Il-problema tal-limitazzjoni tal-kanal ta 'server individwali hija solvuta perfettament minn CDN. Il-klijenti ma jikkonnettjawx mas-server direttament, iżda ma' nodi fin-netwerk CDN. F'sitwazzjoni ideali, is-server jibgħat fluss wieħed lin-nodu CDN, u mbagħad in-netwerk juża r-riżorsi tiegħu stess biex iwassal dan il-fluss lil ħafna utenti. Mil-lat ekonomiku, inħallsu biss għar-riżorsi attwalment ikkunsmati (dan jista 'jkun bandwidth jew traffiku) u niksbu skalabbiltà eċċellenti tas-servizz tagħna. L-użu ta 'CDN biex iwassal kontenut tqil huwa kompletament iġġustifikat u loġiku. Għalkemm ta’ min jinnota li l-akbar atturi f’dan l-ispazju (eż. Netflix) qed jibnu s-CDNs tagħhom stess minflok ma jużaw CDNs kummerċjali kbar (Akamai, Cloudflare, Fastly, eċċ.)

Hekk kif il-web evolviet, l-applikazzjonijiet tal-web infushom saru aktar kumplessi u kumplessi. Il-problema tal-veloċità tat-tagħbija ġiet fuq quddiem. Id-dilettanti tal-veloċità tal-websajt malajr identifikaw bosta problemi kbar li kkawżaw li l-websajts jitgħabbew bil-mod. Waħda minnhom kienet id-dewmien tan-netwerk (RTT - round trip time jew ping time). Id-dewmien jaffettwa ħafna proċessi fit-tagħbija tal-websajt: l-istabbiliment ta 'konnessjoni TCP, il-bidu ta' sessjoni TLS, it-tagħbija ta 'kull riżors individwali (immaġni, fajl JS, dokument HTML, eċċ.)

Il-problema kienet aggravata mill-fatt li meta jintuża l-protokoll HTTP/1.1 (qabel il-miġja ta 'SPDY, QUIC u HTTP/2 din kienet l-unika għażla), il-browsers jiftħu mhux aktar minn 6 konnessjonijiet TCP għal host wieħed. Dan kollu wassal għal waqfien tal-konnessjoni u użu ineffiċjenti tal-bandwidth tal-kanal. Il-problema ġiet parzjalment solvuta permezz ta 'domain sharding - il-ħolqien ta' hosts addizzjonali biex jingħelbu l-limitu fuq in-numru ta 'konnessjonijiet.

Dan huwa fejn tidher it-tieni kapaċità ta 'CDN - tnaqqis ta' latenza (RTT) minħabba n-numru kbir ta 'punti u l-prossimità ta' nodi għall-utent. Id-distanza għandha rwol deċiżiv hawnhekk: il-veloċità tad-dawl hija limitata (madwar 200 km/sek f'fibra ottika). Dan ifisser li kull 000 km ta 'vjaġġ iżid 1000 ms ta' dewmien jew 5 ms għal RTT. Dan huwa l-ħin minimu meħtieġ għat-trażmissjoni, peress li hemm ukoll dewmien fuq it-tagħmir intermedju. Peress li CDN normalment ikun jaf kif jaħżen l-oġġetti fuq is-servers tiegħu, nistgħu nibbenefikaw mit-tagħbija ta 'oġġetti bħal dawn permezz ta' CDN. Kundizzjonijiet meħtieġa għal dan: il-preżenza tal-oġġett fil-cache, il-prossimità tal-punt CDN għall-utent meta mqabbel mas-server tal-applikazzjoni tal-web (server tal-oriġini). Huwa importanti li wieħed jifhem li l-prossimità ġeografika ta 'node CDN ma tiggarantixxix latenza baxxa. Ir-rotot bejn il-klijent u s-CDN jista 'jinbena b'tali mod li l-klijent se jgħaqqad ma' host f'pajjiż ieħor, u possibbilment f'kontinent ieħor. Dan huwa fejn jidħlu r-relazzjoni bejn l-operaturi tat-telekomunikazzjoni u s-servizz CDN (peering, konnessjonijiet, parteċipazzjoni f’IX, eċċ.) u l-politika tar-rotot tat-traffiku tas-CDN innifsu. Pereżempju, Cloudflare, meta tuża żewġ pjanijiet inizjali (b'xejn u irħas), ma tiggarantixxix il-kunsinna tal-kontenut mill-eqreb ospitanti - il-host se jintgħażel biex tikseb l-ispiża minima.

Ħafna kumpaniji ewlenin tal-Internet jattiraw interess pubbliku (iżviluppaturi tal-web u sidien tas-servizzi) għas-suġġett tal-veloċità tat-tagħbija u l-prestazzjoni tal-websajt. Fost dawn il-kumpaniji hemm Yahoo (għodda Yslow), AOL (WebPageTest) u Google (servizz Page Speed ​​​​Insights), li qed jiżviluppaw ir-rakkomandazzjonijiet tagħhom stess biex iħaffu s-siti (primarjament huma relatati mal-ottimizzazzjoni tal-klijenti). Aktar tard, jidhru għodod ġodda għall-ittestjar tal-veloċità tal-websajt, li jipprovdu wkoll pariri dwar iż-żieda fil-veloċità tal-websajt. Kull wieħed minn dawn is-servizzi jew plugins għandu rakkomandazzjoni konsistenti: "Uża CDN." It-tnaqqis fil-latency tan-netwerk huwa normalment ikkwotat bħala spjegazzjoni għall-effett tas-CDN. Sfortunatament, mhux kulħadd huwa lest li jifhem eżattament kif jinkiseb l-effett ta 'aċċelerazzjoni tas-CDN u kif jista' jitkejjel, għalhekk ir-rakkomandazzjoni tittieħed fuq il-fidi u tintuża bħala postulat. Fil-fatt, mhux is-CDNs kollha huma maħluqa ugwali.

Uża CDN Illum

Biex tiġi vvalutata l-utilità tal-użu tas-CDNs, jeħtieġ li jiġu kklassifikati. Dak li jista' jinstab issa fil-prattika (l-eżempji fil-parentesi, ovvjament, mhumiex eżawrjenti):

  1. CDN b'xejn għad-distribuzzjoni tal-libreriji JS (MaxCDN, Google. Yandex).
  2. CDN ta' servizzi għall-ottimizzazzjoni tal-klijenti (per eżempju, Google Fonts għal fonts, Cloudinary, Cloudimage għal stampi).
  3. CDN għall-ottimizzazzjoni statika u tar-riżorsi fis-CMS (disponibbli f'Bitrix, WordPress u oħrajn).
  4. CDN għal skopijiet ġenerali (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN għall-aċċelerazzjoni tal-websajt (Cloudflare, Imperva, Airi).

Id-differenza ewlenija bejn dawn it-tipi hija kemm mit-traffiku jgħaddi mis-CDN. It-tipi 1-3 huma l-kunsinna ta 'parti biss mill-kontenut: minn talba waħda għal diversi għexieren (ġeneralment stampi). It-tipi 4 u 5 huma prokurazzjoni sħiħa tat-traffiku permezz ta' CDN.

Fil-prattika, dan ifisser in-numru ta 'konnessjonijiet li jintużaw biex jgħabbi s-sit. Meta nużaw HTTP/2, nużaw konnessjoni TCP waħda mal-host biex tipproċessa kwalunkwe numru ta 'talbiet. Jekk naqsmu r-riżorsi fil-host prinċipali (oriġini) u CDN, allura huwa meħtieġ li tqassam it-talbiet f'diversi oqsma u noħolqu diversi konnessjonijiet TCP. L-agħar każ huwa: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Din il-formula ma tqisx id-dewmien fin-netwerks mobbli għall-attivazzjoni tal-kanal tar-radju tal-apparat (jekk ma kienx attiv) u d-dewmien fuq it-torri taċ-ċelluli.

Hawn kif jidher fuq il-kaskata tat-tagħbija tas-sit (il-latenzi għall-konnessjoni mas-CDN huma enfasizzati f'RTT 150 ms):

[M'għandekx] tuża CDN

Jekk is-CDN ikopri t-traffiku kollu tas-sit (ħlief għal servizzi ta 'partijiet terzi), allura nistgħu nużaw konnessjoni TCP waħda, billi niffrankaw dewmien fil-konnessjoni ma' hosts addizzjonali. Naturalment, dan japplika għall-konnessjonijiet HTTP/2.

Aktar differenzi huma ddeterminati mill-funzjonalità ta 'CDN partikolari - għall-ewwel tip huwa biss jospita fajl statiku, għall-ħames qed ibiddel diversi tipi ta' kontenut tas-sit għall-iskop ta 'ottimizzazzjoni.

Kapaċità tas-CDN għall-aċċelerazzjoni tal-websajt

Ejja niddeskrivu l-firxa sħiħa ta 'kapaċitajiet CDN għall-aċċellerazzjoni ta' siti, mingħajr ma titqies il-funzjonalità ta 'tipi individwali ta' CDN, u mbagħad ara x'inhu implimentat f'kull wieħed minnhom.

1. Kompressjoni tar-riżorsi tat-test

L-aktar karatteristika bażika u li tinftiehem, iżda ħafna drabi implimentata ħażin. Is-CDNs kollha jiddikjaraw il-preżenza ta 'kompressjoni bħala l-karatteristika ta' aċċelerazzjoni tagħhom. Imma jekk tħares f'aktar dettall, in-nuqqasijiet isiru ċari:

  • gradi baxxi għall-kompressjoni dinamika jistgħu jintużaw - 5-6 (per eżempju, għal gzip il-massimu huwa 9);
  • kompressjoni statika (fajls fil-cache) ma tużax karatteristiċi addizzjonali (per eżempju, zopfi jew brotli bi grad 11)
  • m'hemm l-ebda appoġġ għall-kompressjoni brotli effiċjenti (iffrankar ta 'madwar 20% meta mqabbel ma' gzip).

Jekk tuża CDN, ta 'min iċċekkja dawn il-ftit punti: ħu l-fajl li ġie mis-CDN, irreġistra d-daqs kompressat tiegħu u kkompressah manwalment għal tqabbil (tista' tuża xi servizz onlajn b'appoġġ brotli, pereżempju vsszhat.rf).

2. L-issettjar tal-headers tal-caching tal-klijenti

Ukoll karatteristika sempliċi ta 'veloċità: żid headers għall-caching tal-kontenut mill-klijent (browser). L-aktar header attwali huwa cache-control, dak skadut huwa jiskadi. Barra minn hekk, Etag jista 'jintuża. Il-ħaġa prinċipali hija li l-età massima tal-kontroll tal-cache hija kbira biżżejjed (minn xahar jew aktar Jekk inti lest biex tiġbor ir-riżors kemm jista 'jkun, tista' żżid l-għażla immutabbli).

Is-CDNs jistgħu jbaxxu l-valur tal-età massima, u jġegħlu lill-utent jerġa' jgħabbi l-kontenut statiku aktar spiss. Mhuwiex ċar x'inhu konness ma 'dan: ix-xewqa li jiżdied it-traffiku fuq in-netwerk jew tiżdied il-kompatibilità ma' siti li ma jafux kif reset il-cache. Pereżempju, il-ħin default tal-cache tal-header Cloudflare huwa siegħa 1, li huwa baxx ħafna għal data statika immutabbli.

3. Ottimizzazzjoni tal-immaġni

Peress li s-CDN jieħu l-funzjonijiet ta 'caching u sservi ta' immaġini, ikun loġiku li jiġu ottimizzati fuq in-naħa tas-CDN u jservuhom lill-utenti f'din il-forma. Ejja nagħmlu riserva mill-ewwel li din il-karatteristika hija disponibbli biss għat-tipi CDN 2, 3 u 5.

Tista 'tottimizza l-immaġini f'varjetà ta' modi: billi tuża formati ta 'kompressjoni avvanzati (bħal WebP), encoders aktar effiċjenti (MozJPEG), jew sempliċiment tnaddaf metadata mhux meħtieġa.

B'mod ġenerali, hemm żewġ tipi ta 'ottimizzazzjonijiet bħal dawn: b'telf ta' kwalità u mingħajr telf ta 'kwalità. Is-CDNs normalment jistinkaw biex jużaw ottimizzazzjoni mingħajr telf sabiex jevitaw ilmenti possibbli tal-klijenti dwar bidliet fil-kwalità tal-immaġni. F'kundizzjonijiet bħal dawn, il-qligħ ikun minimu. Fir-realtà, ħafna drabi l-livell ta 'kwalità JPEG huwa ħafna ogħla milli meħtieġ u tista' terġa 'tikkompressa b'mod sikur b'livell ta' kwalità aktar baxx mingħajr ma tikkomprometti l-esperjenza tal-utent. Min-naħa l-oħra, huwa diffiċli li jiġi ddeterminat il-livell ta’ kwalità u s-settings b’mod universali għall-applikazzjonijiet kollha possibbli tal-web, għalhekk is-CDNs jużaw settings aktar konservattivi meta mqabbla ma’ dawk li jistgħu jiġu applikati b’kont meħud tal-kuntest (għan tal-immaġini, tip ta’ applikazzjoni tal-web , eċċ.)

4. L-ottimizzazzjoni tal-konnessjoni TLS

Il-biċċa l-kbira tat-traffiku llum jivvjaġġa fuq konnessjonijiet TLS, li jfisser li nqattgħu ħin żejjed fuq negozjati TLS. Riċentement, ġew żviluppati teknoloġiji ġodda biex iħaffu dan il-proċess. Pereżempju, din hija l-kriptografija tal-KE, TLS 1.3, cache u biljetti tas-sessjoni, aċċelerazzjoni tal-encryption tal-ħardwer (AES-NI), eċċ. L-issettjar korrett ta 'TLS jista' jnaqqas il-ħin tal-konnessjoni għal 0-1 RTT (mingħajr ma jingħadd DNS u TCP ).

B'softwer modern, mhuwiex diffiċli li timplimenta prattiki bħal dawn waħdek.

Mhux is-CDNs kollha jimplimentaw l-aħjar prattiki tat-TLS tista' tiċċekkja dan billi tkejjel il-ħin tal-konnessjoni TLS (pereżempju, fil-Webpagetest). Ideali għal konnessjoni ġdida - 1RTT, 2RTT - livell medju, 3RTT u aktar - ħażin.

Għandu jiġi nnutat ukoll li anke meta tuża TLS fil-livell CDN, is-server bl-applikazzjoni tal-web tagħna għandu wkoll jipproċessa TLS, iżda min-naħa tas-CDN, minħabba li t-traffiku bejn is-server u s-CDN jgħaddi min-netwerk pubbliku. Fl-agħar każ, se jkollna dewmien doppju fil-konnessjoni TLS (l-ewwel lill-host CDN, it-tieni bejnu u s-server tagħna).

Għal xi applikazzjonijiet, ta 'min joqgħod attent għal kwistjonijiet ta' sigurtà: it-traffiku huwa normalment decrypted fuq nodi CDN, u din hija opportunità potenzjali għall-interċettazzjoni tat-traffiku. L-għażla li taħdem mingħajr żvelar tat-traffiku hija ġeneralment offruta fil-pjanijiet tat-tariffi tal-ogħla għal ħlas addizzjonali.

5. Naqqas id-dewmien fil-konnessjoni

Il-benefiċċju ewlieni tas-CDN li kulħadd jitkellem dwaru: latenza baxxa (inqas distanza) bejn l-ospitant tas-CDN u l-utent. Mikseb billi tinħoloq arkitettura tan-netwerk distribwita ġeografikament, li fiha l-hosts jinsabu f'punti ta' konċentrazzjoni ta' utenti (bliet, punti ta' skambju tat-traffiku, eċċ.)

Fil-prattika, il-prijoritajiet għal netwerks differenti jistgħu jkunu f'reġjuni speċifiċi. Pereżempju, is-CDNs Russi se jkollhom aktar punti ta 'preżenza fir-Russja. Dawk Amerikani l-ewwel nett se jiżviluppaw in-netwerk fl-Istati Uniti. Pereżempju, wieħed mill-akbar CDN Cloudflare għandu biss 2 punti fir-Russja - Moska u San Pietruburgu. Jiġifieri, nistgħu niffrankaw massimu ta 'madwar 10 ms ta' latenza meta mqabbla ma 'tqegħid dirett f'Moska.

Il-biċċa l-kbira tas-CDNs tal-Punent m'għandhom l-ebda punti fir-Russja. Billi tikkonnettja magħhom, tista 'biss iżżid id-dewmien għall-udjenza Russa tiegħek.

6. Ottimizzazzjoni tal-kontenut (minifikazzjoni, bidliet strutturali)

L-aktar punt kumpless u teknoloġikament avvanzat. It-tibdil tal-kontenut waqt il-kunsinna jista' jkun riskjuż ħafna. Anke jekk nieħdu minifikazzjoni: it-tnaqqis tal-kodiċi tas-sors (minħabba spazji żejda, strutturi mhux importanti, eċċ.) jista 'jaffettwa l-prestazzjoni tiegħu. Jekk nitkellmu dwar bidliet aktar serji - iċ-ċaqliq tal-kodiċi JS sa l-aħħar tal-HTML, l-għaqda tal-fajls, eċċ. - ir-riskju li tfixkel il-funzjonalità tas-sit huwa saħansitra ogħla.

Għalhekk, xi CDNs tat-tip 5 biss jagħmlu dan. Naturalment, mhux se jkun possibbli li jiġu awtomatizzati l-bidliet kollha meħtieġa biex jitħaffef l-affarijiet — huma meħtieġa analiżi manwali u ottimizzazzjoni. Pereżempju, it-tneħħija tal-kodiċi mhux użat jew duplikat hija kompitu manwali.

Bħala regola, l-ottimizzazzjonijiet kollha bħal dawn huma kkontrollati minn settings u dawk l-aktar perikolużi huma diżattivati ​​awtomatikament.

Appoġġ għall-kapaċitajiet ta 'aċċelerazzjoni skond it-tip CDN

Mela ejja nagħtu ħarsa lejn liema opportunitajiet potenzjali ta 'aċċelerazzjoni jipprovdu t-tipi differenti ta' CDNs.

Għall-konvenjenza, nirrepetu l-klassifikazzjoni.

  1. CDN b'xejn għad-distribuzzjoni tal-libreriji JS (MaxCDN, Google. Yandex).
  2. CDN ta' servizzi għall-ottimizzazzjoni tal-klijenti (per eżempju, Google Fonts għal fonts, Cloudinary, Cloudimage għal stampi).
  3. CDN għall-ottimizzazzjoni statika u tar-riżorsi fis-CMS (disponibbli f'Bitrix, WordPress u oħrajn).
  4. CDN għal skopijiet ġenerali (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN għall-aċċelerazzjoni tal-websajt (Cloudflare, Imperva, Airi).

Issa ejja nqabblu l-karatteristiċi u t-tipi ta 'CDN.

Opportunità
Tip 1
Tip 2
Tip 3
Tip 4
Tip 5

Kompressjoni tat-test
+–
-
+–
+–
+

Cache headers
+
+
+
+
+

Stampi
-
+–
+–
-
+

TLS
-
-
-
+–
+

Dewmien
-
-
-
+
+

Kontenut
-
-
-
-
+

F'din it-tabella, "+" tintuża biex tindika appoġġ sħiħ, "-" hija l-ebda appoġġ, u "+-" hija appoġġ parzjali. Naturalment, jista 'jkun hemm devjazzjonijiet minn din it-tabella fir-realtà (per eżempju, xi CDN għal skopijiet ġenerali se jimplimentaw karatteristiċi għall-ottimizzazzjoni ta' l-immaġini), iżda għal idea ġenerali huwa utli.

Riżultati ta '

Nisperaw, wara li taqra dan l-artikolu jkollok stampa aktar ċara dwar ir-rakkomandazzjoni "uża CDN" biex tħaffef is-siti tiegħek.

Bħal f'kull negozju, ma tistax temmen il-wegħdiet ta 'kummerċjalizzazzjoni ta' kwalunkwe servizz. L-effett jeħtieġ li jiġi mkejjel u ttestjat taħt kundizzjonijiet reali. Jekk diġà qed tuża CDN, iċċekkjah għall-effettività billi tuża l-kriterji deskritti fl-artiklu.

Huwa possibbli li l-użu ta' CDN bħalissa qed inaqqas il-ħin tat-tagħbija tas-sit tiegħek.

Bħala rakkomandazzjoni ġenerali, nistgħu niffukaw fuq dan li ġej: studja l-udjenza tiegħek, tiddetermina l-ambitu ġeografiku tagħha. Jekk l-udjenza ewlenija tiegħek hija kkonċentrata f'raġġ ta '1-2 elf kilometru, m'għandekx bżonn CDN għall-iskop ewlieni tagħha - tnaqqas il-latenza. Minflok, tista 'tpoġġi s-server tiegħek eqreb lejn l-utenti tiegħek u tikkonfigurah kif suppost, billi tikseb ħafna mill-ottimizzazzjonijiet deskritti fl-artikolu (b'xejn u permanenti).

F'każ li l-udjenza tiegħek tkun tassew distribwita ġeografikament (raġġ ta 'aktar minn 3000 kilometru), l-użu ta' CDN ta 'kwalità se jkun tassew utli. Madankollu, trid tifhem minn qabel x'jista' jħaffef eżatt is-CDN tiegħek (ara t-tabella tal-kapaċitajiet u d-deskrizzjoni tagħhom). Madankollu, l-aċċelerazzjoni tal-websajt għadha kompitu kumpless li ma jistax jiġi solvut billi tikkonnettja CDN. Minbarra l-ottimizzazzjonijiet ta 'hawn fuq, l-aktar mezzi effettivi ta' aċċelerazzjoni jibqgħu wara s-CDN: ottimizzazzjoni tal-parti tas-server, bidliet avvanzati fil-parti tal-klijent (tneħħija ta 'kodiċi mhux użat, ottimizzazzjoni tal-proċess ta' rendering, xogħol b'kontenut, fonts, adattabilità, eċċ. )

Sors: www.habr.com

Żid kumment