[Maṣe] lo CDN kan

O fẹrẹ to gbogbo nkan tabi ohun elo fun mimu iyara aaye pọ si ni gbolohun kekere kan “lo CDN kan.” Ni gbogbogbo, CDN jẹ nẹtiwọki ifijiṣẹ akoonu tabi nẹtiwọki ifijiṣẹ akoonu. A ni Ọna Lab nigbagbogbo ba pade awọn ibeere lati ọdọ awọn alabara lori koko yii; Idi ti nkan yii ni lati ni oye kini CDN le pese ni awọn ofin ti iyara ikojọpọ aaye, awọn iṣoro wo ni o le dide, ati ninu awọn ọran wo lilo CDN jẹ idalare.

[Maṣe] lo CDN kan

Awọn idaduro ti a yika ni aworan jẹ ṣẹlẹ nipasẹ lilo CDN kan.

A bit ti itan

Bii ọpọlọpọ awọn imọ-ẹrọ, awọn CDN jade ti iwulo. Pẹlu idagbasoke awọn ikanni Intanẹẹti laarin awọn olumulo Intanẹẹti, awọn iṣẹ fidio ori ayelujara han. Nipa ti ara, akoonu fidio nilo awọn aṣẹ ti iwọn bandiwidi diẹ sii ni akawe si akoonu oju opo wẹẹbu deede (awọn aworan, ọrọ, ati CSS tabi koodu JS).

Nigbati o ba n gbiyanju lati ṣe ikede ṣiṣan fidio kan ni afiwe si ọpọlọpọ awọn alabara lati ọdọ olupin kan, ikanni Intanẹẹti olupin naa yoo ṣeese di igo. Gẹgẹbi ofin, awọn opo ẹgbẹrun diẹ to lati di ikanni olupin aṣoju kan. Nitoribẹẹ, awọn idiwọn orisun miiran le wa, ṣugbọn wọn ko ṣe pataki ni bayi. O tun ṣe pataki pe faagun ikanni olupin naa jẹ gbowolori pupọ (ati nigbakan ko ṣee ṣe), ati pe ko ṣee ṣe. Awọn fifuye lori ikanni nigba awọn igbohunsafefe yoo jẹ cyclical.

Iṣoro ti diwọn ikanni ti olupin kọọkan jẹ ipinnu ni pipe nipasẹ CDN. Awọn onibara ko sopọ si olupin taara, ṣugbọn si awọn apa inu nẹtiwọki CDN. Ni ipo ti o dara julọ, olupin naa nfi ṣiṣan kan ranṣẹ si ipade CDN, lẹhinna nẹtiwọki nlo awọn ohun elo ti ara rẹ lati fi ṣiṣan yii ranṣẹ si ọpọlọpọ awọn olumulo. Lati oju iwoye ọrọ-aje, a sanwo nikan fun awọn orisun ti o jẹ gangan (eyi le jẹ bandiwidi tabi ijabọ) ati gba iwọn ti o dara julọ ti iṣẹ wa. Lilo CDN kan lati fi akoonu wuwo jẹ idalare patapata ati ọgbọn. Botilẹjẹpe o tọ lati ṣe akiyesi pe awọn oṣere nla julọ ni aaye yii (fun apẹẹrẹ Netflix) n kọ CDN tiwọn dipo lilo CDN ti iṣowo nla (Akamai, Cloudflare, Fastly, bbl)

Bi oju opo wẹẹbu ti wa, awọn ohun elo wẹẹbu funrara wọn ti di idiju ati idiju. Iṣoro ti iyara ikojọpọ wa si iwaju. Awọn ololufẹ iyara oju opo wẹẹbu yarayara ṣe idanimọ ọpọlọpọ awọn iṣoro pataki ti o fa ki awọn oju opo wẹẹbu ṣe fifuye laiyara. Ọkan ninu wọn ni awọn idaduro nẹtiwọki (RTT - akoko irin ajo tabi akoko ping). Awọn idaduro ni ipa lori ọpọlọpọ awọn ilana ni ikojọpọ oju opo wẹẹbu: iṣeto asopọ TCP kan, bẹrẹ igba TLS kan, ikojọpọ awọn orisun kọọkan (aworan, faili JS, iwe HTML, ati bẹbẹ lọ)

