![](https://habrastorage.org/getpro/habr/post_images/f4d/984/d2e/f4d984d2ec70ed1926112fdb07aa847c.jpg)
В течение года россияне регулярно отправляются на праздники – новогодние каникулы, майские и другие менее продолжительные выходные. А это традиционное время для сериальных марафонов, спонтанных покупок и распродаж на Steam. В предпраздничный период повышенную нагрузку испытывает ретейл и логистические компании: люди заказывают подарки в Интернет-магазинах, оплачивают их доставку, покупают билеты для поездок, общаются. Календарные пики спроса являются хорошим стресс-тестом и для онлайн-кинотеатров, игровых порталов, видео-хостингов и стриминговых музыкальных сервисов – в праздники все они работают «на износ».
Рассказываем, как организовано обеспечение бесперебойной доступности контента на примере онлайн-кинотеатра Okko, который опирается в своей работе на мощности дата-центра Linxdatacenter.
Ранее под сезонные скачи потребления приобреталось дополнительное оборудование для локального размещения, причем «с запасом». Однако, когда «Время Ч» наступало, нередко выяснялось, что справиться с правильной настройкой серверов и СХД самостоятельно компании либо не могут, либо не успевают. Решать эти задачи по ходу развития внештатных ситуаций просто не получалось. Спустя время пришло понимание: пики спроса на контент и онлайн-сервисы прекрасно отрабатываются с помощью ресурсов третьей стороны, которые можно приобретать по модели pay-as-you-go — оплата фактически потребляемого объема.
Сегодня практически все компании, которые предвидят всплеск спроса на свои ресурсы в праздники (так называемый burst), заблаговременно заказывают расширение пропускной способности каналов связи. Те компании, которые размешают приложения и базы данных на ресурсах ЦОДа, под праздничные пики наращивают вычислительные мощности в облаках, дозаказывая в дата-центрах необходимые виртуальные машины, объем СХД и т.д.
Как не промахнуться в расчетах
![](https://habrastorage.org/getpro/habr/post_images/0eb/372/9e7/0eb3729e794981f902aa80dae4ddd0f8.jpg)
Для подготовки к пиковым нагрузкам важна скоординированная работа провайдера и клиента. Основными моментами в этой работе можно назвать точный прогноз скачка нагрузки по срокам и объемам, тщательное планирование и качество взаимодействия с коллегами внутри ЦОДа, а также с командой ИТ-специалистов на стороне контент-провайдера.
Организовать быстрое выделение ресурсов, необходимых для того, чтобы новая серия любимого сериала на экране вашего планшета не подвисала, помогает целый ряд решений.
- Во-первых, это балансировщики рабочих нагрузок: это программные решения, которые тщательно мониторят уровень загрузки серверов, СХД и сети, позволяя оптимизировать работу каждой системы под поставленную задачу. Балансировщики оценивают уровень доступности как «железа», так и виртуальных машин, не позволяя проседать производительности систем с одной стороны, и не давая инфраструктуре «перегреваться» и тормозить, с другой. Таким образом поддерживается определенный уровень запаса ресурсов, которые могут оперативно перебрасываться на решение срочных задач (резкий скачок обращений к порталу с видео-контентом, рост заказов определенного товара и тому подобное).
- Во-вторых, CDN. Эта технология позволяет пользователям без задержек на буферизацию получать контент с портала через доступ к нему из ближайшей к пользователю географической точки. Кроме того, CDN нивелирует пагубное воздействие на процессы передачи трафика, вызванное перегрузкой каналов, разрывами связи, потерями пакетов на стыках каналов и т.д.
Всевидящее Okko
![](https://habrastorage.org/getpro/habr/post_images/732/45d/783/73245d783be7ec9eb5fb71bbe3b197d2.jpg)
Рассмотрим пример подготовки к праздникам онлайн-кинотеатра Okko, использующего наши площадки в Москве и Санкт-Петербурге.
По словам Алексея Голубева, технического директора Okko, в компании, помимо календарных праздников (высокого сезона), есть периоды, когда выходят основные киноновинки от мейджоров:
«Каждый год в праздничный сезон Okko растет по объему трафика приблизительно в два раза по отношению к предыдущему году. Так, если в прошлый новогодний сезон максимальной пиковой нагрузкой были 80 Гбит/с, то в 2018/19 мы ожидали 160 – традиционный рост вдвое. Однако, получили более 200 Гбит/с!»Okko всегда готовится к пиковой нагрузке неспешно, в течение года, в рамках проекта под кодовым названием «Новый Год». Ранее в Okko использовали собственную инфраструктуру, у компании есть свой раздающий кластер доставки контента, на собственном железе и со своим же программным обеспечением. В течение года технические специалисты Okko постепенно покупали новые сервера, увеличивали пропускную способность своего кластера, предполагая годовой рост в два раза. Дополнительно подключали новые аплинки и операторов – кроме крупных игроков вроде «Ростелекома», «Мегафона» и МТС, также подключали и точки обмена трафиком, и самых мелких операторов. Такой подход позволял доставлять сервис максимальному количеству клиентов самым коротким маршрутом.
В прошлом году, проанализировав стоимость оборудования, трудозатрат на расширение и сравнив со стоимостью использования сторонних CDN, в Okko поняли, что пришло время попробовать гибридную модель раздачи. За двукратным ростом в новогодние каникулы идет спад трафика, а февраль – самый низкий сезон. И получается, что свое оборудование простаивает в это время. К лету спад нивелируется, и уже к осеннему сезону начинается новый подъём. Поэтому в рамках подготовки к новому 2019 году Okko пошли другим путём: доработали свое ПО, чтобы уметь распределять нагрузку не только на себя, но и на внешние CDN (сеть доставки контента – Content Delivery Network). Было подключено два таких CDN, в которые «сливались» избытки трафика. Внутренняя пропускная способность ИТ-инфраструктуры Okko готова была выдержать тот самый двойной рост, но на случай, если произойдет перебор ресурсов, были подготовлены партнерские CDN.
«Решение не наращивать свой CDN сэкономило Okko порядка 20% бюджета раздачи в CAPEX. Плюс компания сэкономила несколько человеко-месяцев, переложив работу по настройке оборудования на плечи партнера.» — комментирует Алексей Голубев.
Раздающий кластер (внутренний CDN) в Okko реализован на двух площадках Linxdatacenter в Москве и в Санкт-Петербурге. Обеспечено полное зеркалирование и контента, и его кэширования (раздающие ноды). Соответственно, московский дата-центр обрабатывает Москву и несколько областей России, а петербургский – Северо-Запад и оставшуюся часть территории страны. Балансировка происходит не только по региональному признаку, но и в зависимости от загруженности нод в конкретном дата-центре, также учитывается наличие фильма в кэше и ряд других факторов.
Укрупненная архитектура сервиса выглядит на схеме так:
![](https://habrastorage.org/getpro/habr/post_images/89c/afe/0e0/89cafe0e0d717e200e2d086cb76d6456.jpg)
Физически сервис и поддержка разработки продукта состоят из порядка десяти стоек в Петербурге и нескольких стоек в Москве. Есть пара десятков серверов под виртуализацию и почти двести «железных» серверов для всего остального – раздачи, поддержки сервиса и собственной инфраструктуры офиса. Взаимодействие контент-провайдера с ЦОДом в период пиковых нагрузок никак не отличается от текущей работы. Все общение ограничивается заявкой в службу поддержки, а в случае нештатной ситуации – по звонку.
Сегодня мы, как никогда, близки к настоящему, на все 100% бесперебойному сценарию потребления контента в онлайне, поскольку все необходимые для этого технологии уже доступны. Развитие онлайн-стриминга происходит очень быстро. Растет популярность легальных моделей потребления контента: российские пользователи начинают постепенно привыкать к тому, что нужно платить за контент. Причем, не только за кино, но и за музыку, книги, образовательные материалы в сети. И в этой связи доставка наиболее разнообразного контента и с наименьшими сетевыми задержками – важнейший критерий в работе онлайн-сервисов. И наша задача, как сервис-провайдера, – закрыть потребности в ресурсах вовремя и с запасом.