CDN-ро истифода набаред

Қариб ҳар як мақола ё асбоб барои беҳсозии суръати сайт як банди хоксоронаи "истифодаи CDN" дорад. Умуман, CDN як шабакаи интиқоли мундариҷа ё шабакаи интиқоли мундариҷа мебошад. Мо дар Method Lab аксар вақт ба саволҳои муштариён дар ин мавзӯъ дучор мешавем; баъзеи онҳо CDN-и худро фаъол мекунанд. Ҳадафи ин мақола фаҳмидани он аст, ки CDN дар робита бо суръати боркунии сайт чиро таъмин карда метавонад, кадом мушкилот метавонад ба миён ояд ва дар кадом ҳолатҳо истифодаи CDN асоснок аст.

CDN-ро истифода набаред

Таъхирҳо дар тасвир бо истифодаи CDN ба амал меоянд.

Якчанд таърих

Мисли бисёр технологияҳо, CDNҳо аз зарурат пайдо шуданд. Бо рушди шабакаҳои интернетӣ дар байни корбарони интернет хидматҳои видеоии онлайн пайдо шуданд. Табиист, ки мундариҷаи видео нисбат ба мундариҷаи муқаррарии вебсайт (тасвирҳо, матн ва рамзи CSS ё JS) миқдори фарохмаҷрои бештарро талаб мекунад.

Ҳангоми кӯшиши пахши ҷараёни видео дар баробари муштариёни сершумор аз як сервер, эҳтимолан канали интернетии сервер монеа мешавад. Чун қоида, чанд ҳазор ришта барои бастани канали маъмулии сервер кифоя аст. Албатта, метавонад маҳдудиятҳои дигари захираҳо вуҷуд дошта бошанд, аммо онҳо ҳоло муҳим нестанд. Инчунин муҳим аст, ки васеъ кардани канали сервер хеле гарон (ва баъзан ғайриимкон) ва инчунин ғайриимкон аст. Сарборӣ ба канал ҳангоми пахши барномаҳо давравӣ хоҳад буд.

Масъалаи маҳдуд кардани канали сервери инфиродӣ тавассути CDN комилан ҳал карда мешавад. Мизоҷон на мустақиман ба сервер, балки ба гиреҳҳои шабакаи CDN пайваст мешаванд. Дар вазъияти идеалӣ сервер як ҷараёнро ба гиреҳи CDN мефиристад ва он гоҳ шабака барои расонидани ин ҷараён ба бисёр корбарон захираҳои худро истифода мебарад. Аз нуқтаи назари иқтисодӣ, мо танҳо барои захираҳои воқеан истеъмолшуда пардохт мекунем (ин метавонад фарохмаҷро ё трафик бошад) ва миқёси аълои хидмати моро ба даст орем. Истифодаи CDN барои расонидани мундариҷаи вазнин комилан асоснок ва мантиқӣ аст. Ҳарчанд бояд қайд кард, ки бузургтарин бозигарони ин фазо (масалан, Netflix) ба ҷои истифодаи CDN-ҳои калони тиҷоратӣ (Akamai, Cloudflare, Fastly ва ғайра) CDN-ҳои худро бунёд мекунанд.

Бо рушди веб, худи замимаҳои веб мураккабтар ва мураккабтар шуданд. Проблемаи суръати боркунй ба миёи омад. Дӯстдорони суръати вебсайт ба зудӣ якчанд мушкилоти асосиро муайян карданд, ки боиси суст шудани вебсайтҳо шуданд. Яке аз онҳо таъхири шабака буд (RTT - вақти сафар ё вақти пинг). Таъхирҳо ба бисёр равандҳои боркунии вебсайт таъсир мерасонанд: таъсиси пайвасти TCP, оғоз кардани сессияи TLS, боркунии ҳар як манбаи инфиродӣ (тасвир, файли JS, ҳуҷҷати HTML ва ғайра)