Iṣoro naa buru si nipasẹ otitọ pe nigba lilo ilana HTTP / 1.1 (ṣaaju wiwa ti SPDY, QUIC ati HTTP/2 eyi ni aṣayan nikan), awọn aṣawakiri ṣii ko ju awọn asopọ TCP 6 lọ si ogun kan. Gbogbo eyi yori si idaduro akoko asopọ ati lilo aiṣedeede ti bandiwidi ikanni. Iṣoro naa jẹ ipinnu ni apakan nipasẹ sharding agbegbe - ṣiṣẹda awọn ọmọ-ogun afikun lati bori opin lori nọmba awọn asopọ.

Eyi ni ibiti agbara keji ti CDN yoo han - idinku lairi (RTT) nitori nọmba nla ti awọn aaye ati isunmọ awọn apa si olumulo. Ijinna ṣe ipa ipinnu nibi: iyara ina ti ni opin (nipa 200 km / iṣẹju-aaya ni okun opiti). Eyi tumọ si pe gbogbo 000 km ti irin-ajo ṣe afikun 1000 ms ti idaduro tabi 5 ms si RTT. Eyi ni akoko to kere julọ ti o nilo fun gbigbe, nitori awọn idaduro tun wa lori ohun elo agbedemeji. Niwọn igba ti CDN nigbagbogbo mọ bi o ṣe le kaṣe awọn nkan lori olupin rẹ, a le ni anfani lati ikojọpọ iru awọn nkan nipasẹ CDN kan. Awọn ipo pataki fun eyi: wiwa ohun ti o wa ninu kaṣe, isunmọ ti CDN ojuami si olumulo ni afiwe pẹlu olupin ohun elo ayelujara (olupin ipilẹṣẹ). O ṣe pataki lati ni oye pe isunmọ agbegbe ti apa CDN ko ṣe iṣeduro lairi kekere. Ipa ọna laarin alabara ati CDN le ṣe itumọ ni ọna ti alabara yoo sopọ si agbalejo ni orilẹ-ede miiran, ati boya ni kọnputa miiran. Eyi ni ibi ti ibatan laarin awọn oniṣẹ telecom ati iṣẹ CDN (peering, awọn asopọ, ikopa ninu IX, bbl) ati eto imulo ipa ọna ti CDN funrararẹ wa sinu ere. Fun apẹẹrẹ, Cloudflare, nigba lilo awọn ero ibẹrẹ meji (ọfẹ ati olowo poku), ko ṣe iṣeduro ifijiṣẹ akoonu lati ọdọ agbalejo to sunmọ - agbalejo yoo yan lati ṣaṣeyọri idiyele to kere julọ.

Ọpọlọpọ awọn ile-iṣẹ Intanẹẹti ti o jẹ asiwaju ṣe ifamọra iwulo gbogbo eniyan (awọn olupilẹṣẹ wẹẹbu ati awọn oniwun iṣẹ) si koko ti iyara ikojọpọ ati iṣẹ oju opo wẹẹbu. Lara awọn ile-iṣẹ wọnyi ni Yahoo (ọpa Yslow), AOL (WebPageTest) ati Google (iṣẹ Awọn Imọye Iyara Oju-iwe), eyiti o ndagba awọn iṣeduro tiwọn fun awọn aaye iyara (ni akọkọ wọn ni ibatan si iṣapeye alabara). Nigbamii, awọn irinṣẹ idanwo iyara oju opo wẹẹbu tuntun han, eyiti o tun pese awọn imọran lori jijẹ iyara oju opo wẹẹbu. Ọkọọkan awọn iṣẹ wọnyi tabi awọn afikun ni iṣeduro deede: “Lo CDN kan.” Idinku ni aipe nẹtiwọki ni a maa n tọka si bi alaye fun ipa ti CDN. Laanu, kii ṣe gbogbo eniyan ti ṣetan lati ni oye gangan bi ipa isare ti CDN ṣe waye ati bii o ṣe le ṣe iwọn, nitorinaa a gba iṣeduro lori igbagbọ ati lo bi ifiweranṣẹ. Ni otitọ, kii ṣe gbogbo awọn CDN ni a ṣẹda dogba.

Lilo CDN Loni

