[Pa] sèvi ak yon CDN

Prèske chak atik oswa zouti pou optimize vitès sit gen yon kloz modès "sèvi ak yon CDN." An jeneral, CDN se yon rezo livrezon kontni oswa rezo livrezon kontni. Nou nan Method Lab souvan rankontre kesyon nan men kliyan sou sijè sa a; kèk nan yo pèmèt pwòp CDN yo. Objektif atik sa a se konprann sa yon CDN ka bay an tèm de vitès chaj sit, ki pwoblèm ki ka rive, ak nan ki ka itilizasyon yon CDN jistifye.

[Pa] sèvi ak yon CDN

Reta ki makonnen nan foto a se akòz itilizasyon yon CDN.

Yon istwa ti kras

Menm jan ak anpil teknoloji, CDN yo soti nan nesesite. Ak devlopman nan chanèl entènèt nan mitan itilizatè entènèt, sèvis videyo sou entènèt parèt. Natirèlman, kontni videyo mande pou lòd nan grandè plis Pleasant konpare ak kontni sit entènèt regilye (foto, tèks, ak kòd CSS oswa JS).

Lè w ap eseye difize yon kouran videyo nan paralèl ak anpil kliyan ki soti nan yon sèl sèvè, chanèl entènèt sèvè a pral gen plis chans vin yon kou boutèy la. Kòm yon règ, kèk milye fil yo ase yo bouche yon chanèl sèvè tipik. Natirèlman, ka gen lòt limit resous, men yo pa enpòtan kounye a. Li enpòtan tou ke agrandi chanèl sèvè a twò chè (e pafwa enposib), epi tou li enposib. Chaj la sou chanèl la pandan emisyon yo pral siklik.

Pwoblèm nan limite kanal la nan yon sèvè endividyèl se parfe rezoud pa CDN. Kliyan pa konekte nan sèvè a dirèkteman, men nan nœuds nan rezo CDN la. Nan yon sitiyasyon ideyal, sèvè a voye yon kouran nan ne CDN a, ak Lè sa a, rezo a sèvi ak resous pwòp li yo delivre kouran sa a bay anpil itilizatè. Soti nan yon pwen de vi ekonomik, nou peye sèlman pou resous yo aktyèlman boule (sa a ta ka Pleasant oswa trafik) epi jwenn ekselan évolutivité nan sèvis nou an. Sèvi ak yon CDN pou delivre kontni lou konplètman jistifye ak lojik. Malgre ke li vo sonje ke pi gwo jwè yo nan espas sa a (egzanp Netflix) ap konstwi pwòp CDN yo olye pou yo itilize gwo CDN komèsyal yo (Akamai, Cloudflare, Fastly, elatriye)

Kòm entènèt la te evolye, aplikasyon entènèt tèt yo te vin pi konplèks ak konplèks. Pwoblèm nan nan vitès loading te vin nan devan an. Amater vitès sit entènèt byen vit idantifye plizyè gwo pwoblèm ki te lakòz sit entènèt yo chaje dousman. Youn nan yo te reta rezo (RTT - tan vwayaj wonn oswa tan ping). Reta afekte anpil pwosesis nan chaje sit entènèt: etabli yon koneksyon TCP, kòmanse yon sesyon TLS, chaje chak resous endividyèl (imaj, dosye JS, dokiman HTML, elatriye)

Pwoblèm nan te agrave pa lefèt ke lè w ap itilize pwotokòl HTTP/1.1 (anvan avenman SPDY, QUIC ak HTTP/2 sa a se sèlman opsyon), navigatè yo pa louvri plis pase 6 koneksyon TCP nan yon sèl lame. Tout bagay sa a te mennen nan koneksyon D 'ak itilizasyon rezèvwa nan Pleasant chanèl. Pwoblèm nan te pasyèlman rezoud pa sharding domèn - kreyasyon an gen tout pouvwa a adisyonèl simonte limit la sou kantite koneksyon.

