Какие методы вы используете для горизонтального проектирования и масштабирования веб-приложения (в EC2)?

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

Я сталкивался с GlusterFS, который выглядит великолепно, но мне пока не ясно, как он вписывается в архитектуру веб-приложения. Это также интересно для меня.

Спасибо за совет и ссылки.

2 ответа

Вы можете использовать Elastic Load Balancing http://aws.amazon.com/elasticloadbalancing/ для балансировки нагрузки нескольких веб-серверов nginex, а затем двух или трех серверов приложений с Thin ( http://code.macournoyer.com/thin/). настроен как кластер. В качестве облачной СУБД вы можете использовать RDS, что является предложением Amazon для MySql. Вы можете поделиться сеансами, но используя хранилище сеансов AR или используя memchaced.

Thin - это сервер приложений для Ruby, но вы можете заменить Thin на Apache + mod_php, Tomcat или любой другой.

Серверы приложений должны монтировать кластерную файловую систему, такую ​​как GlusterFS, где вы должны поместить свой код (тот же код для любого сервера).

Затем, используя инструмент командной строки Amazon, вы можете настроить, когда серверы должны создавать новые экземпляры, например, когда сервер достигает 70% загрузки ЦП.

Вы можете использовать Varnish для статического кэширования, установленного на том же экземпляре веб-сервера или на его собственном экземпляре (лучше).

Существует множество решений, хотя проще всего использовать Heroku.

Из головы я бы посмотрел на Amazons SimpleDB, который говорит, что вы уже находитесь в экосистеме aws. Но трудно сказать, не имея больше информации о вашем приложении, чем просто "веб-приложение".

Другие вопросы по тегам