Lati ṣe ayẹwo iwulo ti lilo CDN, wọn nilo lati wa ni ipin. Kini o le rii ni bayi ni iṣe (awọn apẹẹrẹ ni awọn biraketi jẹ, dajudaju, ko pari):

  1. CDN ọfẹ fun pinpin awọn ile-ikawe JS (MaxCDN, Google. Yandex).
  2. CDN ti awọn iṣẹ fun iṣapeye alabara (fun apẹẹrẹ, Awọn Fonts Google fun awọn nkọwe, Cloudinary, Cloudimage fun awọn aworan).
  3. CDN fun aimi ati iṣapeye awọn orisun ni CMS (wa ni Bitrix, Wodupiresi ati awọn miiran).
  4. Idi gbogbogbo CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN fun isare oju opo wẹẹbu (Cloudflare, Imperva, Airi).

Iyatọ bọtini laarin awọn iru wọnyi ni iye ti ijabọ ti n lọ nipasẹ CDN. Awọn oriṣi 1-3 jẹ ifijiṣẹ ti apakan akoonu nikan: lati ibeere kan si ọpọlọpọ mejila (nigbagbogbo awọn aworan). Awọn oriṣi 4 ati 5 jẹ aṣoju kikun ti ijabọ nipasẹ CDN kan.

Ni iṣe, eyi tumọ si nọmba awọn asopọ ti a lo lati gbe aaye naa. Pẹlu HTTP/2, a lo asopọ TCP kan si agbalejo lati ṣe ilana eyikeyi nọmba awọn ibeere. Ti a ba pin awọn orisun sinu agbalejo akọkọ (orisun) ati CDN, lẹhinna o jẹ dandan lati kaakiri awọn ibeere kọja awọn agbegbe pupọ ati ṣẹda awọn asopọ TCP pupọ. Ọran ti o buru julọ ni: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Ilana yii ko ṣe akiyesi awọn idaduro ni awọn nẹtiwọọki alagbeka fun ṣiṣiṣẹ ti ikanni redio ẹrọ naa (ti ko ba ṣiṣẹ) ati awọn idaduro lori ile-iṣọ sẹẹli.

Eyi ni ohun ti o dabi lori isosile omi ikojọpọ aaye naa (awọn latencies fun sisopọ si CDN jẹ afihan ni RTT 150 ms):

[Maṣe] lo CDN kan

Ti CDN ba bo gbogbo ijabọ aaye (ayafi fun awọn iṣẹ ẹnikẹta), lẹhinna a le lo asopọ TCP kan ṣoṣo, fifipamọ awọn idaduro lori sisopọ si awọn agbalejo afikun. Dajudaju, eyi kan si awọn asopọ HTTP/2.

Awọn iyatọ siwaju sii ni ipinnu nipasẹ iṣẹ ṣiṣe ti CDN kan pato - fun oriṣi akọkọ o kan gbalejo faili aimi kan, fun karun o n yi ọpọlọpọ awọn iru akoonu aaye pada fun idi ti iṣapeye.

Awọn agbara CDN fun isare oju opo wẹẹbu

Jẹ ki a ṣe apejuwe iwọn kikun ti awọn agbara CDN fun awọn aaye isare, laisi iyi si iṣẹ ṣiṣe ti awọn oriṣi CDN kọọkan, ati lẹhinna wo ohun ti a ṣe ni ọkọọkan wọn.

1. Funmorawon ti ọrọ oro

Ipilẹṣẹ julọ ati ẹya ti oye, sibẹsibẹ nigbagbogbo ni imuse ti ko dara. Gbogbo CDN n kede wiwa ti funmorawon bi ẹya isare wọn. Ṣugbọn ti o ba wo ni awọn alaye diẹ sii, awọn aito di mimọ:

  • awọn iwọn kekere fun funmorawon agbara le ṣee lo - 5-6 (fun apẹẹrẹ, fun gzip o pọju jẹ 9);
  • funmorawon aimi (awọn faili ni kaṣe) ko lo awọn ẹya afikun (fun apẹẹrẹ, zopfi tabi brotli pẹlu iwọn 11)
  • ko si atilẹyin fun funmorawon brotli daradara (fifipamọ nipa 20% ni akawe si gzip).

