[Ejila] CDN

Ihe fọrọ nke nta ka ọ bụrụ isiokwu ọ bụla ma ọ bụ ngwá ọrụ maka ịkwalite ọsọ saịtị nwere obere okwu "jiri CDN." N'ozuzu, CDN bụ netwọk nnyefe ọdịnaya ma ọ bụ netwọk nnyefe ọdịnaya. Anyị na Method Lab na-ezutekarị ajụjụ sitere n'aka ndị ahịa na isiokwu a; Ebumnuche nke isiokwu a bụ ịghọta ihe CDN nwere ike inye n'ihe gbasara ọsọ nbudata saịtị, nsogbu ndị nwere ike ibilite, na n'ọnọdụ ndị a kwadoro iji CDN.

[Ejila] CDN

Ihe na-akpata igbu oge a gbara okirikiri na foto a bụ iji CDN.

A bit nke akụkọ ihe mere eme

Dị ka ọtụtụ teknụzụ, CDN pụtara na ọ dị mkpa. Site na mmepe nke ọwa ịntanetị n'etiti ndị ọrụ ịntanetị, ọrụ vidiyo ịntanetị pụtara. Dị ka o kwesịrị ịdị, ọdịnaya vidiyo na-achọ iwu nke ịdị ukwuu bandwidth ma e jiri ya tụnyere ọdịnaya webụsaịtị mgbe niile (eserese, ederede, na CSS ma ọ bụ koodu JS).

Mgbe ị na-agbalị ịgbasa iyi vidiyo n'otu n'otu na ọtụtụ ndị ahịa sitere na otu sava, ọwa ịntanetị nke ihe nkesa ahụ ga-abụ ihe mgbochi. Dị ka a na-achị, puku ole na ole eri zuru ezu iji mechie ọwa ihe nkesa na-ahụkarị. N'ezie, enwere ike ịnwe oke akụrụngwa ndị ọzọ, mana ha adịghị mkpa ugbu a. Ọ dịkwa mkpa na ịgbasa ọwa ihe nkesa dị oke ọnụ (ma mgbe ụfọdụ ọ gaghị ekwe omume), yana enweghị ike ime ya. Ibu dị na ọwa n'oge mgbasa ozi ga-abụ cyclical.

CDN na-edozi nsogbu nke ịmachi ọwa nke ihe nkesa n'otu n'otu nke ọma. Ndị ahịa anaghị ejikọta na ihe nkesa ozugbo, kama na ọnụ na netwọk CDN. N'ọnọdụ dị mma, ihe nkesa na-eziga otu iyi na CDN node, mgbe ahụ, netwọk ahụ na-eji ihe onwunwe ya na-ebuga iyi a nye ọtụtụ ndị ọrụ. Site n'echiche akụ na ụba, anyị na-akwụ ụgwọ naanị maka akụrụngwa riri (nke a nwere ike ịbụ bandwit ma ọ bụ okporo ụzọ) wee nweta ọmarịcha ọrụ anyị. Iji CDN wepụta ọdịnaya dị arọ bụ ihe ziri ezi na ezi uche. Ọ bụ ezie na ọ dị mma ịmara na ndị egwuregwu kachasị na oghere a (dịka Netflix) na-ewu CDN nke ha kama iji nnukwu CDN azụmahịa (Akamai, Cloudflare, Fastly, etc.)

Ka webụ wee malite, ngwa weebụ n'onwe ha adịla mgbagwoju anya na mgbagwoju anya. Nsogbu nke nbudata ọsọ bịara n'ihu. Ndị na-anụ ọkụ n'obi webụsaịtị achọpụtara ngwa ngwa ọtụtụ nsogbu ndị mere webụsaịtị ji nwayọọ nwayọọ na-ebu. Otu n'ime ha bụ igbu oge netwọk (RTT - oge njem ma ọ bụ oge ping). Ịkwụsị oge na-emetụta ọtụtụ usoro na nbudata weebụsaịtị: ịmepụta njikọ TCP, ịmalite nnọkọ TLS, na-ebunye onye ọ bụla ihe onwunwe (onyinyo, faịlụ JS, HTML akwụkwọ, wdg.)