Sa a se kote kapasite nan dezyèm nan CDN parèt - diminye latansi (RTT) akòz gwo kantite pwen ak pwoksimite nan nœuds itilizatè a. Distans jwe yon wòl desizif isit la: vitès limyè a limite (apeprè 200 km / sec nan fib optik). Sa vle di ke chak 000 km nan vwayaj ajoute 1000 ms nan reta oswa 5 ms nan RTT. Sa a se tan minimòm ki nesesè pou transmisyon, paske gen reta tou sou ekipman entèmedyè a. Depi yon CDN anjeneral konnen ki jan yo kache objè sou serveurs li yo, nou ka benefisye de chaje objè sa yo atravè yon CDN. Kondisyon ki nesesè pou sa a: prezans nan objè a nan kachèt la, pwoksimite nan pwen CDN a itilizatè a an konparezon ak sèvè aplikasyon entènèt la (sèvè orijin). Li enpòtan pou w konprann pwoksimite jeyografik yon ne CDN pa garanti latansi ki ba. Wout ant kliyan an ak CDN a ka bati nan yon fason ke kliyan an pral konekte ak yon lame nan yon lòt peyi, epi pètèt sou yon lòt kontinan. Sa a se kote relasyon ki genyen ant operatè telecom ak sèvis la CDN (peering, koneksyon, patisipasyon nan IX, elatriye) ak politik la routage trafik nan CDN nan tèt li antre nan jwèt. Pou egzanp, Cloudflare, lè w ap itilize de plan inisyal (gratis ak bon mache), pa garanti livrezon kontni ki soti nan lame ki pi pre a - yo pral chwazi lame a pou reyalize pri minimòm lan.

Anpil konpayi dirijan Entènèt atire enterè piblik (devlopè entènèt ak pwopriyetè sèvis) nan sijè a nan vitès chaje ak pèfòmans sit entènèt. Pami konpayi sa yo se Yahoo (Yslow zouti), AOL (WebPageTest) ak Google (Page Speed ​​​​Insights sèvis), ki ap devlope pwòp rekòmandasyon yo pou akselere sit (prensipalman yo gen rapò ak optimize kliyan). Apre sa, nouvo zouti tès vitès sit entènèt parèt, ki bay tou konsèy sou ogmante vitès sit entènèt. Chak sèvis oswa grefon sa yo gen yon rekòmandasyon ki konsistan: "Sèvi ak yon CDN." Rediksyon nan latansi rezo a anjeneral site kòm yon eksplikasyon pou efè CDN. Malerezman, se pa tout moun ki pare yo konprann egzakteman ki jan efè akselerasyon CDN reyalize ak ki jan li ka mezire, kidonk rekòmandasyon an pran sou lafwa ak itilize kòm yon postila. An reyalite, se pa tout CDN yo kreye egal.

Sèvi ak CDN jodi a

Pou evalye itilite itilize CDN yo, yo bezwen klase yo. Ki sa ki ka jwenn kounye a nan pratik (egzanp yo nan parantèz yo, nan kou, pa konplè):

  1. CDN gratis pou distribye bibliyotèk JS (MaxCDN, Google. Yandex).
  2. CDN nan sèvis pou optimize kliyan (pa egzanp, Google Polis pou polis, Cloudinary, Cloudimage pou imaj).
  3. CDN pou optimize estatik ak resous nan CMS (disponib nan Bitrix, WordPress ak lòt moun).
  4. Objektif jeneral CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN pou akselerasyon sit entènèt (Cloudflare, Imperva, Airi).

Diferans kle ant kalite sa yo se konbyen nan trafik la ale nan CDN la. Kalite 1-3 yo se livrezon sèlman yon pati nan kontni an: soti nan yon demann nan plizyè douzèn (anjeneral foto). Kalite 4 ak 5 yo se total proxy trafik atravè yon CDN.

Nan pratik, sa vle di kantite koneksyon ki itilize pou chaje sit la. Avèk HTTP/2, nou itilize yon sèl koneksyon TCP ak lame a pou trete nenpòt kantite demann. Si nou divize resous nan lame prensipal la (orijin) ak CDN, Lè sa a, li nesesè yo distribye demann atravè plizyè domèn epi kreye plizyè koneksyon TCP. Ka ki pi mal la se: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Fòmil sa a pa pran an kont reta nan rezo mobil pou deklanchman chanèl radyo aparèy la (si li pa t aktif) ak reta sou gwo kay won selilè a.

