Невідомі шляхи контенту або про CDN замовимо слово

Невідомі шляхи контенту або про CDN замовимо слово

Дисклеймер:
Ця стаття не несе у собі відомостей раніше невідомих читачам, знайомих із поняттям CDN, а носить характер огляду технології

Перша веб-сторінка з'явилася у 1990 році і мала розмір у лічені байти. З того часу контент масштабується як якісно, ​​так і кількісно. Розвиток ІТ-екосистеми призвело до того, що сучасні веб-сторінки вимірюються мегабайтами і тенденція до збільшення пропускної спроможності мереж з кожним роком лише зміцнюється. Як контент-провайдерам охопити великі географічні масштаби та забезпечити користувачам повсюдно високу швидкість доступу до інформації? З цими завданнями повинні справлятися мережі доставки та дистрибуції контенту, вони ж є Content Delivery Network або просто CDN.

В інтернеті все більше "важкого" контенту. При цьому численні дослідження показують, що користувачі не хочуть мати справу з веб-сервісами, якщо ті вантажаться довше 4-5 секунд. Занадто низька швидкість завантаження сайту може призвести до втрати аудиторії, що неодмінно призведе і до зменшення трафіку, конверсії, а значить і прибутку. Мережі доставки контенту (CDN), в теорії, дозволяють позбутися цих проблем та їх наслідків. Але насправді все зазвичай вирішують деталі і нюанси конкретного випадку, яких у цій сфері достатньо.

Звідки взялася ідея розподілених мереж

Почнемо з короткого екскурсу в історію та визначення термінів. CDN – мережа із групи серверних машин, розташованих у різних місцях для надання доступу до інтернет-контенту з охопленням великої кількості користувачів. Ідея розподілених мереж є відразу кількох точок присутності (РоР), які перебувають поза вихідного сервера. Така система швидше обробить масив запитів, що надходять, збільшуючи відгук і швидкість передачі будь-яких даних.

Проблема з доставкою контенту користувачам гостро виникла піку розвитку інтернету, тобто. у середині 90-х. Тодішні сервери, продуктивність яких не дотягувала навіть до сучасних флагманських лептопів, важко витримували навантаження і не могли справлятися з трафіком, що постійно зростав. Майкрософт щорічно витрачала сотні мільйонів доларів на дослідження, пов'язані з інформаційною магістраллю (відразу згадуються знамениті 640 КБ від Білла Гейтса). На шляху вирішення цих питань доводилося використовувати ієрархічне кешування, переходити з модемів на оптоволокно і докладно розбирати топологію мереж. Ситуація нагадувала старий локомотив, який мчить рейками і по ходу модернізується всіма можливими засобами для збільшення швидкості.

Вже наприкінці 90-х власники веб-порталів зрозуміли, що для зниження навантаження та забезпечення необхідних запитів потрібно використовувати посередники сервера. Так з'явилися перші CDN, що роздають статичний контент із різних серверів, географічно розкиданих по світу. Приблизно в цей час з'явився і бізнес на розподілених мережах. Найбільший (як мінімум один із найбільших) CDN провайдер у світі, компанія Akamai, стала піонером у цій галузі, розпочавши свій шлях у 1998 році. Через кілька років CDN став масовим, а доходи від доставки та контрибуції контенту обчислювалися десятками мільйонів доларів щомісяця.

Сьогодні ми стикаємося з CDN щоразу при переході на комерційну сторінку з великим трафіком або спілкуванням у соціальних мережах. Послугу надають: Amazon, Cloudflare, Akamai, а також безліч інших транснаціональних провайдерів. Причому великі компанії прагнуть використати власні CDN, що приносить їм низку переваг у швидкості та якості доставки контенту. Якби Facebook не мав розподілених мереж, а задовольнявся б лише вихідним сервером, що знаходиться в США, завантаження профілю у користувачів східної Європи могло б займати значно більше часу.

Пару слів про CDN та стрімінг

Агентство FutureSource Consulting провело аналіз музичної індустрії та зробило висновок, що у 2023 році кількість підписок на музичні стрімінгові сервіси досягне майже півмільярда людей. Причому понад 90% доходів послуги отримуватимуть саме від потокових аудіо. З відео ситуація схожа, в народному лексиконі вже закріпилися такі терміни, як летсплей, онлайн концерт та онлайн кінотеатр. Свої стрімінгові сервіси мають Apple, Google, YouTube та багато інших компаній.

