[Usa]shandisa CDN

Chinenge chinyorwa chega chega kana chishandiso chekugadzirisa kumhanya kwesaiti chine chirevo chine mwero "shandisa CDN." Kazhinji, CDN itiweki yekutumira zvemukati kana yemukati yekutumira network. Isu paMethod Lab tinowanzosangana nemibvunzo kubva kune vatengi pane iyi nyaya; mamwe acho anogonesa yavo CDN. Chinangwa chechinyorwa chino ndechekunzwisisa izvo CDN inogona kupa maererano nekumhanya kwesaiti kurodha, ndeapi matambudziko angamuka, uye mune izvo zviitiko kushandiswa kweCDN kwakakodzera.

[Usa]shandisa CDN

Iko kunonoka kwakatenderedzwa mumufananidzo kunokonzerwa nekushandiswa kweCDN.

A bit of history

Kufanana nematekinoroji mazhinji, maCDN akabuda kunze kwekudikanwa. Nekuvandudzwa kwematanho eInternet pakati pevashandisi veInternet, masevhisi evhidhiyo epamhepo akaonekwa. Sezvingatarisirwa, zvemukati zvevhidhiyo zvinoda maodha ehukuru hwakawanda bandwidth zvichienzaniswa neyakajairwa webhusaiti zvemukati (mifananidzo, zvinyorwa, uye CSS kana JS kodhi).

Paunenge uchiedza kutepfenyura vhidhiyo inoyerera inoenderana nevatengi vazhinji kubva kune imwe sevha, sevha yeInternet chiteshi ingangove iyo bhodhoro. Sezvo mutemo, zviuru zvishoma zveshinda zvinokwana kuvhara yakajairika server chiteshi. Ehe, panogona kunge paine zvimwe zviwanikwa zvekushandisa, asi hazvina kukosha izvozvi. Izvo zvakakoshawo kuti kuwedzera sevha chiteshi kunodhura zvakanyanya (uye dzimwe nguva hazvigoneke), uye zvakare hazvigoneke. Kuremerwa pachiteshi panguva yekutepfenyura kuchave kwakatenderera.

Dambudziko rekudzikamisa chiteshi chesevha yega yega rinogadziriswa zvakakwana neCDN. Vatengi havabatanidzi kune server zvakananga, asi kune node muCDN network. Mumamiriro ezvinhu akanaka, sevha inotumira rukova kuCDN node, uye ipapo network inoshandisa yayo zviwanikwa kuendesa iyi rwizi kune vakawanda vashandisi. Kubva pamaonero ehupfumi, tinobhadhara chete zviwanikwa zvinodyiwa (izvi zvinogona kunge zviri bandwidth kana traffic) uye kuwana yakanakisa scalability yebasa redu. Kushandisa CDN kuendesa zvinorema zvinonzwisisika uye zvine musoro. Kunyangwe zvakakosha kucherechedza kuti vatambi vakuru munzvimbo ino (semuenzaniso Netflix) vari kuvaka maCDN avo pane kushandisa maCDN makuru ekutengesa (Akamai, Cloudflare, Fastly, etc.)

Sezvo dandemutande rakashanduka, mashandisirwo ewebhu pachawo ave akaomarara uye akaomarara. Dambudziko rekupakura speed rakauya. Webhusaiti yekumhanyisa vanofarira vakakurumidza kuona akati wandei matambudziko akakonzeresa kuti mawebhusaiti atakure zvishoma nezvishoma. Imwe yacho yaive kunonoka kwetiweki (RTT - nguva yekutenderera kana nguva yeping). Kunonoka kunokanganisa maitiro mazhinji mukurodha webhusaiti: kumisikidza kubatana kweTCP, kutanga musangano weTLS, kurodha yega yega sosi (mufananidzo, JS faira, HTML gwaro, nezvimwewo)

Dambudziko rakawedzerwa nenyaya yekuti kana uchishandisa HTTP/1.1 protocol (kusati kwasvika SPDY, QUIC neHTTP/2 iyi ndiyo yaive sarudzo chete), mabhurawuza anovhura asingapfuure 6 TCP yekubatanidza kune imwe chete. Zvese izvi zvakakonzera kubatanidza kuderera uye kusashanda zvakanaka kwechiteshi bandwidth. Dambudziko rakagadziriswa zvishoma nedomain sharding - kusikwa kwemamwe mauto kuti akunde muganho pahuwandu hwekubatanidza.