Мушкилот аз он сабаб бадтар шуд, ки ҳангоми истифодаи протоколи HTTP/1.1 (пеш аз пайдоиши SPDY, QUIC ва HTTP/2 ин ягона вариант буд), браузерҳо ба як ҳост на бештар аз 6 пайвасти TCP-ро мекушоянд. Хамаи ин боиси бекористии пайвастшавӣ ва истифодаи бесамари фарохмаҷрои канал гардид. Мушкилот қисман тавассути sharding домен ҳал карда шуд - эҷоди ҳостҳои иловагӣ барои бартараф кардани маҳдудияти шумораи пайвастҳо.

Дар ин ҷо қобилияти дуюми CDN пайдо мешавад - кам кардани таъхир (RTT) аз ҳисоби шумораи зиёди нуқтаҳо ва наздикии гиреҳҳо ба корбар. Дар ин ҷо масофа нақши ҳалкунанда мебозад: суръати рӯшноӣ маҳдуд аст (дар нахи оптикӣ тақрибан 200 000 км/сония). Ин маънои онро дорад, ки ҳар 1000 км сафар ба RTT 5 мс таъхир ё 10 мс илова мекунад. Ин вақти ҳадди ақал барои интиқол лозим аст, зеро дар таҷҳизоти мобайнӣ низ таъхирҳо вуҷуд доранд. Азбаски CDN одатан чӣ гуна кэш кардани объектҳоро дар серверҳои худ медонад, мо метавонем аз бор кардани чунин объектҳо тавассути CDN манфиат гирем. Шартҳои зарурӣ барои ин: мавҷудияти объект дар кэш, наздикии CDN ба корбар дар муқоиса бо сервери веб-барнома (сервери аслӣ) ишора мекунад. Фаҳмидани он муҳим аст, ки наздикии ҷуғрофии гиреҳи CDN ба таъхири паст кафолат намедиҳад. Масири байни муштарӣ ва CDN метавонад тавре сохта шавад, ки муштарӣ ба мизбон дар кишвари дигар ва эҳтимолан дар қитъаи дигар пайваст шавад. Дар ин ҷо муносибати байни операторони телекоммуникатсионӣ ва хидмати CDN (принг, пайвастшавӣ, иштирок дар IX ва ғайра) ва сиёсати масирсозии трафики худи CDN ба амал меояд. Масалан, Cloudflare ҳангоми истифодаи ду нақшаи ибтидоӣ (ройгон ва арзон) интиқоли мундариҷаро аз ҳости наздиктарин кафолат намедиҳад - мизбон барои ноил шудан ба арзиши ҳадди ақал интихоб карда мешавад.

Бисёре аз ширкатҳои пешрафтаи интернетӣ таваҷҷӯҳи ҷамъиятро (таҳиягарони веб ва соҳибони хидматҳо) ба мавзӯи суръати боркунӣ ва иҷрои вебсайт ҷалб мекунанд. Дар байни ин ширкатҳо Yahoo (асбоби Yslow), AOL (WebPageTest) ва Google (хидмати Page Speed ​​​​Insights) ҳастанд, ки тавсияҳои худро барои суръат бахшидан ба сайтҳо таҳия мекунанд (пеш аз ҳама онҳо ба оптимизатсияи муштариён марбутанд). Баъдтар, асбобҳои нави санҷиши суръати вебсайт пайдо мешаванд, ки инчунин маслиҳатҳоро оид ба баланд бардоштани суръати вебсайт пешниҳод мекунанд. Ҳар яке аз ин хидматҳо ё плагинҳо тавсияҳои пайваста доранд: "Истифода аз CDN." Коҳиши таъхири шабака одатан ҳамчун шарҳи таъсири CDN оварда мешавад. Мутаассифона, на ҳама омодаанд дақиқ фаҳманд, ки чӣ гуна таъсири суръатбахшии CDN ба даст оварда мешавад ва чӣ гуна онро чен кардан мумкин аст, аз ин рӯ тавсия ба эътиқод гирифта мешавад ва ҳамчун постулат истифода мешавад. Дар асл, на ҳама CDN-ҳо баробар офарида шудаанд.

Истифодаи CDN Имрӯз