У ранньому поданні CDN використовувався переважно для сайтів зі статичним контентом. Статикою називають інформацію, яка змінюється залежно від дій користувача, часу та інших чинників, тобто. не є персоналізованою. Але розвиток потокових відео та аудіо сервісів додало ще один поширений сценарій для використання розподілених мереж. Сервера посередники, перебуваючи поблизу цільової аудиторії по всьому світу, дозволяють забезпечити стабільний доступ до контенту в періоди пікових навантажень, за винятком нестачі «вузьких місць» інтернету.

Як це працює

Суть усіх CDN приблизно однакова: використовувати посередників, щоб мати можливість якнайшвидше доставляти контент до кінцевого споживача. Працює це так: користувач надсилає запит на завантаження файлу, його отримує СDN сервер, який одноразово звертається до оригінального сервера і віддає користувачеві контент. Паралельно з цим СDN кешує у себе файли на заданий проміжок часу і всі наступні запити обробляє зі свого КЭШа. Опціонально вони також вміють попередньо підвантажувати файли з вихідного сервера, налаштовувати термін зберігання КЕШу, стискати важкі файли та багато іншого. У самій ідеальній ситуації, хост передає весь потік вузлу CDN, яка використовує власні ресурси для доставки контенту користувачам. Зрозуміло, що ефективне кешування інформації, а також розподіл запитів не на один сервер, а на мережу, призведе до більш збалансованого навантаження трафіку.

Невідомі шляхи контенту або про CDN замовимо слово
Другий важливою особливістю роботи CDN є зменшення затримок передачі даних (вони ж RTT – round trip time). Встановлення ТСР-з'єднання, завантаження медіаконтенту, 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 (рішення для прискорення завантаження веб-сайтів).

Перші 3 типи CDN з наведеного списку розраховані на передачу частини трафіку з основного сервера. Решта 2 використовуються як повноцінні проксі сервери з повною передачею каналів від вихідного хоста.

Кому та які вигоди надає технологія

Теоретично, будь-який сайт, що продає свої товари/послуги корпоративним клієнтам або фізичним особам (В2В або В2С) може мати прибуток від впровадження CDN. Важливо, щоб цільова аудиторія, тобто. користувальницька база, що знаходилася за межами їхнього географічного розташування. Але навіть якщо це не так, мережі розповсюдження допоможуть з балансуванням навантаження за великих обсягів контенту.