Men sa li sanble sou kaskad chaje sit la (latans pou konekte ak CDN a make nan RTT 150 ms):

[Pa] sèvi ak yon CDN

Si CDN a kouvri tout trafik sit (eksepte pou sèvis twazyèm-pati), Lè sa a, nou ka itilize yon sèl koneksyon TCP, ekonomize reta sou konekte ak lòt lame. Natirèlman, sa a aplike a koneksyon HTTP/2.

Diferans plis yo detèmine pa fonksyonalite yon CDN patikilye - pou premye kalite a li jis òganize yon fichye estatik, pou senkyèm lan li ap chanje plizyè kalite kontni sit nan bi pou yo optimize.

Kapasite CDN pou akselerasyon sit entènèt

Ann dekri tout seri kapasite CDN pou sit akselere, san yo pa konsidere fonksyonalite kalite endividyèl CDN, epi wè sa ki aplike nan chak nan yo.

1. Konpresyon resous tèks yo

Karakteristik ki pi fondamantal ak konprann, men souvan mal aplike. Tout CDN yo deklare prezans konpresyon kòm karakteristik akselerasyon yo. Men, si ou gade an plis detay, enpèfeksyon yo vin klè:

  • degre ki ba pou konpresyon dinamik ka itilize - 5-6 (pou egzanp, pou gzip maksimòm lan se 9);
  • konpresyon estatik (fichye nan kachèt) pa sèvi ak karakteristik adisyonèl (pa egzanp, zopfi oswa brotli ak degre 11)
  • pa gen okenn sipò pou konpresyon brotli efikas (ekonomize apeprè 20% konpare ak gzip).

Si w sèvi ak yon CDN, li vo tcheke kèk pwen sa yo: pran fichye a ki soti nan CDN a, anrejistre gwosè konprese li epi konprese li manyèlman pou konparezon (ou ka itilize kèk sèvis sou entènèt ak sipò brotli, pou egzanp. vsszhat.rf).

2. Mete kliyan an kachèt headers

Epitou yon senp karakteristik akselere: ajoute headers pou kontni kachèt pa kliyan an (navigatè). Header ki pi aktyèl la se kachèt-kontwòl, youn nan demode ap ekspire. Anplis de sa, Etag ka itilize. Bagay pwensipal lan se ke max-laj la nan kachèt-kontwòl se gwo ase (ki soti nan yon mwa oswa plis).Si ou pare yo kachèt resous la osi difisil ke posib, ou ka ajoute opsyon nan imuiabl.

CDN yo ka diminye valè max-laj la, fòse itilizatè a rechaje kontni estatik pi souvan. Li pa klè ki sa sa a konekte ak: dezi a ogmante trafik sou rezo a oswa ogmante konpatibilite ak sit ki pa konnen ki jan yo Reyajiste kachèt la. Pou egzanp, tan an default Cloudflare header kachèt se 1 èdtan, ki trè ba pou done estatik imuiabl.

3. Optimizasyon imaj

Depi CDN a pran fonksyon yo nan kachèt ak sèvi imaj, li ta lojik optimize yo sou bò CDN a epi sèvi yo bay itilizatè yo nan fòm sa a. Ann fè yon rezèvasyon touswit ke karakteristik sa a disponib sèlman pou kalite CDN 2, 3 ak 5.

Ou ka optimize imaj yo nan plizyè fason: lè l sèvi avèk fòma konpresyon avanse (tankou WebP), ankode ki pi efikas (MozJPEG), oswa tou senpleman netwaye metadata ki pa nesesè.