Барои арзёбии фоиданокии истифодаи CDN, онҳо бояд тасниф карда шаванд. Он чизеро, ки ҳоло дар амал пайдо кардан мумкин аст (мисолҳои дар қавс овардашуда, албатта, мукаммал нестанд):

  1. CDN-и ройгон барои паҳн кардани китобхонаҳои JS (MaxCDN, Google. Yandex).
  2. CDN хидматҳо барои оптимизатсияи муштарӣ (масалан, Google Fonts барои шрифтҳо, Cloudinary, Cloudimage барои тасвирҳо).
  3. CDN барои оптимизатсияи статикӣ ва захираҳо дар CMS (дар Bitrix, WordPress ва дигарон дастрас аст).
  4. Ҳадафи умумӣ CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN барои суръатбахшии вебсайт (Cloudflare, Imperva, Airi).

Тафовути калидии ин намудҳо дар он аст, ки чӣ қадар трафик тавассути CDN мегузарад. Намудҳои 1-3 расонидани танҳо як қисми мундариҷа мебошанд: аз як дархост то якчанд даҳҳо (одатан тасвирҳо). Намудҳои 4 ва 5 прокси пурраи трафик тавассути CDN мебошанд.

Дар амал, ин маънои шумораи пайвастҳоеро дорад, ки барои бор кардани сайт истифода мешаванд. Бо HTTP/2, мо пайвасти ягонаи TCP-ро ба мизбон барои коркарди дилхоҳ шумораи дархостҳо истифода мебарем. Агар мо захираҳоро ба ҳости асосӣ (оригинал) ва CDN тақсим кунем, пас зарур аст, ки дархостҳоро дар якчанд доменҳо тақсим кунем ва якчанд пайвастҳои TCP эҷод кунем. Бадтарин ҳолат ин аст: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Ин формула таъхирҳо дар шабакаҳои мобилӣ барои фаъолсозии канали радиои дастгоҳ (агар он фаъол набуд) ва таъхир дар манораи мобилӣ ба назар гирифта намешавад.

Ин аст он чизе ки дар шаршараи боркунии сайт ба назар мерасад (таъхирҳо барои пайвастшавӣ ба CDN дар RTT 150 мс таъкид карда мешаванд):

CDN-ро истифода набаред

Агар CDN тамоми трафики сайтро фаро гирад (ба истиснои хидматҳои тарафи сеюм), мо метавонем пайвасти ягонаи TCP-ро истифода барем, ки таъхирро дар пайвастшавӣ ба ҳостҳои иловагӣ сарфа кунем. Албатта, ин ба пайвастҳои HTTP/2 дахл дорад.

Фарқиятҳои минбаъда аз рӯи функсияҳои мушаххаси CDN муайян карда мешаванд - барои намуди аввал он танҳо як файли статикиро ҷойгир мекунад, барои панҷум он якчанд намуди мундариҷаи сайтро бо мақсади оптимизатсия иваз мекунад.

Имкониятҳои CDN барои суръатбахшии вебсайт

Биёед маҷмӯи пурраи имкониятҳои CDN-ро барои суръатбахшии сайтҳо, новобаста аз функсияҳои намудҳои алоҳидаи CDN тавсиф кунем ва сипас бубинем, ки дар ҳар яки онҳо чӣ кор карда мешавад.

1. Фишурдани захираҳои матнӣ

Хусусияти аз ҳама асосӣ ва фаҳмо, вале аксар вақт суст амалӣ карда мешавад. Ҳама CDNҳо мавҷудияти фишурдаро ҳамчун хусусияти суръатбахшии худ эълон мекунанд. Аммо агар шумо муфассалтар назар кунед, камбудиҳо равшан мешаванд:

  • дараҷаҳои пастро барои фишурдани динамикӣ истифода бурдан мумкин аст - 5-6 (масалан, барои gzip ҳадди аксар 9 аст);
  • фишурдани статикӣ (файлҳо дар кэш) хусусиятҳои иловагиро истифода намебарад (масалан, zopfi ё brotli бо дараҷаи 11)
  • барои фишурдани самараноки бротли дастгирӣ вуҷуд надорад (тақрибан 20% сарфа дар муқоиса бо gzip).

Агар шумо CDN-ро истифода баред, ин чанд нуктаро тафтиш кардан лозим аст: файлеро, ки аз CDN омадааст, гиред, андозаи фишурдаи онро сабт кунед ва онро барои муқоиса дастӣ фишурда кунед (шумо метавонед ягон хидмати онлайнро бо дастгирии brotli истифода баред, масалан vsszhat.rf).