Ti o ba lo CDN kan, o tọ lati ṣayẹwo awọn aaye diẹ wọnyi: mu faili ti o wa lati CDN, ṣe igbasilẹ iwọn fisinuirindigbindigbin ki o fun pọ pẹlu ọwọ fun lafiwe (o le lo diẹ ninu awọn iṣẹ ori ayelujara pẹlu atilẹyin brotli, fun apẹẹrẹ. vsszhat.rf).

2. Eto ibara caching afori

Paapaa ẹya iyara ti o rọrun: ṣafikun awọn akọle fun caching akoonu nipasẹ alabara (oluwakiri). Akọsori lọwọlọwọ julọ jẹ iṣakoso kaṣe, eyi ti o ti kọja ti pari. Ni afikun, Etag le ṣee lo. Ohun akọkọ ni pe ọjọ-ori ti iṣakoso kaṣe ti o tobi to (lati oṣu kan tabi diẹ sii).

Awọn CDN le dinku iye ọjọ-ori ti o pọju, fi ipa mu olumulo lati tun gbe akoonu aimi silẹ nigbagbogbo. Ko ṣe afihan kini eyi ni asopọ pẹlu: ifẹ lati mu ijabọ pọ si lori nẹtiwọọki tabi mu ibaramu pọ si pẹlu awọn aaye ti ko mọ bi o ṣe le tun kaṣe naa. Fun apẹẹrẹ, akoko kaṣe akọsori Cloudflare aiyipada jẹ wakati 1, eyiti o kere pupọ fun data aimi aile yipada.

3. Aworan ti o dara ju

Niwọn igba ti CDN gba awọn iṣẹ ti caching ati sìn awọn aworan, yoo jẹ ọgbọn lati mu wọn dara si ni ẹgbẹ CDN ki o sin wọn si awọn olumulo ni fọọmu yii. Jẹ ki a ṣe ifiṣura lẹsẹkẹsẹ pe ẹya yii wa fun awọn iru CDN 2, 3 ati 5 nikan.

O le mu awọn aworan dara si ni awọn ọna oriṣiriṣi: lilo awọn ọna kika funmorawon to ti ni ilọsiwaju (gẹgẹbi WebP), awọn koodu iṣiṣẹ daradara diẹ sii (MozJPEG), tabi nirọrun nu metadata ti ko wulo.

Ni gbogbogbo, awọn oriṣi meji ti iru awọn iṣapeye: pẹlu pipadanu didara ati laisi pipadanu didara. Awọn CDN nigbagbogbo n tiraka lati lo iṣapeye ti ko ni ipadanu lati yago fun awọn ẹdun alabara ti o ṣeeṣe nipa awọn ayipada ninu didara aworan. Ni iru awọn ipo bẹẹ, ere yoo jẹ iwonba. Ni otitọ, nigbagbogbo ipele didara JPEG ga julọ ju iwulo lọ ati pe o le ṣe atunṣe lailewu pẹlu ipele didara kekere laisi ibajẹ iriri olumulo. Ni apa keji, o nira lati pinnu ipele ti didara ati awọn eto ni gbogbo agbaye fun gbogbo awọn ohun elo wẹẹbu ti o ṣeeṣe, nitorinaa awọn CDN lo awọn eto Konsafetifu diẹ sii ni akawe si awọn ti o le lo ni akiyesi agbegbe (idi ti awọn aworan, iru ohun elo wẹẹbu , ati be be lo)

4. Ti o dara ju TLS asopọ

Pupọ julọ ijabọ loni n rin lori awọn asopọ TLS, eyiti o tumọ si pe a lo akoko afikun lori awọn idunadura TLS. Laipe, awọn imọ-ẹrọ tuntun ti ni idagbasoke lati mu ilana yii pọ si. Fun apẹẹrẹ, eyi ni EC cryptography, TLS 1.3, kaṣe igba ati awọn tiketi, isare fifi ẹnọ kọ nkan hardware (AES-NI), bbl Eto TLS ti o tọ le dinku akoko asopọ si 0-1 RTT (kii ṣe kika DNS ati TCP).

Pẹlu sọfitiwia igbalode, ko nira lati ṣe iru awọn iṣe bẹ funrararẹ.