Ihe ka njọ bụ na mgbe ị na-eji HTTP / 1.1 protocol (tupu ọbịbịa nke SPDY, QUIC na HTTP / 2 nke a bụ naanị nhọrọ), ihe nchọgharị na-emeghe ihe karịrị 6 TCP njikọ na otu onye ọbịa. Ihe a niile butere njikọ downtime na iji bandwidth ọwa adịghị arụ ọrụ. Ejiri ngalaba sharding dozie nsogbu ahụ nke ọma - imepụta ndị ọbịa ọzọ iji merie oke na ọnụọgụ njikọ.

Nke a bụ ebe ike nke abụọ nke CDN pụtara - ibelata latency (RTT) n'ihi ọnụ ọgụgụ buru ibu na nso nso nke ọnụ na onye ọrụ. Anya na-arụ ọrụ dị mkpa ebe a: ọsọ nke ọkụ nwere oke (ihe dịka 200 km / sec na eriri anya). Nke a pụtara na njem 000 ọ bụla na-agbakwụnye 1000 ms nke igbu oge ma ọ bụ 5 ms na RTT. Nke a bụ oge opekempe achọrọ maka nnyefe, ebe ọ bụ na enwerekwa igbu oge na akụrụngwa etiti. Ebe CDN na-amakarị ka esi echekwa ihe na sava ya, anyị nwere ike irite uru site na ibunye ihe ndị dị otú ahụ site na CDN. Ọnọdụ dị mkpa maka nke a: ọnụnọ nke ihe dị na cache, ịdị nso nke CDN na-ezo aka na onye ọrụ ma e jiri ya tụnyere ihe nkesa ngwa weebụ (ihe nkesa mmalite). Ọ dị mkpa ịghọta na ịdị nso mpaghara mpaghara nke ọnụ CDN anaghị ekwe nkwa latency dị ala. Enwere ike wulite ụzọ n'etiti onye ahịa na CDN n'ụzọ nke onye ahịa ga-esi jikọọ na onye ọbịa na mba ọzọ, yana ikekwe na kọntinent ọzọ. Nke a bụ ebe mmekọrịta dị n'etiti ndị na-arụ ọrụ telecom na ọrụ CDN (ọgbọ, njikọ, ikere òkè na IX, wdg) na usoro iwu okporo ụzọ nke CDN n'onwe ya na-abata. Dịka ọmụmaatụ, Cloudflare, mgbe ị na-eji atụmatụ mbụ abụọ (n'efu na ọnụ ala), anaghị ekwe nkwa ịnyefe ọdịnaya site na onye ọbịa kacha nso - a ga-ahọrọ onye ọbịa iji nweta ọnụ ahịa kacha nta.

Ọtụtụ ụlọ ọrụ ịntanetị na-eduga na-adọta mmasị ọha (ndị mmepe webụ na ndị nwe ọrụ) na isiokwu nke nbudata ọsọ na arụmọrụ weebụsaịtị. N'ime ụlọ ọrụ ndị a bụ Yahoo (Ngwaọrụ Yslow), AOL (WebPageTest) na Google (ọrụ nleba anya nke ibe), bụ ndị na-emepụta ndụmọdụ nke ha maka ịgbasa saịtị ngwa ngwa (nke bụ na ha metụtara njikarịcha ndị ahịa). Ka emechara, ngwaọrụ nyocha ọsọ webụsaịtị ọhụrụ na-apụta, nke na-enyekwa ndụmọdụ maka ịbawanye ọsọ weebụsaịtị. Nke ọ bụla n'ime ọrụ ndị a ma ọ bụ plugins nwere ndụmọdụ na-agbanwe agbanwe: "Jiri CDN." A na-akpọkarị mbelata nkwụsị netwọkụ dịka nkọwa maka mmetụta CDN. N'ụzọ dị mwute, ọ bụghị onye ọ bụla dị njikere ịghọta kpọmkwem otú e si enweta acceleration mmetụta nke CDN na otú ọ ga-esi tụọ, ya mere nkwanye na-ewere na okwukwe na-eji dị ka a postulate. N'ezie, ọ bụghị CDN niile ka e kere nhata.

