Предположим, у вас есть этот модный новый сайт с большим количеством данных (например, с большими изображениями), и вы собираетесь разместить его в Интернете. Если вы сделаете «слишком много» рекламы, в первые дни сайт будет завален запросами.
Как я могу снизить этот риск?
Я думал о
Я не могу:
Постепенный выход в эфир может сработать для SOF и SF, потому что у них уже была встроенная реклама и спрос из-за популярности блогов Джеффа и Джоэла. Если у вас нет почти гарантированной базы пользователей, как у них, постепенный запуск может оказаться фатальным.
Я бы избегал ограничения параллельными сеансами, так как трудно определить конец сеанса, вызванный бездействием. Если пользователь уходит на 15 минут и пытается перезагрузить свою страницу, только чтобы получить сообщение об ошибке - вы просто потеряли пользователя.
Насколько много планирования вошло в вашу модель данных? Вы разработали схему, которая позволит вам увеличить объем запросов без дорогостоящих сортировок, двоичных столбцов или сложных соединений? Вы настроили серверную часть своей базы данных (если она у вас есть)?
Как вы обслуживаете свои «большие изображения»? Можете ли вы выделить это в отдельный процесс веб-сервера, даже в отдельный домен?
Вы тестировали свою систему под нагрузкой? Такие инструменты, как ApacheBench и Siege, бесценны.
Вся ваша конфигурация в svn? Ваше развертывание автоматизировано? Вы будете этому рады, когда вам нужно будет развернуть наше приложение на 2-м сервере.
Я бы позаботился о том, чтобы у вас была надежная инфраструктура мониторинга до запуска. Вам нужны данные, на которых можно принимать решения - это означает измерение нагрузки на ЦП на серверах, проверку того, что ваша нагрузка равномерно распределяется по ящикам, и что если что-то тает, вы знаете, что это было.
Если вы поймете, где находится проблема, время, необходимое для ответа, значительно сократится. Я видел, как слишком много сайтов запускались без какого-либо мониторинга, с намерением, что это будет сделано позже ... после того, как пожар погаснет. Это в корне неверно.
Система приглашения иногда может быть хорошим способом контролировать посещаемость сайта пользователями. Вначале раздайте определенное количество приглашений, чтобы сайт не перегружался. Затем дайте каждому пользователю несколько приглашений для передачи другим, постепенно увеличивая количество пользователей на сайте. Таким образом, вы не получите слишком много людей, посещающих сайт вначале, и не получите большого пика трафика.
Обратной стороной, конечно же, является то, что вначале вы можете отказывать многим пользователям, у которых нет приглашений, и которые могут не вернуться позже. Если у вас нет действительно хорошего сайта, которым люди будут очень рады пользоваться, это может быть плохой ход. Это действительно зависит от сайта. Кроме того, вам действительно понадобится дополнительное время на разработку, чтобы добавить систему приглашений.
Возможно, вы захотите изучить сторонний хостинг статического контента, такой как Amazon S3. В зависимости от вашего приложения может быть целесообразно также облачить некоторые (насколько я ненавижу это модное слово) с помощью Amazon EC2.
Некоторые хостинг-провайдеры позволяют вам в течение некоторого времени тестировать частные серверы с максимальной емкостью, а затем выбирать разумную емкость по истечении пробного периода.
DreamHost - один из примеров:
http://www.dreamhost.com/hosting-vps.html