[Osagwiritsa] CDN

Pafupifupi nkhani iliyonse kapena chida chothandizira kuthamangitsa tsamba ili ndi mawu ochepa "gwiritsani ntchito CDN." Mwambiri, CDN ndi netiweki yobweretsera zinthu kapena netiweki yotumizira zinthu. Ife ku Method Lab nthawi zambiri timakumana ndi mafunso kuchokera kwa makasitomala pamutuwu; Cholinga cha nkhaniyi ndikumvetsetsa zomwe CDN ingapereke potengera kuthamanga kwa malo, ndi mavuto ati omwe angakhalepo, komanso momwe ntchito ya CDN ikuyenera kukhalira.

[Osagwiritsa] CDN

Kuchedwa komwe kwazunguliridwa pachithunzichi kumachitika chifukwa chogwiritsa ntchito CDN.

Zakale za mbiriyakale

Monga matekinoloje ambiri, ma CDN adatuluka chifukwa chosowa. Ndi chitukuko cha mayendedwe a intaneti pakati pa ogwiritsa ntchito intaneti, ntchito zamakanema pa intaneti zidawonekera. Mwachilengedwe, zomwe zili muvidiyo zimafunikira madongosolo a kukula kwa bandwidth poyerekeza ndi zomwe zili patsamba lawebusayiti (zithunzi, zolemba, ndi CSS kapena JS code).

Mukayesa kuulutsa vidiyo motsagana ndi makasitomala ambiri kuchokera pa seva imodzi, njira yapaintaneti ya sevayo imakhala yolepheretsa. Monga lamulo, ulusi zikwi zingapo ndi wokwanira kutseka njira yeniyeni ya seva. Zowona, pakhoza kukhala zoperewera zina, koma sizofunikira pakali pano. Ndikofunikiranso kuti kukulitsa njira ya seva ndikokwera mtengo kwambiri (ndipo nthawi zina zosatheka), komanso kosatheka. Katundu pa tchanelo panthawi yowulutsa azikhala mozungulira.

Vuto lochepetsa njira ya seva iliyonse limathetsedwa bwino ndi CDN. Makasitomala samalumikizana ndi seva mwachindunji, koma ku node mu netiweki ya CDN. Munthawi yabwino, seva imatumiza mtsinje umodzi ku node ya CDN, ndiyeno intaneti imagwiritsa ntchito zinthu zake kuti ipereke mtsinjewu kwa ogwiritsa ntchito ambiri. Kuchokera pazachuma, timalipira zokhazokha zomwe zimagwiritsidwa ntchito (izi zikhoza kukhala bandwidth kapena traffic) ndikupeza scalability yabwino kwambiri ya ntchito yathu. Kugwiritsa ntchito CDN kuti mupereke zolemetsa ndizomveka komanso zomveka. Ngakhale ndizofunika kudziwa kuti osewera akulu kwambiri mderali (monga Netflix) amamanga ma CDN awo m'malo mogwiritsa ntchito ma CDN akuluakulu amalonda (Akamai, Cloudflare, Fastly, etc.)

Monga momwe ukonde wasinthira, mapulogalamu a pa intaneti okha akhala ovuta komanso ovuta. Vuto la kukweza liwiro linawonekera. Okonda liwiro lawebusayiti adazindikira mwachangu zovuta zazikulu zingapo zomwe zidapangitsa kuti mawebusayiti azitsegula pang'onopang'ono. Chimodzi mwa izo chinali kuchedwa kwa maukonde (RTT - nthawi yozungulira kapena nthawi ya ping). Kuchedwa kumakhudza njira zambiri pakutsitsa tsamba lawebusayiti: kukhazikitsa kulumikizana kwa TCP, kuyambitsa gawo la TLS, kutsitsa chilichonse (chithunzi, fayilo ya JS, chikalata cha HTML, ndi zina).