Apa ndipo panoonekwa kugona kwechipiri kweCDN - kuderedza latency (RTT) nekuda kwenhamba huru yemapoinzi uye kuswedera kwemanodhi kumushandisi. Kureba kunoita basa rekuita pano: kumhanya kwechiedza kunogumira (anenge 200 km/sec mune optical fiber). Izvi zvinoreva kuti 000 km yega yekufamba inowedzera 1000 ms yekunonoka kana gumi ms kuRTT. Iyi ndiyo nguva shoma inodiwa pakutapurirana, sezvo painewo kunonoka pamidziyo yepakati. Sezvo CDN inowanzoziva kuchengetedza zvinhu pamaseva ayo, tinogona kubatsirwa nekutakura zvinhu zvakadaro kuburikidza neCDN. Mamiriro ezvinhu anodiwa eizvi: kuvapo kwechinhu chiri mu cache, kuswedera kweCDN kunongedza kumushandisi mukuenzanisa newebhu application server (yekutanga server). Izvo zvakakosha kuti unzwisise kuti geographic kuswedera kweCDN node hakuvimbisi yakaderera latency. Kufambisa pakati pemutengi neCDN kunogona kuvakwa nenzira yekuti mutengi achabatana neanotambira kune imwe nyika, uye pamwe kune imwe kondinendi. Apa ndipo panopinda hukama pakati pevafambisi venhare uye sevhisi yeCDN (kutarisa, kubatana, kutora chikamu muIX, nezvimwewo) uye mutemo wekufambisa traffic weCDN pachawo. Semuenzaniso, Cloudflare, kana uchishandisa zvirongwa zviviri zvekutanga (yemahara uye zvakachipa), haivimbisi kuendeswa kwemukati kubva kune ari pedyo mugadziri - muenzi achasarudzwa kuti awane mari shoma.

Mazhinji makambani anotungamira eInternet anokwezva kufarira veruzhinji (vagadziri vewebhu uye varidzi vesevhisi) kune musoro wekumhanyisa kurodha uye kuita kwewebhusaiti. Pakati pemakambani aya pane Yahoo (Yslow chishandiso), AOL (WebPageTest) neGoogle (Peji Yekumhanyisa Insights sevhisi), vari kugadzira yavo kurudziro yekumhanyisa masaiti (kunyanya iwo ane chekuita nevatengi optimization). Gare gare, maturusi matsva ekuyedza webhusaiti anooneka, ayo anopawo matipi ekuwedzera kukurumidza kwewebhusaiti. Imwe neimwe yeaya masevhisi kana plugins ine kurudziro inowirirana: "Shandisa CDN." Iko kuderedzwa kwe network latency kunowanzo kutaurwa setsananguro yemhedzisiro yeCDN. Nehurombo, havasi vese vakagadzirira kunyatsonzwisisa kuti iyo yekumhanyisa mhedzisiro yeCDN inowanikwa sei uye kuti inogona kuyerwa sei, saka kurudziro inotorwa pakutenda uye inoshandiswa sechirevo. Muchokwadi, haasi ese maCDN anogadzirwa akaenzana.

Kushandisa CDN Nhasi

Kuti uongorore kubatsira kwekushandisa maCDN, anofanirwa kuverengerwa. Chii chinogona kuwanikwa ikozvino mukuita (mienzaniso mumabhuraketi, hongu, haina kupera):

  1. Yemahara CDN yekugovera JS maraibhurari (MaxCDN, Google. Yandex).
  2. CDN yemasevhisi ekugadzirisa mutengi (semuenzaniso, Google Fonts yemafonti, Cloudinary, Cloudimage yemifananidzo).
  3. CDN ye static uye zviwanikwa optimization muCMS (inowanikwa muBitrix, WordPress uye nevamwe).
  4. General chinangwa CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN yekumhanyisa webhusaiti (Cloudflare, Imperva, Airi).

Musiyano wakakosha pakati pemhando idzi ndewekuti yakawanda sei traffic inopinda neCDN. Mhando 1-3 ndiko kuendeswa kwechikamu chemukati chete: kubva pane chimwe chikumbiro kusvika gumi nemaviri (kazhinji mifananidzo). Mhando 4 ne5 izere proxying yetraffic kuburikidza neCDN.

Mukuita, izvi zvinoreva huwandu hwekubatanidza hunoshandiswa kurodha saiti. NeHTTP/2, tinoshandisa imwechete TCP yekubatanidza kune iyo host kugadzirisa chero nhamba yezvikumbiro. Kana tikagovanisa zviwanikwa kuita main host (mabviro) neCDN, saka zvinodikanwa kugovera zvikumbiro mumatunhu akati wandei uye kugadzira akati wandei TCP. Nyaya yakaipisisa ndeye: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Iyi fomula haitarise kunonoka kwenharembozha kuti iite activation yeredhiyo chiteshi (kana yanga isiri kushanda) uye kunonoka pane cell tower.

