Мы живём в мире, в котором от скорости получения интересующей нас информации зависит принятие решений. Одни технологические компании бьются над созданием быстрых браузеров, другие разрабатывают фреймворки для создания веб приложений и на своих конференциях рассказывают о том, как им удалось заменой одного фрэймворка на его новую версию увеличить скорость взаимодействия на 900 миллисекунд, третьи же компании развивают сети доставки контента (далее CDN), пытаясь разместить контент территориально поближе к потребителю и создавая алгоритмы его доставки максимально кратчайшими маршрутами. Сравнительная таблица веса десятка крупнейших банковских сайтов России, средний вес главной страницы составляет 4,4 МБ (по состоянию на 15 мая 2017).  При этом только один из участников таблицы использует CDN для ускорения доставки контента до потребителя. Что такое CDN и для чего он нужен, этой аудитории объяснять не надо. Но, чтобы было понятно, что мы говорим об одном и том же, поясню. Упрощённо говоря, это набор технологий, позволяющих пользователям сайтов получать контент в среднем в несколько раз быстрее простого взаимодействия «хостинг-клиент». Контентом может быть всё что угодно, от изображений и видео, до динамически создаваемых json для мобильного приложения и полностью сгенерированных страниц сайта. Происходит ускорение за счёт того, что контент пользователи получают не из единственного дата центра, в котором размещается сайт или сервис, а с ближайшей кеширующей точки CDN провайдера (ноды).  Пример 1: Вы находитесь в Петрозаводске, а ноды есть в Санкт-Петербурге и Москве, очевидно, что географически ближе Санкт-Петербург. Поэтому для вас быстрее будет получить контент из ноды в СПб.  Рисунок 1: Изображение с Яндекс.Карты  Важно, что под ближайшей точкой понимается не только географическое расположение ноды, но и её расположение в интернете, определяемое с помощью динамического протокола маршрутизации (BGP).  Пример 2: Вы всё ещё в Петрозаводске и открываете сайт, который находится в дата центре Петрозаводска.  При не правильно настроенном протоколе маршрутизации, вы данные с этого сайта можете легко получить, после того как они прогуляются, например, в Москву через Беломорск и Архангельск. Очевидно, что это не самый близкий и не самый быстрый путь. Рисунок 2: Схема магистральной сети Ростелеком. Если вы федеальный банк, и аудитория вашего сайта расположена по всей России, а ваш основной дата центр в Москве, то ваши пользователи из Владивостока будут вынуждены ждать, пока красивый логотип пролетит расстояние в многие тысячи километров до того, как отобразится у них в браузере.  С использованием CDN столь удаленному пользователю контент будет отдаваться с ноды, расположенной непосредственно во Владивостоке, тем самым в несколько раз сократив сетевой маршрут между узлами. Какова разница в доставке контента в первом и втором примере с использованием технологии CDN и без?  Разница есть – всего несколько секунд, что может показаться на первый взгляд незначительным. Однако уже давно поисковые механизмы учитывают время загрузки сайтов при формировании логики выдачи поисковых результатов, а в онлайн ретейле рассчитана в процентном соотношении потеря конверсии за каждые 100 милисекунд дополнительного времени загрузки страницы.  Ходят легенды, что ещё в далёком 2008 году Amazon уже рассчитал суммарные годовые потери в $1,6 млрд на одну секунду дополнительного времени загрузки их сайта. Кстати, исследования показывают, что мы с вами уже через 6-10 секунд закроем страницу, открываемую с мобильного устройства, если она не откроется до того. И в этот момент встаёт вопрос – за что бороться? За скорость и конверсию или за красоту?  А хочется же чтобы на странице было видео с милыми котиками. Ну да, на сайте крупного банка видео с котиками, почему бы и нет. И вот запускаешь ты такой котика на сайт, он гуляет себе размером видео ролика в 3 МБ. И ещё одно видео с цветочками, самолётами, шахматами и уже не остановиться.   Одни решают вопрос просто – минимум графики, максимум текста. Это консервативный вариант, и из десятка сайтов крупнейших банков 40% пошли именно по нему. Другие следуют современным трендам сайтостроения и передачи эмоций, добавляют графику и динамичные объекты. Вследствие чего вес сайта увеличивается в 5-10 раз.  Как быть в этой ситуации?  Ответ на него может дать любая медиа контентная площадка – использовать CDN, помогая потребителям получить свой контент как можно быстрее. 

