
Дисклеймер:
Тази статия не съдържа информация, която да е била неизвестна на читателите, запознати с понятието CDN, а представлява преглед на технологията.
Първата уеб страница се появи през 1990 г. и беше с размер само на няколко байта. Оттогава съдържанието се мащабира както качествено, така и количествено. Развитието на ИТ екосистемата доведе до факта, че съвременните уеб страници се измерват в мегабайти и тенденцията за увеличаване на пропускната способност на мрежите всяка година само се усилва. Как могат доставчиците на съдържание да достигнат до големи географски мащаби и да осигурят на потребителите бърз достъп до информация навсякъде? С тези задачи трябва да се справят мрежите за доставка и разпространение на съдържание, известни също като Content Delivery Network или просто CDN.
В интернет все повече „тежко“ съдържание. Междувременно многобройни проучвания показват, че потребителите не желаят да взаимодействат с уеб услуги, ако те се зареждат по-дълго от 4-5 секунди. Твърде ниската скорост на зареждане на сайта води до загуба на аудитория, което непременно ще доведе до намаляване на трафика, конверсията и следователно на печалбата. Мрежите за доставка на съдържание (CDN), теоретично, позволяват да се избавим от тези проблеми и техните последствия. Но на практика, както обикновено, всичко зависи от детайлите и нюансите на конкретния случай, на които в тази сфера не липсват.
Откъде дойде идеята за разпределени мрежи?
Нека започнем с кратък преглед на историята и определението на термините. CDN е мрежа от група сървърни машини, разположени на различни места, за предоставяне на достъп до интернет съдържание с обхват на голямо количество потребители. Идеята за разпределени мрежи е наличието на няколко точки на присъствие (PoP), които се намират извън оригиналния сервер. Тази система ще обработи по-бързо масива от входящи заявки, увеличавайки отговора и скоростта на предаване на данни.
Проблемата с доставянето на съдържание до потребителите се изостри на върха на развитието на интернет, т.е. в средата на 90-те години. Тогавашните сървъри, чиято производителност не достига дори до съвременните флагмански лаптопи, едва успяваха да понесат натоварването и не можеха да се справят с постоянно нарастващия трафик. Microsoft ежегодно харчеше стотици милиони долари за изследвания, свързани с информационната магистрала (веднага се сещам за знаменитите 640 КБ от Бил Гейтс). При решаването на тези въпроси се налагаше да се използва йерархично кеширане, да се премине от модеми към оптично влакно и да се анализира подробно топологията на мрежите. Ситуацията наподобяваше стар локомотив, който се движи по релсите и по време на движението си бива модернизиран с всички възможни средства, за да увеличи скоростта.
Още в края на 90-те собствениците на уеб портали разбраха, че за намаляване на натоварването и осигуряване на необходимите запитвания е нужно да се използват посреднически сървъри. Така се появиха първите CDN, които раздават статично съдържание от различни сървъри, географски разпределени по света. Приблизително по същото време се появи и бизнесът с разпределени мрежи. Най-голямият (поне един от най-големите) CDN доставчик в света, компанията Akamai, стана пионер в тази област, започвайки пътя си през 1998 година. Няколко години по-късно CDN стана масов, а приходите от доставка и контрибуция на съдържание се изчисляваха на десетки милиони долари месечно.
Днес се сблъскваме с CDN всеки път, когато преминаваме към търговска страница с голям трафик или взаимодействаме в социални мрежи. Услугата се предоставя от: Amazon, Cloudflare, Akamai и много други транснационални доставчици. Освен това, големите компании се стремят да използват собствени CDN, което им носи редица предимства в скоростта и качеството на доставката на съдържание. Ако Facebook нямаше разпределени мрежи и разчиташе само на основния сървър, разположен в САЩ, зареждането на профилите при потребителите от Източна Европа би отнело значително повече време.
Няколко думи за CDN и стрийминг
Агентството FutureSource Consulting направи анализ на музикалната индустрия и установи, че до 2023 година броят на абонаментите за музикални стрийминг услуги ще достигне почти половин милиард души. Освен това над 90% от приходите на услугите ще идват именно от потоково аудио. Ситуацията с видеото е подобна, в народния лексикон вече са закрепили термини като: летсплей, онлайн концерт и онлайн кинотеатр. Свои стрийминг услуги имат Apple, Google, YouTube и много други компании.
В ранния си вид CDN се използваше предимно за сайтове със статично съдържание. Статичното съдържание се нарича информация, която не се променя в зависимост от действията на потребителя, времето и други фактори, т.е. не е персонализирано. Но развитието на потоковите видео и аудио услуги добави още един разпространен сценарий за използване на разпределени мрежи. Нормите на сервера, намиращи се в близост до целевата аудитория по целия свят, позволяват да се осигури стабилен достъп до съдържанието в периоди на пикови натоварвания, елиминирайки недостатъка на „тесните места“ в интернет.
Как работи това
Същността на всички CDN е приблизително една и съща: да използват посредници, за да могат по-бързо да доставят съдържанието до крайния потребител. Работи по следния начин: потребителят изпраща заявка за изтегляне на файл, получава я CDN сървър, който веднъж се свързва с оригиналния сървър и връща съдържанието на потребителя. Паралелно с това CDN кешира файловете си за зададен период от време и всички последващи заявки обработва от собственото си кеш. Опционално те също могат предварително да зареждат файлове от оригиналния сървър, да настройват срока на съхранение на кеша, да компресират големи файлове и много други. В идеалния случай хостът предава целия поток на възел CDN, който вече използва собствените си ресурси, за да доставя съдържание на потребителите. Разбира се, ефективното кеширане на информацията, както и разпределението на заявките не на един сървър, а на мрежа, ще доведе до по-балансирана натовареност на трафика.

