Порой при переходе на какой-либо интернет сайт можно столкнуться со следующей ситуацией: при открытии интересующего вас сайта, появляется подобное сообщение: «Пожалуйста, подождите… Загрузка страницы займет длительное время.» или «Запрошенный сайт сейчас недоступен. Обновите страницу или попробуйте зайти позже». Что это значит и как бороться? Попробуем разобраться в этой статье.
Немного истории о появление первых ускорителей контента. Впервые с проблемой медленной отдачи контента страниц сайта люди столкнулись в 90-х годах 20-го века. Собственники серверов придумывали разные хитрости, чтобы улучшить производительность серверов, мощность которых ограничена. Были разработаны information superhighway и «иерархическое кэширование», которые стали основой для современной системы распределения информации. 1998 – год основания компании Akamai, занимающей лидирующие позиции и сейчас среди CDN провайдеров с сотней распределительных серверов по всему миру .
Если при переходе на сайт вы видите долгую загрузку страницы или страница не может загрузиться вовсе, но наряду с этим другие сайты в этом же браузере открываются быстро, то дело не в мощности вашего компьютера, интернет-соединения или используемом браузере, а в сервере, на котором размещен искомый веб-сайт.
Не все пользователи могут позволить себе долгое ожидание загрузки страницы и в большинстве случаев уходят с проблемных сайтов и обращаются к другим ресурсам. Если вы владелец такого веб-сайта и замечаете частые отказы в метриках, снижение интереса и количества посетителей при посещении вашего “детища”, стоит задуматься над решением проблемы уже сейчас, пока сайт все еще интересен поисковым системам. Интернет-магазины, работающие по всей стране или миру, могут нести колоссальные потери, если сервер в момент максимальной нагрузки перестает справляться, сайт загружается медленнее, чем обычно или вовсе становится недоступен для конечных пользователей. Покупатели в этот момент не могут зайти на площадку и уходят к другим продавцам. Поисковики тем самым могут понизить ранжирование сайта, что влечет за собой большие финансовые убытки. Решением становится CDN – Content Delivery Network.
Простыми словами это «Сеть распределения контента». В случае обычного хостинга для небольших сайтов доступ к ним осуществляется по следующему алгоритму:
CDN включает в эту систему вспомогательные центры, хранящие и обеспечивающие транспортировку данных. Это множество кэширующих серверов, имеющих точки присутствия (Point of Presence, PoP) или пограничный сервер (Edge). Эта услуга предоставляется специализирующимися интернет-организациями (провайдерами).
Серверы поставщика размещаются во многих географических точках, поэтому поток информации для конечного пользователя следует по кратчайшему пути. Вследствие чего происходит снижение нагрузки с основного хостинга и перераспределение ресурсов, обеспечивая наибольшую скорость соединения и страницы, пользующиеся CDN, прогружаются намного быстрее.
Информация, находящаяся на серверах, бывает статической и динамической.
Статическая информация. В первом случае это «весомый» пакет информации: графические, звуковые и текстовые файлы, документы, исполняемые файлы, то есть те виды информации, которые относительно статичны во времени и крайне редко меняются.
Динамическая информация. Во втором случае данные передаются в разном виде в зависимости от того, что именно и каким образом запрашивает пользователь: у него может быть разное местонахождение, история браузера и так далее.
Динамическое содержимое сайта обычно невелико по объему передаваемых данных, но для его генерации используется оперативная память и мощности центральных серверов. И если сервер один, то повышенная нагрузка в пиковые моменты может замедлять работу сайта.
При применении CDN часть информации (лишь статическая) кэшируется на разных сетевых серверах CDN. Они обрабатывают запросы клиента и осуществляют передачу наиболее объемных статических данных. Это значительно освобождает от нагрузки главный сервер, который теперь используется в основном для обработки динамической информации, трафик перераспределяется, интернет-страницы на ПК пользователя открываются быстрее.
Главный сервер организации-провайдера размещается в Москве, а интернет-аудитория расположена на просторах всей России и можно представить, сколько тысяч километров до самой отдаленной точки клиента, подключенной к нему. В результате получим разные расстояния – на карте по прямой и, проходящие по оптоволоконным и кабельным линиям. В связи с этим скорость передачи информации по сети Интернета ограничивается, замедляется трафик на этапе обработки буферными узлами (маршрутизаторами) и страница у клиента, находящегося, скажем, во Владивостоке, открываться будет значительно дольше, чем в Москве.
Применяя CDN, запрос абонента из дальнего города распознается по местоположению IP-адреса и передается в территориально ближайший кэширующий сервер. Итог – статический контент доставляется практически моментально, будто человек из Владивостока находится в Москве.
Для использования CDN необходимо провести ряд относительно несложных действий:
Чтобы информация вашего основного сервера реплицировалась и кэшировалась на дополнительных серверах, необходимо использовать дополнительные инструменты и плагины (например, W3 Total Cache для WordPress). Основное программное обеспечение будет по-прежнему функционировать на главном сервере, а кэшированные элементы будут поступать на CDN-серверы для дальнейшего доступа к ним со стороны пользователей.
Необходимо учесть, что хранилище CDN не является традиционным сервером, а занимается только кэшированием и передачей данных по заданным алгоритмам. Данные, которые прошли кэширование, в хранилищах CDN для актуализации постоянно изменяются (обновляются).
Самой часто применяемой считается модель «первое обращение». Когда происходит первый запрос на определенную информацию к головному серверу, определяется географическое положение клиента. Все следующие запросы от конкретного клиента получат данные, кэшированные на самой близкой к ним точке присутствия.
Проблема этой модели заключается в том, что последующие схожие запросы могут оказаться выполненными из новых географических регионов. Чтобы решить эту сложность, применяется схема регионального распределения. При этом серверы-соседи, находящиеся в составе CDN, отдают информацию друг другу, не обращаясь к головному серверу (еще этот процесс называется «многоуровневая задача»).
Как видно, распределительная сеть важна сервисам с обширной аудиторией, располагающейся в различных регионах. Пользуются спросом услуги CDN в следующих сферах:
Выбирая CDN поставщика, необходимо учесть:
Как и любая интернет-технология, распределительная сеть CDN имеет особенности, которые обнаруживаются в ходе ее использования:
Перед тем как внедрять CND, необходимо понять причины медленной работы вашего сайта. Если он не имеет много статической информации, аудитория не распределена территориально по разным странам, причина медленной скорости может решиться другими методами.
Можно попробовать провести программную оптимизацию, понизить разрешение изображений, удалить повторяющиеся данные, перейти на более мощный сервер. Если это не привело ни к каким результатам, стоит попробовать CDN систему.
В роли замены рынок IT-технологий предлагает VPS/VDS-хостинг (виртуальный сервер, сдаваемый в аренду), обладающий адаптивностью, масштабируемостью, повышенной устойчивостью и высокой безопасностью. При этом, цены на данную услугу зависят не столько от качества самих услуг, сколько от авторитетности хостинг провайдера.