Vutoli lidakulitsidwa chifukwa chogwiritsa ntchito protocol ya HTTP/1.1 (asanabwere SPDY, QUIC ndi HTTP/2 iyi inali njira yokhayo), asakatuli amatsegula osapitilira 6 TCP kulumikizana ndi gulu limodzi. Zonsezi zidapangitsa kutha kwa nthawi yolumikizirana komanso kugwiritsa ntchito kosagwirizana kwa bandwidth. Vutoli linathetsedwa pang'ono ndi domain sharding - kupangidwa kwa makamu owonjezera kuti athetse malire pa kuchuluka kwa maulumikizidwe.

Apa ndi pamene mphamvu yachiwiri ya CDN ikuwonekera - kuchepetsa latency (RTT) chifukwa cha kuchuluka kwa mfundo komanso kuyandikira kwa node kwa wogwiritsa ntchito. Kutalikirana kumachita gawo lalikulu pano: kuthamanga kwa kuwala kuli kochepa (pafupifupi 200 km / sec mu fiber optical). Izi zikutanthauza kuti mtunda uliwonse wa makilomita 000 umawonjezera 1000 ms kuchedwa kapena 5 ms ku RTT. Iyi ndi nthawi yochepa yomwe imafunika kufalitsa, chifukwa palinso kuchedwa pazida zapakatikati. Popeza CDN nthawi zambiri imadziwa kusungira zinthu pamaseva ake, titha kupindula pokweza zinthu zotere kudzera mu CDN. Zofunikira pa izi: kukhalapo kwa chinthucho mu cache, kuyandikira kwa CDN kumaloza kwa wogwiritsa ntchito poyerekeza ndi seva yogwiritsira ntchito intaneti (seva yoyambira). Ndikofunika kumvetsetsa kuti kuyandikira kwa malo a CDN sikutsimikizira kutsika kochepa. Njira pakati pa kasitomala ndi CDN ikhoza kumangidwa m'njira yoti kasitomala alumikizane ndi wolandira alendo kudziko lina, ndipo mwina ku kontinenti ina. Apa ndi pamene ubale pakati pa ogwiritsira ntchito telecom ndi utumiki wa CDN (kuyang'ana, kugwirizanitsa, kutenga nawo mbali mu IX, ndi zina zotero) ndi ndondomeko yoyendetsera magalimoto ya CDN yokha. Mwachitsanzo, Cloudflare, pogwiritsira ntchito ndondomeko ziwiri zoyambirira (zaulere ndi zotsika mtengo), sizikutsimikizira kuperekedwa kwa zinthu kuchokera kwa wolandira wapafupi - wolandirayo adzasankhidwa kuti akwaniritse mtengo wochepa.

Makampani ambiri otsogola pa intaneti amakopa chidwi cha anthu (opanga mawebusayiti ndi eni ake) pamutu wokweza liwiro komanso momwe tsamba lawebusayiti likuyendera. Mwa makampaniwa ndi Yahoo (Chida cha Yslow), AOL (WebPageTest) ndi Google (Page Speed ​​​​Insights service), omwe akupanga malingaliro awo kuti afulumizitse masamba (makamaka amakhudzana ndi kukhathamiritsa kwamakasitomala). Pambuyo pake, zida zatsopano zoyezera liwiro lawebusayiti zimawonekera, zomwe zimaperekanso malangizo owonjezera liwiro lawebusayiti. Iliyonse mwa mautumikiwa kapena mapulagini ali ndi malingaliro osasinthika: "Gwiritsani ntchito CDN." Kuchepetsa kwa network latency nthawi zambiri kumatchulidwa ngati kufotokozera zotsatira za CDN. Tsoka ilo, si onse omwe ali okonzeka kumvetsetsa momwe mathamangitsidwe a CDN amathandizira komanso momwe angayesedwe, kotero malingaliro amatengedwa pa chikhulupiriro ndikugwiritsidwa ntchito ngati postulate. M'malo mwake, si ma CDN onse omwe amapangidwa mofanana.

Kugwiritsa ntchito CDN Masiku Ano

