[Net] benotzt en CDN

Bal all Artikel oder Tool fir d'Sitegeschwindegkeet ze optimiséieren huet eng bescheiden Klausel "benotzt en CDN." Am Allgemengen ass CDN en Inhalt Liwwerung Netzwierk oder Inhalt Liwwerung Netzwierk. Mir um Method Lab begéinen dacks Froen vu Clienten iwwer dëst Thema; e puer vun hinnen aktivéieren hiren eegene CDN. Den Zweck vun dësem Artikel ass ze verstoen wat e CDN a punkto Luedegeschwindegkeet vun de Site ubitt, wéi eng Probleemer kënne entstoen, a wéi enge Fäll d'Benotzung vun engem CDN gerechtfäerdegt ass.

[Net] benotzt en CDN

D'Verspéidungen, déi am Bild kreéiert sinn, ginn duerch d'Benotzung vun engem CDN verursaacht.

E bësse vun der Geschicht

Wéi vill Technologien sinn CDNs aus Noutwennegkeet entstanen. Mat der Entwécklung vun Internet Channels ënnert Internet Benotzer, online Video Servicer erschéngen. Natierlech erfuerdert Videoinhalt Uerder vun der Gréisst méi Bandbreed am Verglach zum normale Websäitinhalt (Biller, Text, an CSS oder JS Code).

Wann Dir probéiert e Videostream parallel zu ville Cliente vun engem Server ze iwwerdroen, wäert den Internetkanal vum Server héchstwahrscheinlech de Flaschenhals ginn. In der Regel sinn e puer dausend Threads genuch fir en typesche Serverkanal ze verstoppen. Natierlech kënnen et aner Ressourcebeschränkungen sinn, awer si sinn elo net wichteg. Et ass och wichteg datt d'Erweiderung vum Serverkanal ze deier ass (an heiansdo onméiglech), an och onpraktesch. D'Laascht op de Kanal während Sendungen wäert zyklesch sinn.

De Problem fir de Kanal vun engem individuellen Server ze limitéieren ass perfekt vum CDN geléist. D'Clientë verbannen net direkt mam Server, mee op Noden am CDN-Netz. An enger idealer Situatioun schéckt de Server e Stream op den CDN Node, an dann benotzt d'Netzwierk seng eege Ressourcen fir dëse Stream fir vill Benotzer ze liwweren. Aus wirtschaftlecher Siicht bezuele mir nëmme fir déi tatsächlech verbraucht Ressourcen (dëst kéint Bandbreedung oder Traffic sinn) a kréien eng exzellent Skalierbarkeet vun eisem Service. Mat engem CDN fir schwéier Inhalt ze liwweren ass komplett gerechtfäerdegt a logesch. Och wann et derwäert ass ze notéieren datt déi gréisste Spiller an dësem Raum (zB Netflix) hir eege CDNs bauen anstatt grouss kommerziell CDNs ze benotzen (Akamai, Cloudflare, Fastly, etc.)

Wéi de Web evoluéiert huet, sinn d'Webapplikatiounen selwer méi komplex a komplex ginn. De Problem vun der Luedegeschwindegkeet koum an de Virdergrond. Websäit Geschwindegkeetsbegeeschterten hunn séier verschidde gréisser Probleemer identifizéiert, déi Websäite lues a lues gelueden hunn. Ee vun hinnen war Reseau Verspéidungen (RTT - Ronn Rees Zäit oder Ping Zäit). Verzögerungen beaflossen vill Prozesser beim Luede vun der Websäit: eng TCP Verbindung opzebauen, eng TLS Sessioun starten, all eenzel Ressource (Bild, JS Datei, HTML Dokument, etc.)

De Problem gouf verschäerft duerch d'Tatsaach datt wann Dir den HTTP/1.1 Protokoll benotzt (virun der Optriede vu SPDY, QUIC an HTTP / 2 war dëst déi eenzeg Optioun), Browser opmaachen net méi wéi 6 TCP Verbindungen un engem Host. All dëst huet zu Verbindungsstopp an ineffizienten Notzung vun der Kanalbandbreedung gefouert. De Problem gouf deelweis geléist duerch Domain Sharding - d'Schafung vun zousätzleche Hosten fir d'Limite vun der Unzuel vun de Verbindungen ze iwwerwannen.