Hezvino zvinoita senge pane saiti yekurodha mapopoma (latencies yekubatanidza kuCDN inoratidzirwa paRTT 150 ms):

[Usa]shandisa CDN

Kana iyo CDN ichivhara ese saiti traffic (kunze kwevechitatu-bato masevhisi), saka isu tinogona kushandisa imwechete TCP yekubatanidza, kuchengetedza kunonoka pakubatanidza kune mamwe mauto. Ehe, izvi zvinoshanda kune HTTP/2 kubatana.

Mimwe misiyano inotarwa nekushanda kweimwe CDN - yerudzi rwekutanga ingori kutambira static faira, yechishanu iri kushandura akati wandei ezvinyorwa zvesaiti nechinangwa chekugadzirisa.

CDN kugona kwewebhusaiti kukurumidza

Ngatitsanangurirei huwandu hwakazara hweCDN yekumhanyisa masaiti, tisingatarise kushanda kwemarudzi eCDN ega ega, tozoona kuti chii chinoitwa mune imwe neimwe yadzo.

1. Kudzvinyirirwa kwezvinyorwa zvinyorwa

Chinhu chinonyanya kukosha uye chinonzwisisika, asi chinowanzoitwa zvisina kunaka. Ese maCDN anozivisa kuvepo kwekumanikidza sechinhu chekusimudzira. Asi kana iwe ukatarisa zvakadzama, zvikanganiso zvinova pachena:

  • madhigirii akaderera ekudzvinyirira ane simba anogona kushandiswa - 5-6 (somuenzaniso, yegzip iyo inokwana i9);
  • static compression (mafaira ari mu cache) haashandise mamwe maficha (semuenzaniso, zopfi kana brotli ine degree 11)
  • hapana tsigiro yekushanda kwebrotli compression (kuchengetedza nezve 20% zvichienzaniswa negzip).

Kana iwe ukashandisa CDN, zvakakosha kutarisa aya mashoma mapoinzi: tora iyo faira yakabva kuCDN, rekodha saizi yaro yakadzvanywa uye kuidzvanya nemaoko kuti uenzanise (unogona kushandisa imwe online sevhisi nerutsigiro rwebrotli, semuenzaniso. vsszhat.rf).

2. Kuisa mutengi caching misoro

Zvakare chinhu chiri nyore chekukurumidza: wedzera misoro yezvinyorwa caching nemutengi (browser). Musoro wazvino uno ndewe cache-control, iyo yechinyakare inopera. Uyezve, Etag inogona kushandiswa. Chinhu chikuru ndechokuti max-age ye cache-control yakakura zvakakwana (kubva pamwedzi kana kupfuura) Kana iwe wakagadzirira kuvhara chigadziro zvakaoma sezvinobvira, unogona kuwedzera sarudzo isingashanduki.

MaCDN anogona kudzikisa kukosha kwe-max-zera, zvichimanikidza mushandisi kurodha zvakare static zvirimo kakawanda. Hazvisi pachena kuti izvi zvakabatana nei: chishuwo chekuwedzera traffic pane network kana kuwedzera kuenderana nemasaiti asingazivi maitiro ekugadzirisa zvakare cache. Semuenzaniso, iyo yakasarudzika Cloudflare header cache nguva i1 awa, iyo yakadzikira zvakanyanya kune isingachinjike static data.

3. Image optimization

Sezvo CDN inotora mabasa e caching uye kushumira mifananidzo, zvingava zvine musoro kuigadzirisa kudivi reCDN uye kuvashandira kune vashandisi mune iyi fomu. Ngatitorei ipapo ipapo kuti chimiro ichi chinongowanikwa kune CDN mhando 2, 3 uye 5.

Unogona kukwenenzvera mifananidzo nenzira dzakasiyana siyana: uchishandisa mafomati emhando yepamusoro (akadai seWebP), mamwe maencoder anoshanda (MozJPEG), kana kungo tsvaira zvisina basa metadata.

Kazhinji, kune marudzi maviri ekugadzirisa kwakadaro: nekurasikirwa kwehutano uye pasina kurasikirwa kwehutano. MaCDN anowanzo edza kushandisa kusarasikirwa optimization kuitira kuti adzivise zvichemo zvevatengi nezve shanduko yemhando yemufananidzo. Mumamiriro ezvinhu akadaro, kuwana kuchava kushoma. Muchokwadi, kazhinji iyo JPEG yemhando yepamusoro yakakwira zvakanyanya pane inodiwa uye iwe unokwanisa kudzokorodza zvakachengeteka neakaderera emhando yepamusoro pasina kukanganisa ruzivo rwemushandisi. Nekune rimwe divi, zvakaoma kuona huwandu hwemhando uye zvigadziriso pasi rose kune ese anobvira pawebhu maapplication, saka maCDN anoshandisa zvakanyanya kuchengetedza zvigadziriso zvichienzaniswa neayo anogona kushandiswa achifunga nezve mamiriro (chinangwa chemifananidzo, mhando yewebhu application. , nezvimwewo)

4. Kugadzirisa kubatana kweTLS

Yakawanda traffic nhasi inofamba pamusoro peTLS yekubatanidza, zvinoreva kuti tinopedza imwe nguva paTLS nhaurirano. Munguva pfupi yapfuura, matekinoroji matsva akagadzirwa kuti akurumidze kuita izvi. Semuenzaniso, iyi ndiyo EC cryptography, TLS 1.3, cache yemusangano uye matikiti, hardware encryption acceleration (AES-NI), etc. Kunyatsogadzirisa TLS kunogona kuderedza nguva yekubatanidza ku0-1 RTT (kwete kuverenga DNS neTCP).

Nemapurogiramu emazuva ano, hazvina kuoma kushandisa maitiro akadaro iwe pachako.

Haasi ese maCDN anoshandisa TLS akanakisa maitiro; unogona kutarisa izvi nekuyera iyo TLS yekubatanidza nguva (semuenzaniso, muWebpagetest). Yakanakira kubatana kutsva - 1RTT, 2RTT - avhareji nhanho, 3RTT uye nezvimwe - zvakaipa.

Izvo zvinofanirwa kucherechedzwa kuti kunyangwe kana uchishandisa TLS padanho reCDN, sevha ine webhu application yedu inofanirwawo kugadzirisa TLS, asi kubva kudivi reCDN, nekuti traffic pakati pesevha neCDN inopfuura paruzhinji network. Munyaya yakaipisisa, tichawana kaviri TLS yekubatanidza kunonoka (yekutanga kune CDN host, yechipiri pakati payo neserver yedu).

Kune mamwe maapplication, zvakafanira kutarisisa nyaya dzekuchengetedza: traffic inowanzo decrypted paCDN node, uye uyu ndiwo mukana unogoneka wekutambisa traffic. Sarudzo yekushanda pasina kuburitswa kwetraffic inowanzopihwa muzvirongwa zvepamusoro zvemubhadharo weimwe muripo.

5. Deredza kunonoka kwekubatanidza

Kubatsira kukuru kweCDN iyo munhu wese anotaura nezvayo: low latency (shoma kureba) pakati peCDN host nemushandisi. Inowanikwa nekugadzira iyo geographically yakagovaniswa network yekuvaka, umo mauto anowanikwa munzvimbo dzekusangana kwevashandisi (maguta, traffic exchange points, etc.)

Mukuita, zvinokosheswa kune akasiyana network zvinogona kunge zviri mumatunhu chaiwo. Semuenzaniso, maCDN eRussia achave nemamwe mapoinzi ekuvapo muRussia. Iwo maAmerican anozotanga agadzira network muUSA. Semuenzaniso, imwe yeCDN yakakura Cloudflare ine 2 pfungwa chete muRussia - Moscow neSt. Ndiko kuti, tinogona kuchengetedza huwandu hunosvika 10 ms ye latency kana ichienzaniswa nekuiswa kwakananga muMoscow.

Mazhinji eWestern CDN haana mapoinzi muRussia zvachose. Nekubatanidza kwavari, unogona chete kuwedzera kunonoka kwevateereri vako veRussia.

6. Kugadziriswa kwemukati (minification, shanduko yezvimiro)

Iyo yakanyanya kuoma uye tekinoroji yepamusoro poindi. Kushandura zvinyorwa panguva yekusununguka kunogona kuva nengozi zvikuru. Kunyange kana tikatora minification: kuderedza kodhi yekodhi (nekuda kwezvimwe nzvimbo, zvimiro zvisina kukosha, nezvimwewo) zvinogona kukanganisa kushanda kwayo. Kana tikataura pamusoro pekuchinja kwakakomba - kufambisa JS code kusvika kumagumo eHTML, kubatanidza mafaira, nezvimwewo - njodzi yekuvhiringidza kushanda kwesaiti yakatonyanya.