An jeneral, gen de kalite optimize sa yo: ak pèt kalite ak san pèt kalite. CDN yo anjeneral fè efò yo sèvi ak optimize san pèt yo nan lòd yo evite posib plent kliyan sou chanjman nan bon jan kalite imaj. Nan kondisyon sa yo, benefis la pral minim. An reyalite, souvan nivo bon jan kalite JPEG a pi wo pase sa nesesè epi ou ka san danje recompress ak yon nivo bon jan kalite pi ba san yo pa konpwomèt eksperyans itilizatè a. Nan lòt men an, li difisil pou detèmine nivo bon jan kalite a ak anviwònman inivèsèl pou tout aplikasyon entènèt posib, kidonk CDN yo itilize paramèt plis konsèvatif konpare ak sa yo ki ka aplike an konsiderasyon kontèks la (objektif imaj, kalite aplikasyon entènèt la. , elatriye)

4. Optimize koneksyon TLS la

Pifò trafik jodi a vwayaje sou koneksyon TLS, ki vle di nou pase tan anplis nan negosyasyon TLS. Dènyèman, nouvo teknoloji yo te devlope akselere pwosesis sa a. Pou egzanp, sa a se kriptografi EC, TLS 1.3, kachèt sesyon ak tikè, akselerasyon chifreman pyès ki nan konpitè (AES-NI), elatriye. Kòrèkteman mete TLS ka diminye tan koneksyon 0-1 RTT (pa konte DNS ak TCP).

Avèk lojisyèl modèn, li pa difisil pou aplike pratik sa yo poukont ou.

Se pa tout CDN yo aplike pi bon pratik TLS; ou ka tcheke sa lè w mezire tan koneksyon TLS la (pa egzanp, nan Webpagetest). Ideyal pou yon nouvo koneksyon - 1RTT, 2RTT - nivo mwayèn, 3RTT ak plis ankò - move.

Li ta dwe tou remake ke menm lè w ap itilize TLS nan nivo CDN, sèvè a ak aplikasyon entènèt nou an dwe tou trete TLS, men soti nan bò CDN, paske trafik ki genyen ant sèvè a ak CDN a pase sou rezo piblik la. Nan ka ki pi mal la, nou pral jwenn doub reta koneksyon TLS (premye a nan lame CDN a, dezyèm lan ant li ak sèvè nou an).

Pou kèk aplikasyon, li vo peye atansyon sou pwoblèm sekirite: trafik anjeneral dechifre sou nœuds CDN, e sa a se yon opòtinite potansyèl pou entèsepsyon trafik. Opsyon pou travay san divilgasyon trafik anjeneral yo ofri nan plan tarif yo pou yon frè adisyonèl.

5. Diminye reta koneksyon

Benefis prensipal la nan CDN ke tout moun pale sou: ba latansi (mwens distans) ant lame a CDN ak itilizatè a. Reyalize pa kreye yon achitekti rezo distribiye jewografik, nan ki gen tout pouvwa yo sitiye nan pwen konsantrasyon itilizatè yo (vil, pwen echanj trafik, elatriye)

Nan pratik, priyorite pou rezo diferan yo ka nan rejyon espesifik. Pou egzanp, CDN Ris pral gen plis pwen nan prezans nan Larisi. Ameriken yo pral premye devlope rezo a nan USA. Pou egzanp, youn nan pi gwo CDN Cloudflare a gen sèlman 2 pwen nan Larisi - Moskou ak Saint Petersburg. Sa vle di, nou ka sove yon maksimòm apeprè 10 ms nan latansi konpare ak plasman dirèk nan Moskou.

Pifò CDN Lwès yo pa gen pwen nan Larisi ditou. Lè w konekte ak yo, ou ka sèlman ogmante reta yo pou odyans Ris ou a.

6. Optimizasyon kontni (minifikasyon, chanjman estriktirèl)

Pwen ki pi konplèks ak teknoloji avanse. Chanje kontni pandan livrezon ka trè riske. Menm si nou pran minifikasyon: diminye kòd sous la (akòz espas siplemantè, estrikti ki pa enpòtan, elatriye) ka afekte pèfòmans li. Si nou pale sou chanjman ki pi grav - deplase kòd JS la nan fen HTML la, fusion fichye, elatriye - risk pou yo deranje fonksyonalite a nan sit la se menm pi wo.

