ru:https://highload.today/blogs/dostavka-kontenta-na-strimingi/ ua:https://highload.today/uk/blogs/dostavka-kontenta-na-strimingi/
logo
Серверная      30/09/2021

Технология в основе Netflix и Spotify: как работает система доставки контента на стриминги

Евгения Егорова BLOG

QA Automation Engineer в NIX

Еще в 90-х годах по всему миру возникла проблема перегруженности серверов. При подключении большого количества удаленных клиентов серверы не могли выдавать результаты запроса в короткий срок: им не хватало ни мощности процессора, ни объема памяти, ни скорости передачи данных по сети. Если сервер сайта находился на другом континенте, пользователю приходилось наблюдать, как контент по крупицам подгружается на страницу, тратя на ожидание загрузки уйму времени.

В результате некоторые компании начали ослаблять нагрузку на сайты, географически распределяя серверы.

Так появилась технология Content Delivery Network (CDN) — сетевая серверная инфраструктура, которая используется для ускорения доставки контента конечному пользователю.

Чем ближе сервер находится к клиенту, отправившему запрос на сайт, тем быстрее сервер выдаст ему ответ в виде страницы с контентом.

Серверы

Content Delivery Network

Сегодня технология CDN используется повсеместно, поэтому каждому IT-специалисту полезно знать, как она работает и как ее проверить.

Особенности работы CDN  

С помощью CDN пользователь из Франции может зайти на бразильский сайт и увидеть его наполнение меньше, чем за секунду. Параллельно с CDN начал активно развиваться и рынок стриминговых сервисов.

Благодаря близости CDN-серверов мы можем моментально получать онлайн-доступ к видео в HD, когда смотрим сериалы на Netflix или слушаем музыку с высоким битрейтом на Spotify.

Чтобы наглядно понимать, как работает CDN, разберем два случая: как технология функционирует со стороны пользователя (User) и как — со стороны заказчика услуги ускорения (Customer).

Сторона пользователя

Предположим, вы находитесь в Сан-Франциско и заходите на сайт github.io, основной сервер которого расположен в Индии. На ваш запрос сайт выдаст html-страницу, а весь статический контент будет загружен с сайта cdn.github.io, который будет расположен в США.

Но откуда сайт узнает какой именно кэш-сервер должен отдать вам информацию? Это возможно благодаря протоколу граничной маршрутизации Border Gateway Protocol (BGP). Он отправляет на IP-сеть вашего провайдера несколько анонсов с точкой присутствия cdn.github.io, из которых маршрутизатор выбирает ближайшую (у которой задержка запрос/ответ будет наименьшей). Очень похоже работет технология AnyCast.

Сторона заказчика

Заказчик загружает весь статический контент в объектное хранилище, которому присваивается уникальное Domain Name System (DNS) — имя домена. Таким образом имя сайта связывается с его цифровым адресом. На это имя и будет ссылаться html-страница, которую запрашивает пользователь. Заказчик также может указать домен origin (исходный сервер со статическими данными), из которого локальный CDN-сервер скачивает кэшированные файлы при первом поступившем запросе и выдает их пользователю, а после уже не обращается к нему, так как данные уже лежат на локальном сервере.

Курс Розмовної англійської від Englishdom.
Після цього курсу ви зможете спілкуватись з іноземцями і цікаво розкажете про себе.
Приєднатися

Работа с исходным сервером со статическими данными

Когда выгодно использовать CDN?

  • Если вы хотите в короткий срок передать статический контент большому количеству посетителей, которые находятся далеко от origin-сервера.
  • Если на вашем сайте масса тяжелого контента (видео в высоком разрешении, аудио-файлы и так далее).
  • Если вы не хотите тратиться на апгрейд сетевого оборудования. Во многих случаях гораздо дешевле вывести большую часть статического контента на edge-серверы, нежели переходить на новое, более дорогое, сетевое оборудование.

Тестирование CDN

Тестирование Content Delivery Network может выполняться с двух позиций:

  • Со стороны Customer. В этом случае проверяем, как исходный контент кэшируется и уходит на CDN-сервер, настройка правил кэширования, локализации и создание самих доменов.
  • Со стороны User. Проверяем, правильно ли контент путешествует между серверами. Обязательным для CDN является end-to-end тестирование — проверка всей цепочки передачи данных от заказчика до конечного пользователя.

Важный пункт в тестировании работы CDN — создание репортов. Репорты помогают получать информацию о трафике на ваших доменах. Ими не стоит пренебрегать. 

Выбор Environment на CDN позволяет выбрать среду применения:

  • Production применит выбранные свойства сразу ко всем созданным edge-серверам;
  • Курс Python від Mate academy.
    Python дозволяє тобі не тільки розробляти сайти та займатись аналітикою даних, а ще й будувати алгоритми, тестувати програми та навіть створювати штучні інтелекти. Стань різноплановим фахівцем!
    Реєстрація на курс
  • Staging осуществляет локальную работу с конкретно взятым доменом (это отдельный пункт тестирования, так как функционал для окружений отличается). 

Настройка edge-сервера включает в себя тысячи разных правил, начиная от создания своего домена, добавления ему сертификата и настройки правил, заканчивая манипуляциями с самими пользователями.   

Функция Purge помогает работать с удалением и замораживанием кэшированных файлов с Edge-серверов.

Purge Action позволяет удалять или замораживать контент на кэш-сервере. Здесь опция Delete будет удалять данные из кэша ваших edge-серверов, а Invalidate сделает контент недоступным пользователю, пока он не будет удален или не обновится на origin-сервере.

Вместо выводов

Из-за постоянного утяжеления контента в интернете CDN-технология востребована как никогда. Сегодня в мире просто не существует подобных альтернатив для быстрой передачи больших объемов статических данных по сети. Поэтому понимание основ администрирования CDN-серверов — ключевой фактор при создании удобного сайта.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс Pyton від Powercode academy.
Опануйте PYTHON з нуля та майте проект у своєму портфоліо вже через 4 місяця.
Приєднатися

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров марта

PHP Developer в ScrumLaunch
Всего просмотровВсего просмотров
2229
#1
Всего просмотровВсего просмотров
2229
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсего просмотров
111
#2
Всего просмотровВсего просмотров
111
Career Consultant в GoIT
Всего просмотровВсего просмотров
93
#3
Всего просмотровВсего просмотров
93
CEO & Founder в Trustee
Всего просмотровВсего просмотров
92
#4
Всего просмотровВсего просмотров
92
Рейтинг блогеров

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: