Прошли те времена, когда ваш сайт был единственным поставщиком каких-либо
услуг и пользователи были согласны ждать несколько секунд, пока загрузится
содержимое сайта. В условиях жесткой конкуренции преимущества в виде
качественного контента и богатой функциональности сходят на нет, если конкурент
даже с меньшей функциональностью доставляет контент быстрее, чем ваш сайт.
Компания, в которой я работаю, является одним из ведущих поставщиков услуг
социальных сетей во многих странах мира. И было решено улучшить качество наших
служб, а именно ускорить доставку контента
потребителям. Для этого предполагалось построить локальные датацентры на каждом
континенте.
Были рассмотрены два варианта: локальные датацентры
(datacenter, DC) с полным набором серверов (сервера базы данных и приложений) и
датацентры с серверами, которые кэшировали бы данные с центрального источника.
Первый вариант был сразу отметен из-за высокой
стоимости установки и обслуживания. О принципах построения второго варианта я и
расскажу в статье.
Немного теории
Распределенная сеть доставки контента, Content Delivery Network
(CDN), состоит из следующих компонентов:
n система определения месторасположения
посетителя;
n механизм выбора близлежащего регионального датацентра;
n кэширующие серверы;
n центральные серверы;
n система обнаружения отказов региональных датацентров.
Немного поговорим о первых двух
подсистемах. Для определения месторасположения посетителя и перенаправления его
на близлежащий датацентр существует три метода:
n Перенаправление (Redirect). В этом
случае посетитель заходит на центральный сервер и затем перенаправляется на
локальный датацентр средствами протокола HTTP, где и продолжает работать. К
минусам такого решения стоит отнести необходимость дублирования всего
функционала центрального датацентра в региональных, медленная скорость
обслуживания при первом посещении, невозможность перенаправить клиента на
другой датацентр в случае отказа регионального датацентра.
n Выбор оптимального пути с использованием
основ Border Gateway Protocol (BGP). В этом случае в каждом региональном датацентре
устанавливается маршрутизатор, анонсирующий сеть поставщика услуг, например
10.40.40.0/24. Когда провайдер клиента получает несколько вариантов маршрута к
этой сети, он выбирает наиболее короткий. А наиболее
короткий путь и означает путь к близлежащему датацентру. К плюсам такого
решения можно отнести надежность механизма выбора датацентра и высокую скорость
(порядка нескольких секунд) переключения на запасные датацентры. К минусам
стоит отнести сложность и высокую стоимость, т.к. каждый датацентр должен иметь
свой маршрутизатор с поддержкой BGP, также необходимость получения сети как
минимум класса С от регионального координатора.
n GeoDNS. При использовании этого метода
сервер имен определяет месторасположение компьютера посетителя и выдает адреса
ближайшего к клиенту датацентра.
В этой статье я расскажу принципы построения CDN
с использованием GeoDNS.