Iji CDN Taa

Iji chọpụta uru iji CDN dị, ọ dị mkpa ka ekewa ha. Kedu ihe enwere ike ịchọta ugbu a na omume (ihe atụ na brackets bụ, n'ezie, ọ bụghị ike ọgwụgwụ):

  1. CDN efu maka ikesa ọba akwụkwọ JS (MaxCDN, Google. Yandex).
  2. CDN nke ọrụ maka nkwalite ndị ahịa (dịka ọmụmaatụ, Google Fonts maka mkpụrụedemede, Cloudinary, Cloudimage maka onyonyo).
  3. CDN maka static na njikarịcha akụrụngwa na CMS (dị na Bitrix, WordPress na ndị ọzọ).
  4. Ebumnuche zuru oke CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN maka osooso webụsaịtị (Cloudflare, Imperva, Airi).

Isi ihe dị iche n'etiti ụdị ndị a bụ ole nke okporo ụzọ na-aga na CDN. Ụdị 1-3 bụ nnyefe nke naanị akụkụ nke ọdịnaya: site na otu arịrịọ ruo ọtụtụ iri na abuo (na-emekarị foto). Ụdị 4 na 5 bụ n'ụzọ zuru ezu proxying nke okporo ụzọ site na CDN.

Na omume, nke a pụtara ọnụ ọgụgụ nke njikọ ndị a na-eji buo saịtị ahụ. Site na HTTP/2, anyị na-eji otu njikọ TCP na onye ọbịa iji hazie ọnụọgụ arịrịọ ọ bụla. Ọ bụrụ na anyị kewaa ihe onwunwe n'ime onye isi (mmalite) na CDN, mgbe ahụ ọ dị mkpa iji kesaa arịrịọ n'ofe ọtụtụ ngalaba ma mepụta ọtụtụ njikọ TCP. Nke kacha njọ bụ: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Usoro a anaghị eburu n'uche igbu oge na netwọk mkpanaka maka ịgbalite ọwa redio ngwaọrụ (ọ bụrụ na ọ naghị arụ ọrụ) yana igbu oge na ụlọ elu cell.

Nke a bụ ihe ọ dị ka n'ọdụ ụgbọ mmiri na-ebubata saịtị (latencies maka ijikọ na CDN na RTT 150 ms):

[Ejila] CDN

Ọ bụrụ na CDN na-ekpuchi okporo ụzọ saịtị niile (ma e wezụga ọrụ ndị ọzọ), mgbe ahụ anyị nwere ike iji otu njikọ TCP, na-echekwa oge na-ejikọta na ndị ọbịa ọzọ. N'ezie, nke a na-emetụta njikọ HTTP/2.

A na-ekpebi ọdịiche ndị ọzọ site na arụmọrụ nke otu CDN - maka ụdị nke mbụ ọ bụ naanị na-akwado faịlụ static, maka nke ise ọ na-agbanwe ọtụtụ ụdị ọdịnaya saịtị maka ebumnuche kachasị.

Ike CDN maka osooso webụsaịtị

Ka anyị kọwapụta ikike CDN zuru oke maka ịgbasa saịtị, n'agbanyeghị ọrụ nke ụdị CDN n'otu n'otu, wee hụ ihe etinyere na nke ọ bụla n'ime ha.

1. Mkpakọ nke akụrụngwa ederede

Kacha isi na nghọta atụmatụ, ma mgbe emezighị emejuputa atumatu. CDN niile na-ekwupụta ọnụnọ nke mkpakọ dị ka njirimara ngwa ngwa ha. Ma ọ bụrụ na ị lebakwuo anya n'ụzọ zuru ezu, adịghị ike na-apụta ìhè:

  • Enwere ike iji ogo dị ala maka mkpakọ ike - 5-6 (dịka ọmụmaatụ, maka gzip kacha bụ 9);
  • mkpakọ static (faịlụ dị na cache) anaghị eji atụmatụ ndị ọzọ (dịka ọmụmaatụ, zopfi ma ọ bụ brotli nwere ogo 11)
  • enweghị nkwado maka mkpakọ brotli dị mma (na-echekwa ihe dịka 20% ma e jiri ya tụnyere gzip).

Ọ bụrụ na ị na-eji CDN, ọ bara uru ịlele isi ihe ole na ole ndị a: were faịlụ ahụ sitere na CDN, dekọọ nha ya abịakọrọ ma jiri aka gị pịnye ya maka ntụnyere (ị nwere ike iji ụfọdụ ọrụ ntanetị na nkwado brotli, dịka ọmụmaatụ. vsszhat.rf).

2. Ịtọ ntọala caching ndị ahịa

Ọzọkwa atụmatụ ọsọ ọsọ dị mfe: tinye nkụnye eji isi mee maka caching ọdịnaya site n'aka onye ahịa (ihe nchọgharị). Ihe nkụnye eji isi mee ugbu a bụ njikwa cache, nke emechiela agwụla. Na mgbakwunye, enwere ike iji Etag. Isi ihe bụ na max-afọ nke cache-control bụ nnukwu (site na otu ọnwa ma ọ bụ karịa).

CDN nwere ike wedata uru oke-afọ, na-amanye onye ọrụ ka ọ bulite ọdịnaya kwụ ọtọ ugboro ugboro. O doghị anya ihe ejikọtara na nke a: ọchịchọ ịbawanye okporo ụzọ na netwọkụ ma ọ bụ nwekwuo ndakọrịta na saịtị ndị na-amaghị ka esi tọgharịa cache. Dịka ọmụmaatụ, oge nchekwa nkụnye eji isi mee Cloudflare bụ elekere 1, nke dị ala maka data static enweghị mgbanwe.

3. Ngosipụta onyonyo

Ebe CDN na-arụ ọrụ nke caching na inye ihe onyonyo, ọ ga-abụ ihe ezi uche dị na ya bulite ha n'akụkụ CDN wee jeere ha ndị ọrụ n'ụdị a. Ka anyị mee ndoputa ozugbo na njirimara a dị naanị maka ụdị CDN 2, 3 na 5.

Ị nwere ike ibuli onyonyo n'ụzọ dị iche iche: iji usoro mkpakọ dị elu (dị ka WebP), koodu ntinye nke ọma (MozJPEG), ma ọ bụ na-ehichapụ metadata na-adịghị mkpa.

N'ozuzu, e nwere ụdị abụọ dị otú ahụ optimizations: na àgwà ọnwụ na-enweghị àgwà ọnwụ. CDN na-agbakarị mbọ iji njikarịcha enweghị efu iji zere mkpesa ndị ahịa nwere ike ime gbasara mgbanwe na ogo onyonyo. N'ọnọdụ ndị dị otú ahụ, uru ga-adị ntakịrị. N'ezie, ọtụtụ mgbe ogo ogo JPEG dị elu karịa ka ọ dị mkpa ma ị nwere ike iji ọkwa dị ala weghachi ya n'enweghị nsogbu na-emebighị ahụmịhe onye ọrụ. N'aka nke ọzọ, ọ na-esiri ike ịchọpụta ọkwa nke ogo na ntọala zuru ụwa ọnụ maka ngwa weebụ niile nwere ike ime, yabụ CDN na-eji ntọala nchekwa karịa tụnyere ndị nwere ike itinye n'ọrụ na-eburu n'uche ihe ndị gbara ya gburugburu (nzube ihe oyiyi, ụdị ngwa weebụ). , wdg)

4. Na-ebuli njikọ TLS

Ọtụtụ okporo ụzọ taa na-agafe njikọ TLS, nke pụtara na anyị na-etinyekwu oge na mkparita ụka TLS. N'oge na-adịbeghị anya, e mepụtara teknụzụ ọhụrụ iji mee ka usoro a dị ngwa. Dịka ọmụmaatụ, nke a bụ EC cryptography, TLS 1.3, cache nnọkọ na tiketi, ngwa ngwa izo ya ezo (AES-NI), wdg. Ịtọzi TLS nke ọma nwere ike ibelata oge njikọ na 0-1 RTT (anaghị agụta DNS na TCP).

Site na ngwanrọ ọgbara ọhụrụ, ọ naghị esiri ike itinye ụdị omume ahụ n'onwe gị.

Ọ bụghị CDN niile na-arụ ọrụ kacha mma TLS, ị nwere ike ịlele nke a site na ịlele oge njikọ TLS (dịka ọmụmaatụ, na Webpagetest). Kwesịrị ekwesị maka njikọ ọhụrụ - 1RTT, 2RTT - ọkwa nkezi, 3RTT na ndị ọzọ - ọjọọ.

Ekwesiri iburu n'uche na ọbụlagodi mgbe ị na-eji TLS na ọkwa CDN, ihe nkesa nwere ngwa weebụ anyị ga-edozikwa TLS, mana site na CDN n'akụkụ, n'ihi na okporo ụzọ dị n'etiti ihe nkesa na CDN na-agafe na netwọk ọha. N'okwu kachasị njọ, anyị ga-enweta nkwụsị njikọ TLS okpukpu abụọ (nke mbụ na CDN host, nke abụọ n'etiti ya na ihe nkesa anyị).