Втората важна характеристика на работата на CDN е намаляването на забавянията при предаване на данни (известни още като RTT – round trip time). Установяването на TCP-соединение, зареждането на медиасъдържание, JS файл, стартирането на TLS сесия – всичко това зависи от пинга. Очевидно е, че колкото по-близо сте до източника, толкова по-бързо можете да получите отговор от него. Встоятелно дори скоростта на светлината има свой лимит: около 200 хиляди км/с по оптични влакна. Това означава, че от Москва до Вашингтон забавянето ще бъде около 75 мс в RTT, и това без да се отчита влиянието на междинното оборудване.
За да разберем по-добре какви задачи решават мрежите за разпространение на съдържание, ще приведем списък с актуални решения днес:
- Google, Yandex, MaxCDN (използват безплатни CDN с цел разпространение на JS библиотеки, имат над 90 точки на присъствие в повечето страни по света);
- Cloudinary, Cloudimage, Google (услуги и библиотеки за клиентска оптимизация: изображения, видео, шрифтове и т.н.);
- Jetpack, Incapsula, Swarmify и т.н. (оптимизация на ресурсите в системите за управление на съдържание: Bitrix, WordPress и т.н.);
- CDNVideo, StackPath, NGENIX, Мегафон (CDN за разпространение на статично съдържание, използвани като мрежи с общо предназначение);
- Imperva, Cloudflare (решения за ускоряване на зареждането на уебсайтове).
Първите три типа CDN от посочения списък са предназначени за предаване само на част от трафика от основния сървър. Останалите две се използват като напълно функционални прокси сървъри с пълно предаване на канали от изходния хост.
На кого и какви ползи предоставя технологията
В теорията, всеки сайт, предлагащ своите стоки/услуги на корпоративни клиенти или физически лица (B2B или B2C), може да извлече полза от внедряване на CDN. Важно е целевата му аудитория, т.е. потребителската база, да е извън тяхното географско местоположение. Но дори и да не е така, мрежите за разпространение ще помогнат за балансиране на натоварването при големи обеми съдържание.
Не е тайна, че за запълване на сървърния канал са достатъчни само няколко хиляди потока. Следователно разпространението на видеотрансляция сред масите неминуемо ще доведе до образуването на тесен участък – пропускателната способност на интернет канала. Същото наблюдаваме, когато на сайта има множество малки неслепени изображения (например, предварителни изображения на продукти). Изходният сървър използва едно TCP-подключение при обработката на неограничен брой заявки, което поставя натоварването в опашка. Добавянето на CDN води до необходимостта от разпределяне на заявките на няколко домейна и използване на няколко TCP-подключения, облекчавайки канала. Формулата за закъснение, дори при най-неблагоприятни условия, дава стойност от 6-7 RRT и придобива вида: TCP+TLS+DNS. Справедливо е също така да се включат закъсненията, свързани с активирането на радиоканал на устройството и предаване на сигнала на мобилни мачти.
Обобщавайки силните страни на технологията за бизнеса в интернет, специалистите выделят следните точки:
- Бързо мащабиране на инфраструктурата + намаляване на пропускателната способност. Повече сървъри = повече точки, на които се съхранява информация. В резултат на това една точка обработва по-малко количество трафик за единица време, а следователно може да има по-малка пропускателна способност. Допълнително влезе в действие инструменти за оптимизация, което позволява да се справите с пиковите натоварвания без загуба на време.
- По-малък пинг. Вече споменахме, че хората не обичат да чакат дълго в интернет. Следователно високият пинг допринася за високи проценти на откази. Закъснението може да бъде причинено от проблеми с обработката на данни на сървера, използването на старо оборудване или просто непродумана топология на мрежата. Повечето от тези проблеми частично се решават от мрежите за разпространение на съдържание. Важно е да се отбележи, че реалната полза от внедряването на технологията ще бъде видима само в случаите, когато "потребителският пинг" надвишава 80-90 мс, което е разстоянието от Москва до Ню Йорк.

