Масштабируемость многосайтовых рельсовых приложений - PullRequest
0 голосов
/ 11 ноября 2011

Я начинаю работу над новым проектом Rails, который основан на предпосылке, позволяющей пользователям создавать свои собственные "сайты". Каждый «сайт» будет поддоменом корневого домена (мы будем использовать example.com). Поэтому, если пользователь Foo хочет создать свой собственный сайт на bar.example.com, каждый запрос страницы к странице bar.example.com потребует выборки строки в таблице сайтов на основе субдомена.

Мой вопрос не в том, как кодировать многосайтовое приложение, я думаю, что я довольно хорошо разбираюсь в этом. Мой вопрос заключается в том, чтобы с точки зрения масштабируемости и производительности, было бы лучше просто сгенерировать новый проект rails для каждого сайта, который создает пользователь? Или это нормально, запустить все сайты из одного приложения рельсы. Если нужны цифры, давайте предположим, что у меня 1 миллион пользователей, у каждого из которых максимум 5 сайтов, и каждый сайт приносит около 1000 посещений в день.

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

Ответы [ 3 ]

3 голосов
/ 11 ноября 2011

Было бы значительно проще иметь приложение с 1 рельсом с миллионами поддоменов по сравнению с миллионами приложений с рельсами.

Проверьте этот Railscast для того, чтобы начать с поддоменов: http://railscasts.com/episodes/221-subdomains-in-rails-3

2 голосов
/ 11 ноября 2011

Я бы никогда не подумал сделать что-то подобное с несколькими проектами Rails из-за необходимости поддерживать весь код. Сохраняя его централизованным, вы можете сразу изменить функциональность всех сайтов.

Я думаю, вы также можете столкнуться с проблемами с памятью, если все эти копии Rails тоже будут созданы.

0 голосов
/ 11 ноября 2011

@ Соломон прав.Heroku.com использует ту же концепцию для своих пользователей, чтобы демонстрировать пользовательские приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...