Dëst ass wou déi zweet Fäegkeet vum CDN erschéngt - Latenz reduzéieren (RTT) wéinst der grousser Zuel vu Punkten an der Proximitéit vun Noden zum Benotzer. D'Distanz spillt hei eng entscheedend Roll: d'Liichtgeschwindegkeet ass limitéiert (ongeféier 200 km/s an der optescher Faser). Dëst bedeit datt all 000 km Rees 1000 ms Verspéidung oder 5 ms op RTT bäidréit. Dëst ass de Minimum Zäit fir Iwwerdroung néideg, well et och Verspéidungen op der Mëttelstuf Equipement sinn. Zënter engem CDN normalerweis weess wéi Objeten op seng Serveren ze cache, kënne mir dovun profitéieren datt esou Objeten duerch e CDN lued. Noutwendeg Konditioune fir dëst: d'Präsenz vum Objet am Cache, d'Proximitéit vum CDN Punkt zum Benotzer am Verglach mam Webapplikatiounsserver (Originalserver). Et ass wichteg ze verstoen datt geographesch Proximitéit vun engem CDN Node keng niddereg latency garantéiert. Routing tëscht dem Client an dem CDN kann esou gebaut ginn datt de Client mat engem Host an engem anere Land verbënnt, an eventuell op engem anere Kontinent. Dëst ass wou d'Relatioun tëscht Telekomoperateuren an dem CDN Service (Peering, Verbindungen, Participatioun un IX, asw.) an d'Traffic Routing Politik vum CDN selwer an d'Spill kommen. Zum Beispill, Cloudflare, wann Dir zwee initial Pläng benotzt (gratis a bëlleg), garantéiert net d'Liwwerung vum Inhalt vum nooste Host - de Host gëtt ausgewielt fir de Mindestkäschte z'erreechen.

Vill führend Internetfirmen lackele ëffentlechen Interessi (Webentwéckler a Servicebesëtzer) zum Thema Luedegeschwindegkeet an Websäit Leeschtung. Ënnert dëse Firmen sinn Yahoo (Yslow Tool), AOL (WebPageTest) a Google (Page Speed ​​​​Insights Service), déi hir eege Empfehlungen entwéckelen fir Websäiten ze beschleunegen (haaptsächlech bezéie se sech op Clientoptimiséierung). Méi spéit erschéngen nei Websäit Geschwindegkeet Testinstrumenter, déi och Tipps ubidden fir d'Websäit Geschwindegkeet ze erhéijen. Jiddereng vun dëse Servicer oder Plugins huet eng konsequent Empfehlung: "Benotzt en CDN." D'Reduktioun vun der Netzlatenz gëtt normalerweis als Erklärung fir den Effekt vum CDN zitéiert. Leider ass net jiddereen bereet genee ze verstoen wéi de Beschleunigungseffekt vum CDN erreecht gëtt a wéi et gemooss ka ginn, sou datt d'Empfehlung op Glawen geholl gëtt an als Postulat benotzt gëtt. Tatsächlech sinn net all CDNs gläich erstallt.

Benotzt eng CDN Haut

Fir d'Nëtzlechkeet vun der Benotzung vun CDNs ze bewäerten, musse se klasséiert ginn. Wat kann elo an der Praxis fonnt ginn (d'Beispiller an de Klammern sinn natierlech net ustrengend):

  1. Gratis CDN fir JS Bibliothéiken ze verdeelen (MaxCDN, Google. Yandex).
  2. CDN vu Servicer fir Client Optimisatioun (zum Beispill, Google Schrëften fir Schrëften, Cloudinary, Cloudimage fir Biller).
  3. CDN fir statesch a Ressourceoptimiséierung am CMS (verfügbar an Bitrix, WordPress an anerer).
  4. Allgemeng Zweck CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN fir Websäit Beschleunegung (Cloudflare, Imperva, Airi).

De Schlësselunterscheed tëscht dësen Typen ass wéi vill vum Traffic duerch den CDN geet. Typen 1-3 sinn d'Liwwerung vun nëmmen en Deel vum Inhalt: vun enger Ufro op e puer Dosen (normalerweis Biller). Typen 4 a 5 si voll Proxying vum Traffic iwwer e CDN.

An der Praxis heescht dat d'Zuel vun de Verbindungen déi benotzt gi fir de Site ze lueden. Mat HTTP/2 benotze mir eng eenzeg TCP Verbindung zum Host fir all Zuel vun Ufroen ze veraarbecht. Wa mir Ressourcen an den Haapthost (Origine) an CDN opdeelen, dann ass et néideg Ufroen iwwer verschidden Domainen ze verdeelen an e puer TCP Verbindungen ze kreéieren. De schlëmmste Fall ass: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Dës Formel berücksichtegt keng Verspéidungen an mobilen Netzwierker fir d'Aktivatioun vum Radiokanal vum Apparat (wann et net aktiv war) a Verspéidungen op den Zelltuerm.

Hei ass wéi et ausgesäit um Luede Waasserfall vum Site (Latenzen fir d'Verbindung mam CDN ginn op RTT 150 ms markéiert):

[Net] benotzt en CDN

Wann d'CDN all Siteverkéier ofdeckt (ausser fir Drëtt-Partei-Servicer), da kënne mir eng eenzeg TCP-Verbindung benotzen, a spuert Verspéidungen op d'Verbindung mat zousätzlech Hosten. Natierlech gëllt dat fir HTTP/2 Verbindungen.

Weider Differenzen ginn duerch d'Funktionalitéit vun engem bestëmmten CDN festgeluegt - fir den éischten Typ ass et just eng statesch Datei ze hosten, fir de fënneften ännert et verschidden Aarte vu Siteinhalt fir den Zweck vun der Optimisatioun.

CDN Fäegkeeten fir Websäit Beschleunegung

Loosst eis déi ganz Palette vun CDN Fäegkeeten beschreiwen fir Siten ze beschleunegen, ouni d'Funktionalitéit vun eenzelnen Typen vun CDN ze berücksichtegen, a kuckt dann wat an all eenzel vun hinnen ëmgesat gëtt.

1. Kompressioun vun Textressourcen

Déi meescht Basis a verständlech Feature, awer dacks schlecht ëmgesat. All CDNs erklären d'Präsenz vu Kompressioun als hir Beschleunigungsfunktioun. Awer wann Dir méi detailléiert kuckt, ginn d'Defiziter kloer:

  • niddereg Grad fir dynamesch Kompressioun kënne benotzt ginn - 5-6 (zum Beispill fir gzip ass de Maximum 9);
  • statesch Kompressioun (Dateien am Cache) benotzt keng zousätzlech Funktiounen (zum Beispill Zopfi oder Brotli mat Grad 11)
  • et gëtt keng Ënnerstëtzung fir efficace Brotli Kompressioun (spueren ongeféier 20% Verglach mat gzip).

Wann Dir e CDN benotzt, ass et derwäert dës e puer Punkten ze iwwerpréiwen: huelt d'Datei déi vum CDN koum, notéiert seng kompriméiert Gréisst a kompriméiert se manuell fir de Verglach (Dir kënnt e puer Online-Service mat Brotli-Ënnerstëtzung benotzen, zum Beispill vsszhat.rf).

2. Astellung Client Caching Header

Och eng einfach Speedup Feature: Füügt Header fir Inhalt Cache vum Client (Browser). Déi aktuellst Header ass Cache-Kontroll, deen alen ass ofgelaf. Zousätzlech kann Etag benotzt ginn. Den Haapt Saach ass datt de Max-Alter vun der Cache-Kontroll grouss genuch ass (vun engem Mount oder méi) Wann Dir bereet sidd d'Ressource sou schwéier wéi méiglech ze Cache, kënnt Dir déi onverännerbar Optioun derbäisetzen.

CDNs kënnen de Max-Alter-Wäert erofsetzen, wat de Benotzer forcéiere fir statesch Inhalt méi dacks ze lueden. Et ass net kloer mat deem verbonnen ass: de Wonsch de Verkéier am Netz ze erhéijen oder d'Kompatibilitéit mat Siten ze erhéijen déi net wësse wéi de Cache zréckgesat gëtt. Zum Beispill ass d'Standard Cloudflare Header Cache Zäit 1 Stonn, wat ganz niddereg ass fir onverännerbar statesch Donnéeën.

3. Bildoptimiséierung

Zënter datt den CDN d'Funktioune vum Caching an Déngscht vu Biller iwwerhëlt, wier et logesch fir se op der CDN Säit ze optimiséieren an de Benotzer an dëser Form ze déngen. Loosst eis direkt reservéieren datt dës Feature nëmme fir CDN Typen 2, 3 a 5 verfügbar ass.

Dir kënnt Biller op verschidde Weeër optimiséieren: fortgeschratt Kompressiounsformater benotzen (wéi WebP), méi effizient Encoder (MozJPEG), oder einfach onnéideg Metadaten botzen.

Am Allgemengen ginn et zwou Zorte vu sou Optimisatiounen: mat Qualitéitsverloscht an ouni Qualitéitsverloscht. CDNs beméien normalerweis d'Verléierslos Optimiséierung ze benotzen fir méiglech Cliente Reklamatiounen iwwer Ännerungen an der Bildqualitéit ze vermeiden. An esou Konditiounen wäert de Gewënn minimal sinn. A Wierklechkeet ass de JPEG Qualitéitsniveau dacks vill méi héich wéi néideg an Dir kënnt sécher mat engem nidderegen Qualitéitsniveau rekompriméieren ouni d'Benotzererfarung ze kompromittéieren. Op der anerer Säit ass et schwéier den Niveau vun der Qualitéit an Astellungen universell fir all méiglech Webapplikatiounen ze bestëmmen, sou datt CDNs méi konservativ Astellunge benotzen am Verglach mat deenen déi applizéiert kënne ginn andeems de Kontext berücksichtegt gëtt (Zweck vu Biller, Aart vun der Webapplikatioun). , etc.)