2. Муқаррар кардани сарлавҳаҳои кэшкунии муштарӣ

Инчунин як хусусияти суръатбахшии оддӣ: илова кардани сарлавҳаҳо барои кэшкунии мундариҷа аз ҷониби муштарӣ (браузер). Сарлавҳаи ҷорӣтарин кэш-назорат аст, сарлавҳаи кӯҳнашуда ба охир мерасад. Илова бар ин, Etag метавонад истифода шавад. Чизи асосӣ ин аст, ки синну соли максималии кэш-назорат ба қадри кофӣ калон аст (аз як моҳ ё бештар).

CDN-ҳо метавонанд арзиши ҳадди синну солро паст кунанд, ки корбарро маҷбур мекунад, ки мундариҷаи статикиро бештар бор кунад. Маълум нест, ки ин бо чӣ алоқаманд аст: хоҳиши зиёд кардани трафик дар шабака ё баланд бардоштани мутобиқат бо сайтҳое, ки намедонанд, ки кэшро аз нав барқарор кунанд. Масалан, вақти пешфарзии кэши сарлавҳаи Cloudflare 1 соат аст, ки барои маълумоти статикии тағирнашаванда хеле кам аст.

3. Оптимизатсияи тасвир

Азбаски CDN функсияҳои кэшкунӣ ва хидматрасонии тасвирҳоро ба ӯҳда мегирад, мантиқӣ мебуд, ки онҳо дар тарафи CDN оптимизатсия карда шаванд ва ба корбарон дар ин шакл хидмат кунанд. Биёед фавран қайд кунем, ки ин хусусият танҳо барои намудҳои CDN 2, 3 ва 5 дастрас аст.

Шумо метавонед тасвирҳоро бо роҳҳои гуногун оптимизатсия кунед: бо истифода аз форматҳои пешрафтаи фишурдасозӣ (ба монанди WebP), рамзгузорҳои муассиртар (MozJPEG) ё танҳо тоза кардани метамаълумоти нолозим.

Умуман, ду намуди чунин оптимизатсия вуҷуд дорад: бо талафоти сифат ва бе талафоти сифат. CDNҳо одатан кӯшиш мекунанд, ки оптимизатсияи бе талафотро истифода баранд, то шикоятҳои эҳтимолии муштариёнро дар бораи тағирёбии сифати тасвир пешгирӣ кунанд. Дар чунин шароит фоида кам мешавад. Дар асл, аксар вақт сатҳи сифати JPEG аз зарурӣ хеле баландтар аст ва шумо метавонед бо сатҳи пасти сифат бидуни осеб дидани таҷрибаи корбар бехатар дубора фишурда кунед. Аз тарафи дигар, муайян кардани сатҳи сифат ва танзимот ба таври универсалӣ барои ҳама барномаҳои имконпазири веб душвор аст, аз ин рӯ CDNҳо нисбат ба онҳое, ки метавонанд бо назардошти контекст истифода шаванд (мақсади тасвирҳо, намуди замимаи веб) танзимоти консервативиро истифода мебаранд. , ва ғайра)

4. Оптимизатсияи пайвасти TLS

Аксарияти трафик имрӯз тавассути пайвастҳои TLS мегузарад, ки ин маънои онро дорад, ки мо барои музокироти TLS вақти иловагӣ сарф мекунем. Дар вактхои охир барои тезондани ин процесс технологияхои нав кор карда баромада шуданд. Масалан, ин криптографияи EC, TLS 1.3, кэши сессия ва чиптаҳо, суръатбахшии рамзгузории сахтафзор (AES-NI) ва ғайра мебошад. Дуруст танзим кардани TLS метавонад вақти пайвастшавиро то 0-1 RTT кам кунад (ба ҳисоби DNS ва TCP ).

Бо нармафзори замонавӣ, амалӣ кардани ин гуна амалияҳоро мустақилона амалӣ кардан душвор нест.

На ҳама CDNҳо таҷрибаҳои беҳтарини TLS-ро амалӣ мекунанд; шумо метавонед инро тавассути чен кардани вақти пайвасти TLS тафтиш кунед (масалан, дар Webpagetest). Беҳтарин барои пайвасти нав - 1RTT, 2RTT - сатҳи миёна, 3RTT ва бештар - бад.