Kuti muwone kufunika kogwiritsa ntchito ma CDN, ayenera kugawidwa. Zomwe zingapezeke pochita tsopano (zitsanzo zomwe zili m'mabulaketi ndizowona, sizokwanira):

  1. CDN yaulere pogawa malaibulale a JS (MaxCDN, Google. Yandex).
  2. CDN ya mautumiki pakukhathamiritsa kwamakasitomala (mwachitsanzo, Fonts ya Google yamafonti, Cloudinary, Cloudimage yazithunzi).
  3. CDN yokhazikika komanso kukhathamiritsa kwazinthu mu CMS (yopezeka mu Bitrix, WordPress ndi ena).
  4. Cholinga chachikulu cha CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN yopititsa patsogolo tsamba lawebusayiti (Cloudflare, Imperva, Airi).

Kusiyana kwakukulu pakati pa mitundu iyi ndi kuchuluka kwa magalimoto omwe amadutsa mu CDN. Mitundu 1-3 ndikupereka gawo lokha la zomwe zili: kuchokera ku pempho limodzi mpaka khumi ndi awiri (nthawi zambiri zithunzi). Mitundu 4 ndi 5 ndizomwe zimayimira magalimoto ambiri kudzera pa CDN.

M'malo mwake, izi zikutanthauza kuchuluka kwa maulumikizidwe omwe amagwiritsidwa ntchito kutsitsa tsambalo. Ndi HTTP/2, timagwiritsa ntchito kulumikizana kwa TCP kumodzi kwa wolandila kuti tikwaniritse zopempha zilizonse. Ngati tigawaniza zothandizira kukhala wamkulu (chiyambi) ndi CDN, ndiye kuti ndikofunikira kugawa zopempha m'madomeni angapo ndikupanga maulalo angapo a TCP. Choyipa kwambiri ndi: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Fomula iyi simaganizira za kuchedwa kwa maukonde am'manja kuti atsegule tchanelo chawayilesi (ngati sichinagwire) komanso kuchedwa kwa nsanja ya cell.

Izi ndi momwe zimawonekera pakukweza mathithi atsamba (malo olumikizirana ndi CDN akuwonetsedwa pa RTT 150 ms):

[Osagwiritsa] CDN

Ngati CDN ikuphimba zonse zamasamba (kupatula ntchito za chipani chachitatu), ndiye kuti titha kugwiritsa ntchito kulumikizana kwa TCP kamodzi, kupulumutsa kuchedwa pakulumikizana ndi olandila ena. Zachidziwikire, izi zimagwiranso ntchito pamalumikizidwe a HTTP/2.

Kusiyanitsa kwina kumatsimikiziridwa ndi magwiridwe antchito a CDN inayake - kwa mtundu woyamba ndikungosunga fayilo yosasunthika, yachisanu ikusintha mitundu ingapo yazomwe zili patsamba ndicholinga chofuna kukhathamiritsa.

Mphamvu za CDN pakukweza tsamba lawebusayiti

Tiyeni tifotokozere zambiri za kuthekera kwa CDN pakufulumizitsa masamba, osaganizira magwiridwe antchito amtundu wa CDN, ndiyeno tiwone zomwe zikuyendetsedwa mu iliyonse yaiwo.

1. Kuponderezedwa kwa zolemba zolemba

Chinthu chofunika kwambiri komanso chomveka, koma nthawi zambiri sichimagwiritsidwa ntchito bwino. Ma CDN onse amalengeza kukhalapo kwa kuponderezana ngati mawonekedwe awo othamangitsira. Koma ngati muyang'ana mwatsatanetsatane, zolakwika zimawonekera:

  • madigiri otsika a kupsinjika kwamphamvu angagwiritsidwe ntchito - 5-6 (mwachitsanzo, pa gzip pazipita 9);
  • static compression (mafayilo mu cache) sagwiritsa ntchito zina zowonjezera (mwachitsanzo, zopfi kapena brotli ndi digiri 11)
  • palibe chithandizo cha kuponderezana koyenera kwa brotli (kupulumutsa pafupifupi 20% poyerekeza ndi gzip).

Ngati mugwiritsa ntchito CDN, ndikofunikira kuyang'ana mfundo zingapo izi: tengani fayilo yomwe idachokera ku CDN, lembani kukula kwake ndikuyipanikiza pamanja kuti mufananize (mutha kugwiritsa ntchito intaneti ndi chithandizo cha brotli, mwachitsanzo. vsszhat.rf).

2. Kukhazikitsa mitu yosungira makasitomala

Komanso chinthu chosavuta chofulumira: onjezani mitu yazosungidwa ndi kasitomala (osatsegula). Mutu wamakono kwambiri ndi cache-control, wachikale utha. Kuphatikiza apo, Etag itha kugwiritsidwa ntchito. Chinthu chachikulu ndi chakuti zaka zambiri za cache-control ndi zazikulu mokwanira (kuyambira mwezi umodzi kapena kuposerapo Ngati mwakonzeka kusunga gwero molimba momwe mungathere, mukhoza kuwonjezera njira yosasinthika).

Ma CDN amatha kutsitsa mtengo wazaka zambiri, kukakamiza wogwiritsa ntchito kutsitsanso zomwe zili zokhazikika nthawi zambiri. Sizikudziwika kuti izi zikugwirizana ndi chiyani: chikhumbo choonjezera kuchuluka kwa magalimoto pa intaneti kapena kuonjezera kugwirizana ndi masamba omwe sakudziwa kukonzanso cache. Mwachitsanzo, nthawi yosasinthika ya Cloudflare header cache ndi ola la 1, lomwe ndi lotsika kwambiri pa data yosasinthika yosasinthika.

3. Image kukhathamiritsa

Popeza CDN imatenga ntchito zosunga zosunga zobwezeretsera ndikutumizira zithunzi, zingakhale zomveka kuzikweza kumbali ya CDN ndikuzipereka kwa ogwiritsa ntchito mawonekedwe awa. Tiyeni tisungitse nthawi yomweyo kuti gawoli likupezeka pamtundu wa CDN 2, 3 ndi 5.

Mutha kukhathamiritsa zithunzi m'njira zosiyanasiyana: kugwiritsa ntchito mawonekedwe apamwamba kwambiri (monga WebP), ma encoder (MozJPEG), kapena kungoyeretsa metadata yosafunikira.

Kawirikawiri, pali mitundu iwiri ya kukhathamiritsa koteroko: ndi kutayika kwa khalidwe komanso popanda kutaya khalidwe. Ma CDN nthawi zambiri amayesetsa kugwiritsa ntchito kukhathamiritsa kosataya kuti apewe kudandaula kwamakasitomala pakusintha kwazithunzi. Zikatero, phindu lidzakhala lochepa. M'malo mwake, nthawi zambiri mulingo wamtundu wa JPEG umakhala wapamwamba kwambiri kuposa momwe ungafunikire ndipo mutha kubwereza mosavutikira ndi mulingo wocheperako popanda kusokoneza zomwe wogwiritsa ntchito akukumana nazo. Kumbali inayi, ndizovuta kudziwa mulingo waubwino ndi makonda ponseponse pazantchito zonse zomwe zingatheke pa intaneti, kotero ma CDN amagwiritsa ntchito makonda osamala poyerekeza ndi omwe angagwiritsidwe ntchito poganizira zomwe zikuchitika (cholinga cha zithunzi, mtundu wa ntchito yapaintaneti). , etc.)

4. Kukonzanitsa kulumikizana kwa TLS

Magalimoto ambiri masiku ano amayenda pamalumikizidwe a TLS, zomwe zikutanthauza kuti timathera nthawi yochulukirapo pazokambirana za TLS. Posachedwapa, njira zamakono zatsopano zapangidwa kuti zifulumizitse ntchitoyi. Mwachitsanzo, iyi ndi EC cryptography, TLS 1.3, cache ya gawo ndi matikiti, hardware encryption acceleration (AES-NI), etc. Kuyika bwino TLS kungachepetse nthawi yolumikizira ku 0-1 RTT (osawerengera DNS ndi TCP).

Ndi mapulogalamu amakono, sizovuta kugwiritsa ntchito machitidwe otere nokha.

Sikuti ma CDN onse amagwiritsa ntchito njira zabwino za TLS zomwe mungathe kuziwona poyesa nthawi yolumikizira TLS (mwachitsanzo, mu Webpagetest). Zoyenera kulumikizana kwatsopano - 1RTT, 2RTT - mulingo wapakati, 3RTT ndi zina zambiri - zoyipa.

Tiyeneranso kukumbukira kuti ngakhale pogwiritsa ntchito TLS pa mlingo wa CDN, seva yokhala ndi webusaiti yathu iyeneranso kukonza TLS, koma kuchokera kumbali ya CDN, chifukwa magalimoto pakati pa seva ndi CDN amadutsa pa intaneti. Zoyipa kwambiri, tipeza kuchedwa kwapawiri kwa TLS (choyamba kwa wolandila CDN, chachiwiri pakati pake ndi seva yathu).

Pazinthu zina, ndikofunikira kulabadira nkhani zachitetezo: kuchuluka kwa magalimoto nthawi zambiri kumatsitsidwa pama CDN node, ndipo uwu ndi mwayi wopeza magalimoto. Kusankha kugwira ntchito popanda kuwulula magalimoto nthawi zambiri kumaperekedwa pamapulani apamwamba amtengo wowonjezera.

5. Chepetsani kuchedwa kwa kulumikizana

Phindu lalikulu la CDN limene aliyense amalankhula: low latency (kutalika) pakati pa CDN host host ndi wosuta. Zimatheka popanga zomangamanga zogawidwa m'malo, momwe makamu amakhala m'malo ambiri ogwiritsa ntchito (mizinda, malo osinthira magalimoto, etc.)

M'malo mwake, zoyambira pamanetiweki osiyanasiyana zitha kukhala m'magawo enaake. Mwachitsanzo, ma CDN aku Russia adzakhala ndi malo ochulukirapo ku Russia. Achimereka ayamba kupanga maukonde ku USA. Mwachitsanzo, imodzi mwa CDN Cloudflare yaikulu ili ndi mfundo za 2 zokha ku Russia - Moscow ndi St. Petersburg. Ndiko kuti, tikhoza kusunga pafupifupi 10 ms ya latency poyerekeza ndi kuyika mwachindunji ku Moscow.

Ambiri a Western CDN alibe mfundo ku Russia konse. Mwa kulumikizana nawo, mutha kungowonjezera kuchedwa kwa omvera anu aku Russia.

6. Kukhathamiritsa kwazinthu (kuchepetsa, kusintha kwamapangidwe)

Mfundo zovuta kwambiri komanso zamakono zamakono. Kusintha zomwe zili panthawi yobereka kungakhale koopsa kwambiri. Ngakhale titatenga minification: kuchepetsa code source (chifukwa cha malo owonjezera, nyumba zosafunika, etc.) zingakhudze ntchito yake. Ngati tikambirana za kusintha kwakukulu - kusuntha kachidindo ka JS mpaka kumapeto kwa HTML, kugwirizanitsa mafayilo, ndi zina zotero - chiopsezo chosokoneza ntchito ya malowa ndipamwamba kwambiri.

Chifukwa chake, ma CDN amtundu wa 5 okha ndi omwe amachita izi. Zachidziwikire, sikutheka kusinthiratu zosintha zonse zofunika kuti zinthu zifulumireβ€”kusanthula pamanja ndi kukhathamiritsa ndikofunikira. Mwachitsanzo, kuchotsa ma code osagwiritsidwa ntchito kapena obwereza ndi ntchito yamanja.

Monga lamulo, kukhathamiritsa kotereku kumayendetsedwa ndi zoikamo ndipo zowopsa kwambiri zimayimitsidwa mwachisawawa.

Thandizo lothandizira mathamangitsidwe amtundu wa CDN

Chifukwa chake, tiyeni tiwone mipata yomwe mitundu yosiyanasiyana ya ma CDN imapereka.

Kuti zikhale zosavuta, timabwereza kagawo.

  1. CDN yaulere pogawa malaibulale a JS (MaxCDN, Google. Yandex).
  2. CDN ya mautumiki pakukhathamiritsa kwamakasitomala (mwachitsanzo, Fonts ya Google yamafonti, Cloudinary, Cloudimage yazithunzi).
  3. CDN yokhazikika komanso kukhathamiritsa kwazinthu mu CMS (yopezeka mu Bitrix, WordPress ndi ena).
  4. Cholinga chachikulu cha CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN yopititsa patsogolo tsamba lawebusayiti (Cloudflare, Imperva, Airi).

Tsopano tiyeni tifanizire mawonekedwe ndi mitundu ya CDN.

Mwayi
Lembani 1
Lembani 2
Lembani 3
Lembani 4
Lembani 5

Kuphatikizika kwa mawu
+-
-
+-
+-
+

Mitu ya cache
+
+
+
+
+

Zithunzi
-
+-
+-
-
+

TLS
-
-
-
+-
+

Kuchedwa
-
-
-
+
+

Zamkatimu
-
-
-
-
+

Pa tebulo ili, "+" amagwiritsidwa ntchito kusonyeza chithandizo chonse, "-" palibe chithandizo, ndipo "+-" ndi chithandizo chochepa. Zachidziwikire, pakhoza kukhala zopotoka kuchokera patebuloli zenizeni (mwachitsanzo, ma CDN ena onse azitha kugwiritsa ntchito zida zokongoletsedwa ndi zithunzi), koma pamalingaliro onse ndizothandiza.

Zotsatira

Tikukhulupirira, mutawerenga nkhaniyi mudzakhala ndi chithunzi chomveka bwino chokhudza malingaliro a "gwiritsani ntchito CDN" kuti mufulumizitse masamba anu.

Monga bizinesi iliyonse, simungakhulupirire malonjezo a malonda a ntchito iliyonse. Zotsatira zake ziyenera kuyezedwa ndikuyesedwa pansi pa zochitika zenizeni. Ngati mukugwiritsa ntchito CDN kale, yang'anani kuti ikugwira ntchito pogwiritsa ntchito njira zomwe zafotokozedwa m'nkhaniyi.

Ndizotheka kuti kugwiritsa ntchito CDN pakali pano kukuchepetsa nthawi yotsitsa tsamba lanu.

Monga malingaliro wamba, titha kuyang'ana pa izi: phunzirani omvera anu, dziwani malo ake. Ngati omvera anu akuluakulu ali pamtunda wa makilomita 1-2 zikwi, simukusowa CDN pa cholinga chake chachikulu - kuchepetsa latency. M'malo mwake, mutha kuyika seva yanu pafupi ndi ogwiritsa ntchito ndikuyikonza moyenera, ndikupeza zambiri zomwe zafotokozedwa m'nkhaniyi (zaulere komanso zokhazikika).

Ngati omvera anu agawidwadi (ma radius opitilira makilomita 3000), kugwiritsa ntchito CDN yabwino kudzakuthandizani. Komabe, muyenera kumvetsetsa pasadakhale zomwe CDN yanu ingafulumizitse (onani tebulo la kuthekera ndi kufotokozera kwawo). Komabe, kuthamangitsa tsamba lawebusayiti kumakhalabe ntchito yovuta yomwe siyingathetsedwe polumikiza CDN. Kuphatikiza pa kukhathamiritsa pamwambapa, njira zothandiza kwambiri zothamangitsira zimakhalabe kumbuyo kwa CDN: kukhathamiritsa kwa gawo la seva, kusintha kwapamwamba kwa gawo la kasitomala (kuchotsa ma code osagwiritsidwa ntchito, kukhathamiritsa njira yoperekera, kugwira ntchito ndi zomwe zili, mafonti, kusinthika, ndi zina zambiri. )

Source: www.habr.com

Kuwonjezera ndemanga