Назад | Перейти на главную страницу

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

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

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

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

Вы можете использовать эластичную балансировку нагрузки 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. Но трудно сказать, не имея информации о вашем приложении, кроме «веб-приложения».