Инчунин бояд қайд кард, ки ҳатто ҳангоми истифодаи TLS дар сатҳи CDN, сервер бо замимаи веби мо низ бояд TLS-ро коркард кунад, аммо аз ҷониби CDN, зеро трафик байни сервер ва CDN дар шабакаи ҷамъиятӣ мегузарад. Дар бадтарин ҳолат, мо таъхири дукаратаи пайвасти TLS мегирем (аввал ба мизбони CDN, дуюм байни он ва сервери мо).

Барои баъзе барномаҳо, ба масъалаҳои амният таваҷҷӯҳ кардан лозим аст: трафик одатан дар гиреҳҳои CDN рамзкушоӣ карда мешавад ва ин як имконияти эҳтимолӣ барои боздоштани трафик аст. Варианти кор бидуни ифшои трафик одатан дар тарофаҳои боло бо пардохти иловагӣ пешниҳод карда мешавад.

5. Кам кардани таъхирҳои пайвастшавӣ

Бартарии асосии CDN, ки ҳама дар бораи он сӯҳбат мекунанд: таъхири паст (масофа камтар) байни мизбони CDN ва корбар. Бо эҷоди як меъмории шабакаҳои аз ҷиҳати ҷуғрофӣ тақсимшуда, ки дар он ҳостҳо дар нуқтаҳои консентратсияи корбарон (шаҳрҳо, нуқтаҳои мубодилаи трафик ва ғайра) ҷойгир шудаанд, ба даст оварда шудааст.

Дар амал, афзалиятҳо барои шабакаҳои гуногун метавонанд дар минтақаҳои мушаххас бошанд. Масалан, CDN-ҳои Русия дар Русия нуқтаҳои бештари ҳузур доранд. Амрикоиҳо пеш аз ҳама шабакаро дар ИМА инкишоф медиҳанд. Масалан, яке аз калонтарин CDN Cloudflare дар Русия танҳо 2 нуқта дорад - Маскав ва Санкт-Петербург. Яъне, мо метавонем дар муқоиса бо ҷойгиркунии мустақим дар Маскав ҳадди аксар тақрибан 10 мс вақтро сарфа кунем.

Аксарияти CDN-ҳои ғарбӣ дар Русия умуман нуқта надоранд. Бо пайвастшавӣ ба онҳо, шумо метавонед танҳо таъхирҳоро барои аудиторияи русии худ зиёд кунед.

6. Оптимизатсияи мундариҷа (ҳадди ақалл, тағйироти сохторӣ)

Мурак-кабтарин ва аз чихати технологй мукаммалтарин. Тағир додани мундариҷа ҳангоми интиқол метавонад хеле хатарнок бошад. Ҳатто агар мо минификатсияро гирем: кам кардани коди ибтидоӣ (бо сабаби ҷойҳои иловагӣ, сохторҳои номатлуб ва ғайра) метавонад ба кори он таъсир расонад. Агар мо дар бораи тағироти ҷиддитар сухан ронем - ба охири HTML интиқол додани коди JS, якҷоя кардани файлҳо ва ғайра - хатари вайрон кардани фаъолияти сайт боз ҳам зиёдтар аст.

Аз ин рӯ, танҳо баъзе навъи CDN-ҳои 5 ин корро мекунанд. Албатта, автоматикунонии ҳамаи тағиротҳои зарурӣ барои суръат бахшидан ба кор имконнопазир аст - таҳлил ва оптимизатсияи дастӣ лозим аст. Масалан, нест кардани коди истифоданашуда ё такрорӣ кори дастӣ аст.

Чун қоида, ҳама чунин оптимизатсияҳо аз ҷониби танзимот идора карда мешаванд ва хатарноктаринҳо бо нобаёнӣ хомӯш карда мешаванд.

Дастгирии қобилиятҳои суръатбахшӣ аз рӯи намуди CDN

Пас, биёед бубинем, ки намудҳои гуногуни CDN-ҳо чӣ гуна имкониятҳои эҳтимолии суръатбахширо пешкаш мекунанд.