4. Optimisatioun vun der TLS Verbindung

Stäerkste Verkéier haut reesen iwwer TLS Verbindungen, dat heescht mir verbréngen extra Zäit op TLS Verhandlunge. Viru kuerzem sinn nei Technologien entwéckelt fir dëse Prozess ze beschleunegen. Zum Beispill, dëst ass EC cryptography, TLS 1.3, Sessioun Cache an Ticketen, Hardware Verschlësselung Beschleunegung (AES-NI), etc.

Mat moderner Software ass et net schwéier esou Praktiken op Iech selwer ëmzesetzen.

Net all CDNs implementéieren TLS Best Practices; Dir kënnt dëst iwwerpréiwen andeems Dir d'TLS Verbindungszäit moosst (zum Beispill am Webpagetest). Ideal fir eng nei Verbindung - 1RTT, 2RTT - Moyenne Niveau, 3RTT a méi - schlecht.

Et sollt och bemierkt ginn datt och wann Dir TLS um CDN Niveau benotzt, muss de Server mat eiser Webapplikatioun och TLS veraarbecht ginn, awer vun der CDN Säit, well de Traffic tëscht dem Server an dem CDN op den ëffentlechen Netz passéiert. Am schlëmmste Fall kréie mir duebel TLS Verbindungsverzögerungen (déi éischt op den CDN Host, déi zweet tëscht et an eisem Server).

Fir e puer Uwendungen ass et derwäert op Sécherheetsprobleemer opmierksam ze maachen: Traffic gëtt normalerweis op CDN Wirbelen entschlësselt, an dëst ass eng potenziell Méiglechkeet fir Traffic Offangen. D'Optioun fir ouni Verkéiersoffenbarung ze schaffen gëtt normalerweis an Top Tarifpläng fir eng zousätzlech Tax ugebueden.

5. Reduzéieren Verbindung Verspéidungen

Den Haaptvirdeel vum CDN iwwer dee jidderee schwätzt: niddereg latency (manner Distanz) tëscht dem CDN Host an dem Benotzer. Erreecht duerch d'Erstelle vun enger geographesch verdeelt Netzwierkarchitektur, an där d'Host an de Punkte vun der Konzentratioun vu Benotzer (Stied, Verkéiersaustauschpunkten, asw.)

An der Praxis kënne Prioritéite fir verschidden Netzwierker a spezifesche Regiounen sinn. Zum Beispill wäerte russesch CDNs méi Punkte vu Präsenz a Russland hunn. Déi amerikanesch wäerten als éischt d'Netzwierk an den USA entwéckelen. Zum Beispill, ee vun de gréisste CDN Cloudflare huet nëmmen 2 Punkten an Russland - Moskau a St. Dat ass, mir kënnen e Maximum vu ronn 10 ms Latenz spueren am Verglach zum direkten Placement zu Moskau.

Déi meescht westlech CDNs hunn guer keng Punkten a Russland. Andeems Dir mat hinnen verbënnt, kënnt Dir nëmmen d'Verspéidungen fir Äre russesche Publikum erhéijen.

6. Inhaltsoptimiséierung (Minifizéierung, strukturell Ännerungen)

De stäerkste komplex an technologesch fortgeschratt Punkt. Inhalter änneren während der Liwwerung ka ganz riskant sinn. Och wa mir Minifikatioun huelen: d'Reduktioun vum Quellcode (wéinst extra Plazen, onwichteg Strukturen, asw.) kann seng Leeschtung beaflossen. Wa mir iwwer méi sérieux Ännerungen schwätzen - de JS Code op d'Enn vun der HTML plënneren, Dateien fusionéieren, asw. - de Risiko fir d'Funktionalitéit vum Site ze stéieren ass nach méi héich.

