Разработка высоконагруженных проектов

Запуская новый сайт его владелец, обязательно ждёт наплыва посетителей. Однако не все знают, как этот поток принять и обратить себе на пользу, т.к. не все веб-приложения изначально написаны так, что могут обработать достаточное количество соединений.

 

 

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

Предположим, Вы владелец перспективного стартапа. Блестящая идея, превосходный бизнес-план, команда энтузиастов, бета-версия проекта вызвала шквал положительных откликов в социальных сетях и привлекла внимание инвесторов. И вот Вы наконец получили бюджет, позволяющий осуществить массированную рекламную компанию. Купили сервера, разместили свой веб-сервис, провели рекламную компанию.

На следующий день посещаемость проекта взлетела с нескольких десятков человек в день до десятков тысяч. Казалось бы, успех достигнут. Но выясняется, что система не выдержала нагрузку. Клиенты, которые зашли взглянуть на новинку, уходят, чтобы никогда уже не возвратится, рекламный бюджет ушёл впустую, инвесторы в бешенстве, над проектом нависла серьёзная угроза. А между тем достаточно было перед покупкой дорогостоящего сервера посоветоваться с нами, зачастую хватает небольших модификаций вашего проекта по нашим рекомендациям, и например вместо одного очень дорого сервера купить два-три, очень бюджетных, существенно сэкономив и обеспечив горизонтальное масштабирование.

Мы проводим полноценный аудит сайта/сервиса/проекта и даём свои рекомендации разработчикам, настраиваем существующее ПО, ставим недостающее, определяем стратегии балансировки нагрузки, кэширования, масштабирования, оптимизируем обращения к БД и многое другое, причём делаем это быстро. В данном сценарии решается две основные задачи - аварийное восстановление работоспособности, и что не менее важно - определение дальнейшей тактики с целью нейтрализации “узких мест”.