Se poutèt sa, sèlman kèk tip 5 CDN fè sa. Natirèlman, li pa pral posib otomatize tout chanjman ki nesesè yo akselere bagay sa yo - analiz manyèl ak optimize yo obligatwa. Pou egzanp, retire kòd ki pa itilize oswa kopi se yon travay manyèl.

Kòm yon règ, tout optimize sa yo kontwole pa anviwònman ak sa yo ki pi danjere yo enfim pa default.

Sipò pou kapasite akselerasyon pa kalite CDN

Se konsa, kite a pran yon gade nan ki opòtinite potansyèl akselerasyon diferan kalite CDN yo bay.

Pou konvenyans, nou repete klasifikasyon an.

  1. CDN gratis pou distribye bibliyotèk JS (MaxCDN, Google. Yandex).
  2. CDN nan sèvis pou optimize kliyan (pa egzanp, Google Polis pou polis, Cloudinary, Cloudimage pou imaj).
  3. CDN pou optimize estatik ak resous nan CMS (disponib nan Bitrix, WordPress ak lòt moun).
  4. Objektif jeneral CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN pou akselerasyon sit entènèt (Cloudflare, Imperva, Airi).

Koulye a, kite a konpare karakteristik yo ak kalite CDN.

Posibilite
Kalite 1
Kalite 2
Kalite 3
Kalite 4
Kalite 5

Konpresyon tèks
+–
-
+–
+–
+

Tèt kachèt
+
+
+
+
+

Foto
-
+–
+–
-
+

tl
-
-
-
+–
+

Reta
-
-
-
+
+

Kontni
-
-
-
-
+

Nan tablo sa a, "+" yo itilize pou endike sipò konplè, "-" pa gen okenn sipò, ak "+-" se sipò pasyèl. Natirèlman, ka gen devyasyon nan tablo sa a an reyalite (pa egzanp, kèk CDN jeneral ap aplike karakteristik pou optimize imaj), men pou yon lide jeneral li itil.

Rezilta

Èspere ke, apre ou fin li atik sa a ou pral gen yon foto pi klè konsènan rekòmandasyon "itilize yon CDN" pou pi vit sit ou yo.

Kòm nan nenpòt biznis, ou pa ka kwè pwomès maketing nan nenpòt sèvis. Efè a bezwen mezire ak teste nan kondisyon reyèl. Si w deja itilize yon CDN, tcheke li pou efikasite lè l sèvi avèk kritè ki dekri nan atik la.

Li posib ke lè w sèvi ak yon CDN kounye a ap ralanti tan chaj sit ou a.

Kòm yon rekòmandasyon jeneral, nou ka konsantre sou sa ki annapre yo: etidye odyans ou a, detèmine dimansyon jeyografik li yo. Si odyans prensipal ou a konsantre nan yon reyon 1-2 mil kilomèt, ou pa bezwen yon CDN pou objektif prensipal li - diminye latansi. Olye de sa, ou ka mete sèvè ou a pi pre itilizatè ou yo ak konfigirasyon li byen, jwenn pi fò nan optimize yo dekri nan atik la (gratis ak pèmanan).

Nan ka odyans ou a vrèman distribye jeyografikman (reyon ki gen plis pase 3000 kilomèt), lè l sèvi avèk yon CDN bon jan kalite pral reyèlman itil. Sepandan, ou bezwen konprann davans ki sa egzakteman CDN ou a ka akselere (gade tablo kapasite yo ak deskripsyon yo). Sepandan, akselerasyon sit entènèt toujou rete yon travay konplèks ki pa ka rezoud pa konekte yon CDN. Anplis optimize ki anwo yo, mwayen ki pi efikas nan akselerasyon rete dèyè CDN a: optimize pati sèvè a, chanjman avanse nan pati kliyan an (retire kòd ki pa itilize, optimize pwosesis rann, travay ak kontni, polis, adaptabilite, elatriye. )

Sous: www.habr.com

Add nouvo kòmantè