- Защита на данните. DDoS атаки (вирусни атаки от типа „отказ в обслужване“) целят да нарушат работата на сървъра с цел да получат някаква полза. Един сървър е много по-податлив на уязвимости в информационната сигурност, отколкото разпределена мрежа (да повалиш инфраструктурата на такъв гигант като CloudFlare не е лесна задача). Благодарение на използването на филтри и умно разпределение на заявките в мрежата, могат лесно да се предотвратят изкуствено създадените проблеми с достъпа до легитимен трафик.
- Бързо разпространение на съдържание и допълнителни сервизни функции. Разпределението на големи масиви информация в сървърната мрежа ще ускори доставянето на предложението до крайния потребител. Примерите не са далеч — достатъчно е да си спомним Amazon и AliExpress.
- Възможност за „маскиране“ на проблеми с основния сайт. Не е нужно да чакаш, докато се обновят DNS, можеш да го прехвърлиш на ново местоположение с предаване на преди това кеширано съдържание. Това, от своя страна, може да подобри отказоустойчивостта.
С предимствата се запознахме. А сега да разгледаме на кои ниши това е изгодно.
Рекламен бизнес
Рекламата е двигател на прогреса. А за да не прегрее двигателят, трябва да бъде натоварван разумно. Ето и рекламният бизнес, опитвайки се да отговори на съвременния цифров свят, се сблъсква с проблеми с „тежкото съдържание“. Тежкото съдържание включва мултимедийна реклама (главно анимирани банери и видеоклипове), която изисква високи пропускателни способности на мрежата. Уебсайт с мултимедия се зарежда бавно и може да забавя потребителите, проверявайки търпението им. Повечето отказват да чакат, преди сайтът да зареди цялата налична информация. Рекламните компании могат да използват предимствата на CDN за решаване на тези проблеми.
Продажби
Електронната търговия изисква постоянно разширяване на географското си покритие. Друг важен аспект е конкуренцията, която е в изобилие във всеки сегмент на пазара. Ако уебсайтът не отговаря на изискванията на потребителя (включително бавно зареждане), той няма да бъде популярен и няма да може да осигурява стабилно висока конверсия. Внедряването на CDN трябва да демонстрира своето предимство при обработката на заявки за данни от различни места. Освен това разпределението на трафика ще помогне за предотвратяване на внезапни натоварвания и последващи провали в работата на сървъра.
Платформи с развлекателно съдържание
Тук попадат всякакви развлекателни платформи, от сваляне на филми и игри, до стрийминг на видео. Въпреки че технологията работи със статични данни, стрийминг данните могат да достигат до потребителя по-бързо чрез ретранслатори. Отново, кеширането на информация в CDN е спасение за собствениците на големи портали – хранилища на мултимедия.
Онлайн игри
Игралните платформи трябва да бъдат отделен пункт. Ако рекламата изисква големи пропускни способности, онлайн проектите са още по-взискателни към ресурсите. Доставчиците се изправят пред проблем, който има две страни: скорост на достъп до сървърите + осигуряване на висока игрова производителност с красива графика. CDN за онлайн игри е възможност да имате т.нар. „push зони“, където разработчиците могат да съхраняват игрите на сървъри, разположени близо до потребителите. Това намалява влиянието на скоростта на достъпа до оригиналния сървър и по този начин осигурява комфортен геймплей навсякъде.
Защо CDN не е панацея