Naizvozvo, mamwe chete emhando 5 maCDN anoita izvi. Ehe, hazvizogone kuita otomatiki shanduko dzese dzinodiwa kukurumidzira zvinhu - kuongororwa kwemaoko uye kugadzirisa kunodiwa. Semuenzaniso, kubvisa kodhi isina kushandiswa kana duplicate ibasa remaoko.

Sekutonga, ese ma optimizations akadaro anodzorwa nezvirongwa uye izvo zvine njodzi zvakanyanya zvinodzimwa nekusarudzika.

Tsigiro yekumhanyisa kugona neCDN mhando

Saka ngatitarisei kuti ndeapi mikana yekuwedzera kukurumidza iyo mhando dzakasiyana dzeCDN dzinopa.

Kuti zvive nyore, tinodzokorora kupatsanura.

  1. Yemahara CDN yekugovera JS maraibhurari (MaxCDN, Google. Yandex).
  2. CDN yemasevhisi ekugadzirisa mutengi (semuenzaniso, Google Fonts yemafonti, Cloudinary, Cloudimage yemifananidzo).
  3. CDN ye static uye zviwanikwa optimization muCMS (inowanikwa muBitrix, WordPress uye nevamwe).
  4. General chinangwa CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN yekumhanyisa webhusaiti (Cloudflare, Imperva, Airi).

Iye zvino ngatienzanisei maitiro uye marudzi eCDN.

Mukana
Tora 1
Tora 2
Tora 3
Tora 4
Tora 5

Kudzvanywa kwemavara
+–
-
+–
+–
+

Cache misoro
+
+
+
+
+

Mifananidzo
-
+–
+–
-
+

TLS
-
-
-
+–
+

Kunonoka
-
-
-
+
+

Mukati
-
-
-
-
+

Patafura iyi, β€œ+” rinoshandiswa kuratidza tsigiro yakazara, β€œβ€“β€ haina tsigiro, uye β€œ+–” inotsigira zvishoma. Ehe, panogona kuve nekutsauka kubva patafura iyi muchokwadi (semuenzaniso, imwe general-chinangwa CDN ichaita maficha ekugonesa mifananidzo), asi kune yakajairika pfungwa inobatsira.

Migumisiro

Ndinovimba, mushure mekuverenga chinyorwa ichi iwe uchave nemufananidzo wakajeka nezve "shandisa CDN" kurudziro yekumhanyisa masaiti ako.

Sezviri mune chero bhizinesi, haugone kutenda zvivimbiso zvekushambadzira zvechero sevhisi. Mhedzisiro yacho inoda kuyerwa uye kuyedzwa pasi pemamiriro chaiwo. Kana iwe uchitoshandisa CDN, tarisa kuti inoshanda sei uchishandisa maitiro anotsanangurwa muchinyorwa.

Zvinogoneka kuti kushandisa CDN iko zvino kuri kudzikisira nguva yekurodha saiti yako.

Sekurudziro yakajairika, tinogona kutarisa pane zvinotevera: dzidza vateereri vako, sarudza nzvimbo yayo. Kana vateereri vako vakuru vakaiswa mukati meiyo radius ye1-2 zviuru zvemakiromita, haudi CDN yechinangwa chayo chikuru - kuderedza latency. Pane kudaro, iwe unogona kuisa sevha yako padyo nevashandisi vako uye nekuimisa nemazvo, uchiwana akawanda ekugadzirisa anotsanangurwa muchinyorwa (yemahara uye chisingaperi).

Kana vateereri vako vakagovaniswa zvechokwadi (radius yemakiromita anopfuura 3000), kushandisa CDN yemhando inozonyatso batsira. Nekudaro, iwe unofanirwa kunzwisisa pachine nguva kuti chii chaizvo CDN yako inogona kukurumidzira (ona tafura yekugona uye tsananguro yavo). Nekudaro, kukwidziridzwa kwewebhusaiti kuchiri basa rakaoma risingagone kugadziriswa nekubatanidza CDN. Pamusoro peiyo optimizations iri pamusoro apa, iyo inonyanya kushanda nzira yekumhanyisa inoramba iri kumashure kweCDN: optimization yechikamu cheseva, shanduko yepamberi kune chikamu chemutengi (kubvisa kodhi isina kushandiswa, kugadzirisa maitiro ekupa, kushanda nezviri mukati, mafonti, kuchinjika, nezvimwe. )

Source: www.habr.com

Voeg