Maka ụfọdụ ngwa, ọ bara uru ịṅa ntị na nsogbu nchekwa: okporo ụzọ na-emekarị decrypted na CDN nodes, na nke a bụ ohere ohere maka nkwụsị okporo ụzọ. A na-enyekarị nhọrọ nke ịrụ ọrụ na-enweghị ngosi okporo ụzọ na atụmatụ tarifu dị elu maka ego ọzọ.

5. Belata igbu oge njikọ

Isi uru nke CDN nke onye ọ bụla na-ekwu maka ya: nkwụsịtụ dị ala (obere anya) n'etiti onye ọrụ CDN na onye ọrụ. Emezuru site na imepụta ihe owuwu netwọkụ kesaa na mpaghara, nke ndị ọbịa nọ na isi nke ndị ọrụ (obodo, ebe mgbanwe okporo ụzọ, wdg.)

Na omume, ihe ndị ka mkpa maka netwọk dị iche iche nwere ike ịbụ na mpaghara ụfọdụ. Dịka ọmụmaatụ, CDN ndị Rọshịa ga-enwe ọtụtụ isi ọnụnọ na Russia. Ndị America ga-ebu ụzọ mepụta netwọkụ na USA. Dịka ọmụmaatụ, otu n'ime CDN Cloudflare kasị ukwuu nwere naanị 2 isi na Russia - Moscow na St. Petersburg. Ya bụ, anyị nwere ike ịzọpụta kacha nke ihe dị ka 10 ms nke latency ma e jiri ya tụnyere ntinye aka na Moscow.