Барои роҳат, мо таснифро такрор мекунем.

  1. CDN-и ройгон барои паҳн кардани китобхонаҳои JS (MaxCDN, Google. Yandex).
  2. CDN хидматҳо барои оптимизатсияи муштарӣ (масалан, Google Fonts барои шрифтҳо, Cloudinary, Cloudimage барои тасвирҳо).
  3. CDN барои оптимизатсияи статикӣ ва захираҳо дар CMS (дар Bitrix, WordPress ва дигарон дастрас аст).
  4. Ҳадафи умумӣ CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN барои суръатбахшии вебсайт (Cloudflare, Imperva, Airi).

Акнун биёед хусусиятҳо ва намудҳои CDN-ро муқоиса кунем.

Имконият
Навъи 1
Навъи 2
Навъи 3
Навъи 4
Навъи 5

Фишурдани матн
+–
-
+–
+–
+

Сарлавҳаҳои кэш
+
+
+
+
+

тасвирҳо
-
+–
+–
-
+

TLS
-
-
-
+–
+

Таъхирҳо
-
-
-
+
+

Мундариҷа
-
-
-
-
+

Дар ин ҷадвал, "+" барои нишон додани дастгирии пурра истифода мешавад, "-" дастгирӣ нест ва "+-" дастгирии қисман аст. Албатта, дар воқеият метавонад аз ин ҷадвал дуршавӣ вуҷуд дошта бошад (масалан, баъзе CDN-и таъиноти умумӣ хусусиятҳоро барои оптимизатсияи тасвирҳо амалӣ хоҳад кард), аммо барои як идеяи умумӣ муфид аст.

Натиҷаҳо

Умедворем, ки пас аз хондани ин мақола шумо дар бораи тавсияи "истифодаи CDN" барои суръат бахшидан ба сайтҳои худ тасаввуроти равшантар хоҳед дошт.

Мисли ҳама гуна тиҷорат, шумо наметавонед ба ваъдаҳои маркетингии ягон хидмат бовар кунед. Таъсирро дар шароити воқеӣ чен кардан ва санҷидан лозим аст. Агар шумо аллакай CDN-ро истифода баред, онро бо истифода аз меъёрҳои дар мақола тавсифшуда самаранокии онро санҷед.

Эҳтимол аст, ки ҳоло истифодаи CDN вақти боркунии сайти шуморо суст мекунад.

Ҳамчун тавсияи умумӣ, мо метавонем ба чизҳои зерин таваҷҷӯҳ кунем: шунавандагони худро омӯзед, доираи ҷуғрофии онро муайян кунед. Агар аудиторияи асосии шумо дар радиуси 1-2 ҳазор километр мутамарказ бошад, ба шумо CDN барои ҳадафи асосии он - кам кардани таъхир лозим нест. Ба ҷои ин, шумо метавонед сервери худро ба корбарони худ наздиктар ҷойгир кунед ва онро дуруст танзим кунед, бо гирифтани аксари оптимизатсияҳои дар мақола тавсифшуда (ройгон ва доимӣ).

Агар аудиторияи шумо воқеан аз ҷиҳати ҷуғрофӣ тақсим карда шавад (радиусаш зиёда аз 3000 километр), истифодаи CDN-и босифат воқеан муфид хоҳад буд. Бо вуҷуди ин, шумо бояд пешакӣ фаҳмед, ки CDN-и шумо маҳз чӣ гуна суръат бахшида метавонад (ба ҷадвали қобилиятҳо ва тавсифи онҳо нигаред). Бо вуҷуди ин, суръатбахшии вебсайт то ҳол вазифаи мураккаб боқӣ мемонад, ки онро тавассути пайваст кардани CDN ҳал кардан мумкин нест. Илова ба оптимизатсияҳои дар боло зикршуда, воситаҳои муассири суръатбахшӣ дар паси CDN боқӣ мемонанд: оптимизатсияи қисми сервер, тағироти пешрафта ба қисми муштарӣ (нест кардани коди истифоданашуда, оптимизатсияи раванди намоиш, кор бо мундариҷа, ҳуруфҳо, мутобиқшавӣ ва ғайра. )

Манбаъ: will.com

Илова Эзоҳ