Въпреки очевидните предимства, не всички и не винаги се стремят да внедряват технологията в бизнеса си. Защо? Както не е странно, някои недостатъци произтичат от предимствата, плюс добавят още няколко пункта, свързани с разгръщането на мрежата. Маркетолозите красиво разказват за всички предимства на технологията, забравяйки да споменат, че те губят смисъл в широк спектър от условия. Ако разглеждаме по-подробно минусите на CDN, трябва да се подчертаят:
- Работата е само със статичен контент. Да, повечето съвременни сайтове имат нисък процент динамично съдържание. Но там, където страниците са персонализирани, CDN няма как да помогне (освен ако не облекчи голям обем трафик);
- Закъснение при кеширане. Самата оптимизация е едно от основните предимства на разпределителните мрежи. Но когато се правят промени на изходния сървър, отнема време, преди CDN да ги кешира на всичките си сървъри;
- Масови блокировки. Ако по някаква причина IP адресът на CDN бъде блокиран, всички сайтове, разположени на него, ще бъдат затворени;
- В повечето случаи браузърът ще установи две връзки (с изходния сървър и CDN). А това означава допълнителни милисекунди на чакане;
- Привързване към IP адресите на проекти (включително несъществуващи), които преди това са били асоциирани с него. В резултат получаваме усложнено индексиране от търсачките на Google и трудности при изваждане на сайта в топа при SEO промоция;
- CDN възел – това е потенциална точка на отказ. Когато ги използвате, е важно предварително да разбирате как е организирана маршрутизацията на системата и какви грешки могат да възникнат при работа със сайта;
- Тривиално е, но за услугите за доставка на съдържание трябва да се плаща. Основно разходите са пропорционални на обема на трафика, а значит е необходимо да се контролира бюджета.
Важно е да се отбележи: дори близостта на CDN до потребителя не гарантира ниско забавяне. Изграждането на маршрути може да става от клиента до хост в друга страна или дори на друг континент. Това зависи от политиката на маршрутизация на конкретната мрежа и нейното взаимодействие с операторите на свързаност (пиринг). Много от големите доставчици на CDN предлагат няколко тарифи, където цената влияе директно на близостта на точката на присъствие при предаване на съдържание на целевите потребители.
Ако имате възможности – стартирайте собствената си CDN
Не ви удовлетворява политиката на компаниите, предоставящи услуги за разпространение на съдържание, но бизнесът се нуждае от разширение? Ако имате възможности, защо да не опитате да стартирате собствена CDN. Това има смисъл в следните случаи:
- Текущите разходи за разпространение на съдържание не оправдават очакванията и не са икономически обосновани;
- Необходим е постоянен кеш, без съседство с други сайтове на сървера и канала;
- Целевата аудитория се намира в регион, където няма точки за присъствие на наличните CDN;
- Необходимост от персонализиране на настройките при доставка на съдържание;
- Трябва да се ускори доставката на динамично съдържание;
- Подозрения за нарушаване на конфиденциалността на потребителите и други неправомерни действия от страна на трети услуги.
Стартирането на CDN ще изисква от вас домейн, няколко сървъра в различни региони (виртуални или физически) и инструмент за обработка на заявките. Не забравяйте за инсталирането на SSL сертификати, настройването и редактирането на програми за отдаване на статично съдържание (Nginx или Apache), както и за ефективното наблюдение на цялата система.
Правилната конфигурация на кеширащите проксита е материал на отделна статия, затова тук няма да разглеждаме подробно: къде и кой параметър е нужно да бъде настроен. С оглед на стартовите разходи и времето за изграждане на мрежата, използването на готови решения може да бъде по-перспективно. Но трябва да се ръководите от сложилата се конюнктура и планирането за няколко стъпки напред.
Какво в крайна сметка
CDN е набор от допълнителни ресурси за ретранслиране на вашия трафик на широки маси. Нужни ли са те за бизнеса в интернет? Както да, така и не, всичко зависи от това каква аудитория е целевото съдържание и какви цели преследва собственикът на бизнеса.
Регионални и специализирани проекти ще имат повече минуси, отколкото плюсове от внедряването на CDN. Заявките все пак ще идват първо на оригиналния сървър, но вече през посредник. Оттук съмнителното намаляване на пинга, но съвсем определени месечни разходи за ползване на услугата. При наличие на добро мрежово оборудване можете спокойно да усъвършенствате съществуващите алгоритми за информационна сигурност, да разполагате своите сървъри по-близо до потребителите и да получавате оптимизации и печалба безплатно на постоянна основа.
Наистина е важно големите компании с инфраструктура, която не справя с постоянно растящия трафик, да се замислят за посреднически сървъри. CDN представлява чудесна технология, която позволява бързо разгръщане на мрежа в широк географски обхват, осигурявайки комфортен облачен гейминг или продажба на стоки на голяма търговска платформа.
Но дори при широк географски обхват на аудиторията е важно предварително да разберем за какво точно са нужни мрежите за разпространение на съдържание. Ускорението на сайта все още остава сложна задача, която не се решава магически с внедряването на CDN. Не бива да забравяме важни функции като: кросплатформеност, адаптивност, оптимизация на сървърната част, кода, рендеринга и др. Предварителен технически одит и адекватни мерки за разрешаване на проблеми остават оптимално решение за всеки онлайн проект, независимо от неговото направление и мащаб.
Реклама
В момента можете да поръчате , които използват най-новите процесори . Гъвкави тарифи — от 1 ядро CPU до невероятни 128 ядра CPU, 512 ГБ RAM, 4000 ГБ NVMe.
Източник: habr.com