Dofir maachen nëmmen e puer Typ 5 CDNs dëst. Natierlech wäert et net méiglech sinn all d'Ännerungen ze automatiséieren déi néideg sinn fir d'Saachen ze beschleunegen - manuell Analyse an Optimiséierung sinn erfuerderlech. Zum Beispill, net benotzten oder duplizéierte Code ze läschen ass eng manuell Aufgab.

Normalerweis ginn all esou Optimisatiounen duerch Astellunge kontrolléiert an déi geféierlechst sinn als Standard deaktivéiert.

Ënnerstëtzung fir Beschleunigungsfäegkeeten no CDN Typ

Also loosst eis kucken wéi eng potenziell Beschleunigungsméiglechkeeten déi verschidden Aarte vun CDNs ubidden.

Fir d'Bequemlechkeet widderhuelen mir d'Klassifikatioun.

  1. Gratis CDN fir JS Bibliothéiken ze verdeelen (MaxCDN, Google. Yandex).
  2. CDN vu Servicer fir Client Optimisatioun (zum Beispill, Google Schrëften fir Schrëften, Cloudinary, Cloudimage fir Biller).
  3. CDN fir statesch a Ressourceoptimiséierung am CMS (verfügbar an Bitrix, WordPress an anerer).
  4. Allgemeng Zweck CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN fir Websäit Beschleunegung (Cloudflare, Imperva, Airi).

Loosst eis elo d'Features an d'Typen vun CDN vergläichen.

Geleeënheet
Typ 1
Typ 2
Typ 3
Typ 4
Typ 5

Text Kompressioun
+–
-
+–
+–
+

Cache Header
+
+
+
+
+

Biller
-
+–
+–
-
+

TLS
-
-
-
+–
+

Verspéidungen
-
-
-
+
+

Inhalter
-
-
-
-
+

An dëser Tabell gëtt "+" benotzt fir voll Ënnerstëtzung unzeginn, "–" ass keng Ënnerstëtzung, an "+–" ass deelweis Ënnerstëtzung. Natierlech kann et Ofwäichunge vun dëser Tabell an der Realitéit sinn (zum Beispill, e puer allgemeng Zweck CDN wäerte Funktiounen ëmsetzen fir Biller ze optimiséieren), awer fir eng allgemeng Iddi ass et nëtzlech.

Resultater

Hoffentlech, nodeems Dir dësen Artikel gelies hutt, hutt Dir e méi kloert Bild iwwer d'Empfehlung "benotzt en CDN" fir Är Siten ze beschleunegen.

Wéi an all Geschäft, kënnt Dir d'Marketingversprieche vun engem Service net gleewen. Den Effekt muss ënner reale Bedéngungen gemooss a getest ginn. Wann Dir schonn en CDN benotzt, kontrolléiert et fir d'Effektivitéit mat de Critèren, déi am Artikel beschriwwe ginn.

Et ass méiglech datt d'Benotzung vun engem CDN elo d'Laaschtzäit vun Ärem Site verlangsamt.

Als allgemeng Empfehlung kënne mir eis op déi folgend konzentréieren: Äre Publikum studéieren, säi geographescht Ëmfang bestëmmen. Wann Ären Haaptpublikum an engem Radius vun 1-2 Tausend Kilometer konzentréiert ass, brauch Dir keen CDN fir säin Haaptzweck - d'Latenz reduzéieren. Amplaz kënnt Dir Äre Server méi no bei Äre Benotzer placéieren an et richteg konfiguréieren, déi meescht vun den Optimisatiounen, déi am Artikel beschriwwe ginn (gratis a permanent) kréien.

Am Fall wou Äert Publikum wierklech geographesch verdeelt ass (Radius vu méi wéi 3000 Kilometer), mat engem Qualitéits-CDN wäert wierklech nëtzlech sinn. Wéi och ëmmer, Dir musst am Viraus verstoen wat genau Ären CDN ka beschleunegen (kuckt den Tabelle vu Fäegkeeten an hir Beschreiwung). Wéi och ëmmer, Websäit Beschleunegung bleift nach ëmmer eng komplex Aufgab déi net geléist ka ginn andeems en CDN verbënnt. Zousätzlech zu den uewe genannten Optimisatiounen bleiwen déi effektivst Beschleunigungsmëttel hannert dem CDN: Optimiséierung vum Serverdeel, fortgeschratt Ännerunge vum Clientdeel (net benotzte Code ewechhuelen, de Renderingprozess optimiséieren, mat Inhalter, Schrëften, Adaptabilitéit, etc. )

Source: will.com

Setzt e Commentaire