Все проекты

Кейс

Festivus Games

Спортивное соревнование, которое проходит не на одной площадке, а одновременно в сотнях клубов по всей стране. Тысячи атлетов сдают результаты в один и тот же день и тут же видят себя в общем рейтинге.

Заказчик
Festivus Games, США
Годы
2007 — 2014
Объем работ
Разработка (Backend), производительность
Стек
PHP, WordPress

Задача

У обычного сайта нагрузка — это кривая: утром растет, ночью падает, под рост можно подстроиться заранее. Здесь нагрузка — это отвесная стена. Триста шестьдесят четыре дня система почти пуста, а в день соревнования вся страна выходит на помост одновременно.

Сотни клубов, тысячи атлетов, несколько часовых поясов — и все разом отправляют результаты и обновляют таблицу. Рейтинг при этом должен пересчитываться на глазах: атлет, только что закончивший подход, хочет видеть свое место сейчас, а не завтра.

Все это на PHP и WordPress, во времена, когда добавить мощности одним движением было еще нельзя: к пиковому дню нужно было готовиться, а не реагировать на него.

Что сделали

Держали бэкенд соревнования семь сезонов подряд: прием результатов от клубов, пересчет таблиц и выдачу рейтингов в тот единственный день, когда это все решается.

Результат

Тысячи атлетов в один день Сотни клубов соревнуются одновременно, и все результаты сходятся в один живой рейтинг. Соревнование пережило нас: оно проводится до сих пор, теперь под именем TRU Challenge.

Нагрузка по расписанию

Такие системы редко ломаются постепенно: они либо выдерживают день икс, либо нет, и второго шанса в этом сезоне не будет. Отсюда и наш подход к эксплуатации: считать пик заранее и проверять систему до того, как он наступит, а не разбираться по факту.