Именно по такому пути мы и пошли в банке «Открытие», переведя статический контент наших сайтов на CDN компании МегаФон. В результате этого перехода мы ускорили загрузку нашего сайта в различных регионах страны от 2 до 4 раз. Сам по себе переход на использование CDN занял примерно 2 рабочих дня наших разработчиков после нескольких месяцев согласований архитектуры, тендеров, пилотных проектов и заключения договоров. «Гарантированная доступность веб-ресурсов становится обязательным бизнес-требованием для банков. CDN помогает решить сразу две важные задачи — повысить скорость работы и обеспечить дополнительный уровень безопасности от кибератак. Большая емкость сети доставки контента позволяет обработать запросы миллионов пользователей и одновременно противостоять флуд-атакам на транспортном и сетевом уровнях.  В случае решения от компании «МегаФон» защита обеспечивается в комбинации с ПАК «Периметр», что расширяет поверхность защиты ускоряемых веб-ресурсов до нескольких Тб/с и экранирует от атак на уровне приложений, — говорит руководитель отдела по развитию сети доставки контента ПАО «МегаФон» Алексей Сечкин, Какие сложности нам пришлось преодолеть, до того как мы реализовали это решение?  Ведь рисков, потенциально влияющих на действующих бизнес, – огромное количество. А вдруг случится deface, и вместо того, чтобы увидеть баннер с актуальным продуктом, посетитель увидит баннер установленный злоумышленником с призывом пойти в банкоматы и срочно снять всю наличность? Для этого есть средства проверки и защиты целостности доставляемого через CDN контента. Как, например, атрибут Subresource Integrity, который в 2016 году был предложен консорциумом W3C и уже поддерживается рядом браузеров. Его суть заключается в том, что при формировании html страницы на сервере происходит генерация ключей для каждого файла по безопасному алгоритму хеширования, а браузер при загрузке файлов через CDN сравнивает значения хешей и в случае совпадения разрешает их исполнение. «У использования CDN есть один немаловажный риск – через подмену контента можно заражать клиентов, которые по сути полностью доверяют сайту. Поэтому при использовании сторонних услуг нужно обращать на этот фактор повышенное внимание. По сути эффективными являются следующие меры – включение в договор обязанностей поставщика сервиса не вносить изменения в контент без инициации изменений со стороны заказчика, двухфакторная аутентификация заказчика для управления контентом или автоматизация управления (во втором случае потребуется тщательный анализ защищенности API, предоставляемого сервис-провайдером).  Также можно реализовать мониторинг за изменениями в CDN собственными силами, — считает исполнительный директор по информационной безопасности ПАО Банк «ФК Открытие» Вячеслав Касимов. — Немаловажно также учесть сценарий DDoS-атаки на CDN (не приведет ли она к недоступности сайта в целом) и, в связи с этим, возможность быстрой реконфигурации основного сайта в некоторой минимальной комплектации с отсутствием зависимостей от CDN либо быстрого переключения на альтернативные доступные адреса CDN. Это обязательная потребность, так как совершенных систем защиты от DDoS нет, и расчитывать на 100% защиту сервис-провайдера не следует». Как же выбрать лучшего и надежного CDN провайдера?  Этот вопрос заставил нас пойти по пути экспериментов и пилотных проектов с ведущими CDN провайдерами России. 
Мы сделали клоны основного сайта, и к каждому клону подключили свою CDN площадку. Далее наши специалисты разработали скрипт, который несколько раз скачивает полностью каждый клон сайта и записывает время, которое ему потребовалось для загрузки в таблицу.  Наша офисная сеть покрывает всю территорию России от Выборга до Южно-Сахалинска и от Мурманска до Сочи, поэтому мы попросили наших сотрудников в нескольких десятках городов запустить этот скрипт и прислать его результаты.  Таким образом, мы получили достаточно репрезентативную выборку по городам, интернет провайдерам и разбросам скоростей. Всё это позволило переложить результаты пилотов на оценочную таблицу тендерного комитета, учитывающую стоимости сервиса и выбрали наиболее оптимальный вариант.
На этом мы не останавливаемся, следующим шагом будет переход на вторую версию сетевого протокола обмена данными HTTP/2. Дмитрий Фёдоров, директор по развитию интернет технологий ПАО Банк «ФК Открытие»