Kii ṣe gbogbo awọn CDN ṣe awọn iṣe ti o dara julọ TLS o le ṣayẹwo eyi nipa wiwọn akoko asopọ TLS (fun apẹẹrẹ, ni oju opo wẹẹbu). Apẹrẹ fun asopọ tuntun - 1RTT, 2RTT - ipele apapọ, 3RTT ati diẹ sii - buburu.

O yẹ ki o tun ṣe akiyesi pe paapaa nigba lilo TLS ni ipele CDN, olupin pẹlu ohun elo wẹẹbu wa gbọdọ tun ṣe ilana TLS, ṣugbọn lati ẹgbẹ CDN, nitori ijabọ laarin olupin ati CDN kọja lori nẹtiwọọki gbogbogbo. Ninu ọran ti o buru julọ, a yoo gba awọn idaduro asopọ TLS meji (akọkọ si agbalejo CDN, keji laarin rẹ ati olupin wa).

Fun diẹ ninu awọn ohun elo, o tọ lati san ifojusi si awọn ọran aabo: a maa n pa awọn ijabọ lori awọn apa CDN, ati pe eyi jẹ aye ti o pọju fun ikọlu ijabọ. Aṣayan ti ṣiṣẹ laisi ifitonileti ijabọ ni igbagbogbo funni ni awọn ero idiyele oke fun idiyele afikun.

5. Din awọn idaduro asopọ

Anfani akọkọ ti CDN ti gbogbo eniyan n sọrọ nipa: lairi kekere (ijinna to kere) laarin agbalejo CDN ati olumulo. Ti ṣaṣeyọri nipasẹ ṣiṣẹda faaji nẹtiwọọki ti pin kaakiri, ninu eyiti awọn ọmọ-ogun wa ni awọn aaye ti ifọkansi ti awọn olumulo (awọn ilu, awọn aaye paṣipaarọ ijabọ, ati bẹbẹ lọ)

Ni iṣe, awọn ayo fun awọn nẹtiwọọki oriṣiriṣi le wa ni awọn agbegbe kan pato. Fun apẹẹrẹ, awọn CDN Russia yoo ni awọn aaye diẹ sii ti wiwa ni Russia. Awọn Amẹrika yoo kọkọ ṣe idagbasoke nẹtiwọọki ni AMẸRIKA. Fun apẹẹrẹ, ọkan ninu CDN Cloudflare ti o tobi julọ ni awọn aaye 2 nikan ni Russia - Moscow ati St. Iyẹn ni, a le ṣafipamọ o pọju nipa 10 ms ti lairi ni akawe si gbigbe taara ni Ilu Moscow.

Pupọ julọ awọn CDN Western ko ni awọn aaye ni Russia rara. Nipa sisopọ si wọn, o le mu awọn idaduro pọ si fun awọn olugbo Russian rẹ.

6. Iṣatunṣe akoonu (minification, awọn ayipada igbekalẹ)

Idiju julọ ati aaye ilọsiwaju imọ-ẹrọ. Yiyipada akoonu lakoko ifijiṣẹ le jẹ eewu pupọ. Paapa ti a ba mu miniification: idinku koodu orisun (nitori awọn aaye afikun, awọn ẹya ti ko ṣe pataki, ati bẹbẹ lọ) le ni ipa lori iṣẹ rẹ. Ti a ba sọrọ nipa awọn ayipada to ṣe pataki diẹ sii - gbigbe koodu JS si opin HTML, awọn faili dapọ, ati bẹbẹ lọ - eewu ti idalọwọduro iṣẹ ṣiṣe ti aaye naa paapaa ga julọ.

Nitorina, nikan diẹ ninu awọn iru 5 CDN ṣe eyi. Nitoribẹẹ, kii yoo ṣee ṣe lati ṣe adaṣe gbogbo awọn ayipada ti o nilo lati yara awọn nkan soke-itupalẹ afọwọṣe ati iṣapeye ni a nilo. Fun apẹẹrẹ, yiyọ ajeku tabi koodu ẹda-ẹda jẹ iṣẹ afọwọṣe.

Gẹgẹbi ofin, gbogbo iru awọn iṣapeye ni iṣakoso nipasẹ awọn eto ati awọn ti o lewu julọ jẹ alaabo nipasẹ aiyipada.