Ọtụtụ Western CDN enweghị isi na Russia ma ọlị. Site na ijikọ na ha, ị nwere ike ịbawanye naanị igbu oge maka ndị na-ege gị ntị Russian.

6. Nkwalite ọdịnaya (minification, mgbanwe nhazi)

Ebe kachasị mgbagwoju anya na teknụzụ dị elu. Ịgbanwe ọdịnaya n'oge nnyefe nwere ike ịdị ize ndụ. Ọbụlagodi na anyị na-ewere minification: ibelata koodu isi mmalite (n'ihi oghere ndị ọzọ, ihe ndị na-adịghị mkpa, wdg) nwere ike imetụta arụmọrụ ya. Ọ bụrụ na anyị na-ekwu maka mgbanwe dị njọ karị - ịkwaga koodu JS na njedebe nke HTML, ijikọta faịlụ, wdg - ihe ize ndụ nke imebi ọrụ nke saịtị ahụ dị elu.

Ya mere, ọ bụ naanị ụfọdụ ụdị 5 CDN na-eme nke a. N'ezie, ọ gaghị ekwe omume ịmegharị mgbanwe niile dị mkpa iji mee ka ihe dị ngwa ngwa - a chọrọ nyocha akwụkwọ na njikarịcha. Dịka ọmụmaatụ, iwepụ koodu ejighi ya ma ọ bụ oyiri bụ ọrụ aka.

Dịka iwu, nkwalite niile dị otú ahụ na-achịkwa site na ntọala na ndị kachasị dị ize ndụ na-enwe nkwarụ site na ndabara.

Nkwado maka ike osooso site na ụdị CDN

