Как мы сами себя DDOSили с Film.ru
В прошлую пятницу мы добавили наш web-виджет LetItPlay на Film.ru - один из крупнейших ресурсов рунета о кино. Мы были очень рады этому событию, т.к. Film.ru стал для нас одним из самых посещаемых контент-провайдеров.
Для тех, кто еще не знаком с проектом LetItPlay, поясню, что наш web-плеер на сайте позволяет сразу с главной страницы слушать озвученный контент. В случае с Film.ru это обзоры новинок кинопроката.
В выходные мы были очень заняты подготовкой нового сайта letitplay.io и не обратили внимание на возросшую нагрузку на нашу инфраструктуру. Только в понедельник посмотрели статистику и очень удивились, мягко говоря) - 600Гб трафика за несколько дней! Начали разбираться.
А дело было вот в чем - для удобства пользователей виджета LetItPlay мы делали кэширование первого аудио в плейлисте, чтобы слушатель сразу (без секундного ожидания) мог слушать аудио. В результате, все посетители film.ru, как только заходили, на сайт инициировали подгрузку аудио с нашего сервера. А посетителей этих было 260 тыс в сутки! В пике нагрузки с нашего сервера подтягивалось несколько тысяч аудио одновременно.
LetItPlay вообще-то создается как децентрализованный проект на блокчейне, но на начальном этапе сервисы работают на централизованной инфраструктуре. К чести нашего сервера, он выдержал этот внеплановый нагрузочный тест и не лег от такого количества пользователей!
Когда мы поднимали централизованную инфраструктуру, то у нас были сомнения, продержится ли она до переезда на блокчейн. И вот сейчас можно с уверенностью сказать, что продержится несмотря на планомерное увеличение количества контент-провайдеров.
Сейчас мы дополнительно оптимизировали наш виджет, сделали его еще более устойчивым к нагрузке и временно отключили кэширование первого аудио. Сейчас наш сервер расслабляется после трудовых выходных и ждет реальных пользователей)