Atilẹyin fun awọn agbara isare nipasẹ iru CDN

Nitorinaa jẹ ki a wo kini awọn anfani isare ti o pọju ti awọn oriṣiriṣi CDN pese.

Fun wewewe, a tun awọn classification.

  1. CDN ọfẹ fun pinpin awọn ile-ikawe JS (MaxCDN, Google. Yandex).
  2. CDN ti awọn iṣẹ fun iṣapeye alabara (fun apẹẹrẹ, Awọn Fonts Google fun awọn nkọwe, Cloudinary, Cloudimage fun awọn aworan).
  3. CDN fun aimi ati iṣapeye awọn orisun ni CMS (wa ni Bitrix, Wodupiresi ati awọn miiran).
  4. Idi gbogbogbo CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN fun isare oju opo wẹẹbu (Cloudflare, Imperva, Airi).

Bayi jẹ ki a ṣe afiwe awọn ẹya ati awọn iru CDN.

Anfani
Tẹ 1
Tẹ 2
Tẹ 3
Tẹ 4
Tẹ 5

Ọrọ funmorawon
+–
-
+–
+–
+

Awọn akọle kaṣe
+
+
+
+
+

Awọn aworan
-
+–
+–
-
+

TLS
-
-
-
+–
+

Awọn idaduro
-
-
-
+
+

Akoonu
-
-
-
-
+

Ninu tabili yii, “+” ni a lo lati tọka atilẹyin kikun, “-” kii ṣe atilẹyin, ati “+-” jẹ atilẹyin apa kan. Nitoribẹẹ, awọn iyapa le wa lati tabili yii ni otitọ (fun apẹẹrẹ, diẹ ninu awọn idi gbogbogbo CDN yoo ṣe awọn ẹya fun imudara awọn aworan), ṣugbọn fun imọran gbogbogbo o wulo.

Awọn esi

Ni ireti, lẹhin kika nkan yii iwọ yoo ni aworan ti o han gbangba nipa iṣeduro “lo CDN kan” lati yara awọn aaye rẹ.

Bi ninu eyikeyi iṣowo, o ko le gbagbọ awọn ileri tita ti iṣẹ eyikeyi. Ipa naa nilo lati ṣe iwọn ati idanwo labẹ awọn ipo gidi. Ti o ba ti nlo CDN tẹlẹ, ṣayẹwo rẹ fun imunadoko nipa lilo awọn ibeere ti a ṣalaye ninu nkan naa.

O ṣee ṣe pe lilo CDN ni bayi n fa fifalẹ akoko ikojọpọ aaye rẹ.

Gẹgẹbi iṣeduro gbogbogbo, a le dojukọ awọn atẹle: ṣe iwadi awọn olugbo rẹ, pinnu iwọn agbegbe rẹ. Ti awọn olugbo akọkọ rẹ ba ni idojukọ laarin rediosi ti 1-2 ẹgbẹrun kilomita, iwọ ko nilo CDN kan fun idi akọkọ rẹ - idinku lairi. Dipo, o le gbe olupin rẹ sunmọ awọn olumulo rẹ ki o tunto rẹ daradara, gbigba pupọ julọ awọn iṣapeye ti a ṣalaye ninu nkan naa (ọfẹ ati ayeraye).

Ti awọn olugbo rẹ ba pin kaakiri nitootọ (radius ti o ju awọn kilomita 3000 lọ), lilo CDN didara kan yoo wulo gaan. Sibẹsibẹ, o nilo lati ni oye ni ilosiwaju kini gangan CDN rẹ le yara (wo tabili awọn agbara ati apejuwe wọn). Bibẹẹkọ, isare oju opo wẹẹbu tun jẹ iṣẹ-ṣiṣe eka kan ti a ko le yanju nipasẹ sisopọ CDN kan. Ni afikun si awọn iṣapeye ti o wa loke, awọn ọna isare ti o munadoko julọ wa lẹhin CDN: iṣapeye ti apakan olupin, awọn ayipada ilọsiwaju si apakan alabara (yiyọ koodu ti ko lo, mimuṣe ilana ṣiṣe, ṣiṣẹ pẹlu akoonu, awọn nkọwe, isọdi, ati bẹbẹ lọ. )

orisun: www.habr.com

Fi ọrọìwòye kun