Как я могу сделать свое веб-приложение более устойчивым к неожиданным скачкам трафика? - PullRequest
2 голосов
/ 23 марта 2011

Я спросил об этом в HN, но не получил много советов.

Я n00b в разработке веб-приложений. Тем не менее, я работал над приложением (в Ruby on Rails +, развернутом с Heroku), которое получило действительно положительные отзывы, поэтому я бы хотел выделить для него больше ресурсов.

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

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

Любые конкретные указатели (особенно с Heroku) будут полезны!

Ответы [ 3 ]

2 голосов
/ 23 марта 2011

Каково общее распределение http-запросов для загрузки типовой страницы в вашем приложении? Откройте его в Mozilla Firebug / Chrome Dev Tool и проанализируйте поступающие http-запросы.

Если вы видите, что для каждой страницы загружается много статического контента (например, CSS / images / JS), это указывает на проблему с кешем (статический контент не кэшируется).

Вы можете даже переместить статический контент в CDN (http://en.wikipedia.org/wiki/Content_delivery_network) Эти два - низко висящие фрукты.

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

1 голос
/ 23 марта 2011

Чтобы обеспечить стабильную работу вашего приложения на всех этапах разработки и развертывания, напишите модульные тесты, функциональные тесты и интеграционные тесты (для этого существует множество гемов, таких как musta, rspec, cucumber, capybara, selenium ...).

Я бы также использовал Hoptoad для уведомления об ошибках. Есть бесплатное предложение на 1 проект (https://hoptoadapp.com/account/new/Egg)

Следующей вещью, которая будет отслеживать ваш сайт, может быть NewRelic (http://newrelic.com/). Он дает вам общее представление о том, какие запросы заняли много времени и где в вашем приложении есть узкое место.

0 голосов
/ 23 марта 2011

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

...