Yabụ ka anyị leba anya n'ohere nwere ike ime ngwangwa ụdị CDN dị iche iche na-enye.

Maka ịdị mma, anyị na-emegharị nhazi ahụ.

  1. CDN efu maka ikesa ọba akwụkwọ JS (MaxCDN, Google. Yandex).
  2. CDN nke ọrụ maka nkwalite ndị ahịa (dịka ọmụmaatụ, Google Fonts maka mkpụrụedemede, Cloudinary, Cloudimage maka onyonyo).
  3. CDN maka static na njikarịcha akụrụngwa na CMS (dị na Bitrix, WordPress na ndị ọzọ).
  4. Ebumnuche zuru oke CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN maka osooso webụsaịtị (Cloudflare, Imperva, Airi).

Ugbu a, ka anyị tulee atụmatụ na ụdị CDN.

Ohere
Pịnye 1
Pịnye 2
Pịnye 3
Pịnye 4
Pịnye 5

Mkpakọ ederede
+–
-
+–
+–
+

nkụnye eji isi mee cache
+
+
+
+
+

Foto
-
+–
+–
-
+

TLS
-
-
-
+–
+

Egbula oge
-
-
-
+
+

ọdịnaya
-
-
-
-
+

Na tebụl a, a na-eji "+" gosipụta nkwado zuru oke, "-" enweghị nkwado, na "+-" bụ nkwado akụkụ. N'ezie, enwere ike inwe ọdịiche site na tebụl a n'eziokwu (dịka ọmụmaatụ, ụfọdụ CDN zuru oke ga-emejuputa atụmatụ maka ịmepụta ihe oyiyi), ma maka echiche n'ozuzu ọ bara uru.

Nsonaazụ

Olileanya, mgbe ị gụchara akụkọ a, ị ga-enwe nkọwa doro anya gbasara ndụmọdụ "jiri CDN" iji mee ka saịtị gị dị ngwa.

Dị ka ọ bụla azụmahịa, ị gaghị ekwere nkwa ahịa nke ọrụ ọ bụla. Ọ dị mkpa ka a tụọ ma nwalee mmetụta ahụ n'ọnọdụ dị adị. Ọ bụrụ na ị na-eji CDN, lelee ya maka ịdị irè site na iji njirisi akọwara n'isiokwu a.

Ọ ga-ekwe omume na iji CDN ugbu a na-ebelata oge nbudata saịtị gị.

Dịka ndụmọdụ n'ozuzu, anyị nwere ike ilekwasị anya n'ihe ndị a: mụọ ndị na-ege gị ntị, chọpụta mpaghara mpaghara ya. Ọ bụrụ na ndị na-ege gị ntị bụ isi na-etinye uche n'ime oghere nke 1-2 puku kilomita, ị chọghị CDN maka nzube ya bụ isi - ibelata latency. Kama, ị nwere ike idowe ihe nkesa gị nso na ndị ọrụ gị wee hazie ya nke ọma, na-enweta ọtụtụ n'ime njikarịcha akọwapụtara n'isiokwu ahụ (n'efu na nke na-adịgide adịgide).

Ọ bụrụ na ndị na-ege gị ntị na-ekesa n'ezie na mpaghara (radius karịrị 3000 kilomita), iji CDN dị mma ga-aba uru n'ezie. Otú ọ dị, ịkwesịrị ịghọta n'ọdịnihu ihe kpọmkwem CDN gị nwere ike ime ngwa ngwa (lee tebụl nke ike na nkọwa ha). Agbanyeghị, osooso webụsaịtị ka ka bụ ọrụ siri ike nke enweghị ike idozi site na ijikọ CDN. Na mgbakwunye na njikarịcha ndị a dị n'elu, ụzọ kachasị dị irè nke osooso na-anọgide n'azụ CDN: njikarịcha nke akụkụ nkesa, mgbanwe dị elu na akụkụ ndị ahịa (wepụ koodu ejighi ya, na-ebuli usoro nsụgharị, na-arụ ọrụ na ọdịnaya, mkpụrụedemede, mgbanwe, wdg. )

isi: www.habr.com

Tinye a comment