Не секрет, що для забиття серверного каналу достатньо кількох тисяч потоків. Тому роздача відеотрансляції на широкі маси неминуче призведе до утворення вузького місця пропускної спроможності інтернет-каналу. Це ж спостерігаємо, коли на сайті безліч дрібних не склеєних картинок (прев'ю товарів, наприклад). Вихідний сервер використовує одне ТСР-підключення для обробки будь-якої кількості запитів, що поставить завантаження в чергу. Додавання CDN призводить до необхідності рознести запити на кілька доменів та використовувати кілька TCP-підключень, розвантаживши канал. А формула кругової затримки, навіть при найсумніших розкладах, дає величину 6-7 RRT і набуває вигляду: TCP+TLS+DNS. Сюди справедливо також включити затримки, пов'язані з активацією радіоканалу на пристрої та передачі сигналу на стільникових вишках.

Узагальнивши сильні сторони технології бізнесу в інтернеті, фахівці виділяють такі пункти:

  1. Швидке масштабування інфраструктури + зменшення пропускної спроможності. Більше серверів = більше точок, на яких зберігається інформація. В результаті одна точка обробляє меншу кількість трафіку в одиницю часу, а значить може мати меншу пропускну здатність. Додатково в хід вступають інструменти оптимізації, що дозволяє впоратися з піковими навантаженнями без часу.
  2. Найменший пінг. Ми вже згадували, що люди не люблять довго чекати на інтернет. А тому високий пінг сприяє високим показникам відмов. Затримка може бути викликана проблемами обробки даних на сервері, використанням старого обладнання або просто непродуманою топологією мережі. Більшість із цих проблем частково вирішують мережі розповсюдження контенту. Хоча тут важливо відзначити, що реальна користь від впровадження технології буде видно лише в тому випадку, коли «споживчий пінг» перевищує 80-90 мс, а ця відстань від Москви до Нью-Йорка.

    Невідомі шляхи контенту або про CDN замовимо слово

  3. Безпека даних. DDos`и (вірусні атаки типу «відмова в обслуговуванні») спрямовані на збій у роботі сервера з метою отримання будь-якої вигоди. Один сервер набагато більше схильний до уразливостей інформаційної безпеки ніж розподілена мережа (покласти інфраструктуру такого гіганта як CloudFlare завдання не з простих). Завдяки використанню фільтрів та грамотному розподілу запитів через мережу можна без проблем запобігти штучно створеним труднощам з доступом до легітимного трафіку.
  4. Швидке поширення контенту та додаткові сервісні функції. Розподіл великих масивів інформації на серверну мережу дозволить швидше донести пропозицію кінцевого споживача. За прикладами, знову ж таки, далеко ходити не треба – досить згадати Амазон та АліЕкспрес.
  5. Можливість "замаскувати" проблеми з основним сайтом. Не потрібно чекати, поки оновляться DNS, можна перекинути його на нову локацію з роздачею раніше закешованого контенту. Це, у свою чергу, може покращити відмовостійкість.

З перевагами розібралися. А тепер розглянемо яким нішам це вигідно.

Рекламний бізнес

Реклама – двигун прогресу. А щоб двигун не перегорів, його потрібно навантажувати в міру. Ось і рекламний бізнес, намагаючись відповідати сучасному цифровому світу, стикається з проблемами «важкого контенту». Під важким розуміється мультимедійна реклама (переважно анімовані банери та відеоролики), яка потребує високих пропускних здібностей мережі. Веб-сайт із мультимедіа вантажиться довго і може підвисати, перевіряючи на міцність нерви користувачів. Більшість відмовляються від таких ресурсів ще до того, як вони провантажать всю інформацію. Рекламні компанії можуть використовувати переваги CDN у вирішенні цих проблем.

Продажі

Електронна комерція потребує постійного розширення географічного покриття. Ще одним важливим моментом є боротьба з конкурентами, яких у кожному сегменті ринку надміру. Якщо веб-сайт не відповідає вимогам користувача (у тому числі довго завантажується) він не буде популярним і не зможе приносити стабільно високу конверсію. Впровадження CDN має показати свою перевагу при обробці запитів даних із різних місць. Також розподіл трафіку допоможе запобігти його сплескам і подальшим збоям у роботі сервера.

Майданчики з розважальним контентом

Сюди підходять різні розважальні майданчики, починаючи від завантаження фільмів та ігор, закінчуючи потоковим відео. Незважаючи на те, що технологія працює зі статикою, потокові дані можуть швидше потрапляти до користувача за допомогою ретрансляторів. Знову ж таки, кешування інформації CDN є порятунком для власників великих порталів – сховищ мультимедіа.

Онлайн ігри

Інтернет гри необхідно винести на окремий пункт. Якщо реклама потребує великих пропускних здібностей, то онлайн-проекти ще більш вимогливі до ресурсів. Провайдери стикаються із проблемою, що має дві сторони: швидкість доступу до серверів + забезпечення високої ігрової продуктивності з гарною графікою. CDN для онлайн ігор – це можливість мати так звані push-зони, де розробники можуть зберігати ігри на серверах, розташованих поруч з користувачами. Це дозволяє зменшити вплив швидкості доступу до вихідного серверу, а значить, і забезпечити повсюдно комфортний геймплей.

Чому CDN – не панацея

Невідомі шляхи контенту або про CDN замовимо слово
Незважаючи на очевидні переваги, не всі і не завжди прагнуть впроваджувати технологію у свій бізнес. Чому так? Як це не парадоксально, деякі недоліки випливають із переваг, плюс додається ще кілька пунктів, пов'язаних із розгортанням мережі. Маркетологи красиво розкажуть про всі переваги технології, забувши згадати про те, що всі вони втрачають сенс у широкому діапазоні умов. Якщо детальніше розглядати мінуси CDN, то варто виділити:

  • Робота лише зі статикою. Так, більшість сучасних сайтів мають низький відсоток динамічного контенту. Але там, де сторінки персоналізовані, CDN нічим допомогти не зможе (хіба що розвантажить великий обсяг трафіку);
  • Затримка кешування. Сама собою оптимізація одна із головним переваг розподільних мереж. Але при внесенні змін на вихідному сервері минає час, перш ніж CDN перекешує її на всіх серверах;
  • Масове блокування. Якщо з якоїсь причини банять IP адресу CDN, то закриваються всі сайти, які розміщені на ньому;
  • У більшості випадків браузер буде встановлювати два з'єднання (з вихідним сервером та CDN). А це додаткові мілісекунди очікування;
  • Прив'язка до IP-адреси проектів (у тому числі неіснуючих), які раніше були за ним закріплені. В результаті отримуємо ускладнене ранжування від пошукових ботів Гугла та складності з виведенням сайту в топ при SEO просуванні;
  • CDN вузол - це потенційна точка відмови. Якщо їх використовувати, важливо заздалегідь розуміти, як влаштована маршрутизація системи та які помилки можуть виникнути в ході роботи з сайтом;
  • Банально, але за послуги доставки контенту потрібно платити. Здебільшого витрати пропорційні обсягу трафіку, отже може знадобитися контроль планування бюджету.

Немаловажний факт: навіть близькість CDN до користувача не гарантує низький пінг. Побудова маршруту може здійснюватись від клієнта до хоста, розташованого в іншій країні або навіть на іншому континенті. Це залежить від політики маршрутизації конкретної мережі та її взаємин із операторами зв'язку (пірінгу). Багато великих постачальників CDN мають кілька тарифів, де вартість безпосередньо впливає близькість точки присутності під час передачі контенту цільовим користувачам.

Є можливості – запускай власну CDN

Чи не влаштовує політика компаній, що надають послуги мереж поширення контенту, але бізнес потребує розширення? Якщо є можливості, чому б не спробувати запуск власного CDN. Це має сенс у таких випадках:

  • Поточні витрати на розповсюдження контенту не виправдовують своїх очікувань та не є економічно обґрунтованими;
  • Потрібен постійний кеш, без сусідства з іншими сайтами по серверу та каналу;
  • Цільова аудиторія знаходиться в регіоні, де немає точок присутності доступних вам CDN;
  • Необхідність персоналізувати налаштування під час доставки контенту;
  • Потрібно прискорити доставку динамічного контенту;
  • Підозри щодо порушення конфіденційності користувачів та інших неправомірних дій з боку сторонніх сервісів.

Запуск CDN вимагатиме від вас доменного імені, кількох серверів у різних регіонах (віртуальних або виділених) та інструментів для обробки запитів. Не забуваємо про встановлення SLL сертифікатів, налаштування та редагування програм з віддачі статичного контенту (Nginx або Apache), та й ефективного моніторингу всієї системи.

Правильне конфігурування проксі, що кешує, є матеріалом окремої статті, тому тут не будемо докладно розписувати: де і який параметр правильно виставити. Враховуючи стартові витрати та час на розгортання мережі, використання готових рішень може бути перспективнішим. Але керуватися необхідно кон'юнктурою, що склалася, і плануванням на кілька кроків вперед.

Що в підсумку

CDN – це набір додаткових потужностей для ретрансляції трафіку на широкі маси. Чи потрібні вони для бізнесу в Інтернеті? І так, і ні, все залежить від того, на яку аудиторію розрахований контент і яку мету має власник бізнесу.

Регіональні та вузькоспеціалізовані проекти отримають від впровадження CDN більше мінусів, ніж плюсів. Запити також приходитимуть спочатку на вихідний сервер, але вже через посередника. Звідси сумнівне зменшення пінгу, але певні щомісячні витрати на користування послугою. За наявності хорошого мережного обладнання можна спокійно вдосконалювати існуючі алгоритми інформаційної безпеки, розміщувати свої сервери ближче до користувачів та отримувати оптимізацію та профіт безкоштовно на постійній основі.

А ось кому реально варто задуматися про сервери-посередники, так це великим компаніям, інфраструктура яких не справляється з потоком трафіку, що постійно зростає. CDN чудово показує себе як технологія, що дозволяє швидко розгорнути мережу на широку географію користувачів, забезпечити комфортний хмарний геймінг або продавати товари на великому комерційному майданчику.

Але навіть за широкої географії аудиторії важливо заздалегідь розуміти навіщо саме необхідні мережі поширення контенту. Прискорення сайту так само залишається комплексним завданням, яке магічним чином не вирішується впровадженням CDN. Не варто забувати про такі важливі функції, як: кросплатформність, адаптивність, оптимізація серверної частини, код, рендеринг і т.д. Попередній технічний аудит та адекватні заходи щодо усунення проблем все також є оптимальним рішенням для будь-якого онлайн проекту незалежно від його спрямованості та масштабів.

На правах реклами

Прямо зараз ви можете замовити потужні сервери, які використовують новітні процесори amd epic. Гнучкі тарифи - від 1 ядра CPU до шалених 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.

Невідомі шляхи контенту або про CDN замовимо слово

Джерело: habr.com

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster