vikkyshostak
@vikkyshostak
< This head full of dreams.

Как оптимальнее всего организовать БД для веб-сервиса на Django/Flask, чтобы подготовиться к большим нагрузкам?

Доброго времени года!

Вопрос скорее теоретический, чем практический.. но лучше один раз спросить, чем выразительно промолчать и «сесть в лужу» (чтобы охладить пылающую пятую точку :D ) в будущем. Вводные данные будут скорее похожи на «сферического коня в вакууме», чем реальностью. Но это делается для того, чтобы лучше (и чётче) описать вопрос. Итак, мы имеем:

  1. Веб-сервис (тематику возьмём для примера — рецепты еды)
  2. Пользователи из разных уголков Земли (США, РФ, Европа, СНГ)
  3. Ожидаемая нагрузка, например, +1500 активных уников в месяц
  4. VDS на Debian/Ubuntu x64 в облаке (например, тариф DO за $20/mo)
  5. Python 3.5+
  6. PostgreSQL 9.6+
  7. Веб фреймворк берём Django или Flask (другие можно тоже рассмотреть, но в них у меня опыта мало)

Суть: как оптимальнее всего организовать БД для веб-сервиса на Django/Flask, чтобы быть готовым к постоянно увеличивающийся (но не равномерной) нагрузке на базу данных, в результате постоянных CRUD действий?

Встретил на просторах гугла совет по разделению каждой из таблиц БД на разные сервера. То есть, таблица ingredients на vds1.digitalocean.com, таблица recipes на vds2.digitalocean.com, таблица users на vds3.digitalocean.com и так далее. Тем самым мы можем увидеть, где растёт нагрузка (растут ли кол-во регистрации или добавление рецептов или поиск по ингредиентам или ...) и масштабировать именно этот сервер, а остальные вообще не трогать.

Так вот, рабочий ли это вариант? Если «рабочий», то как организовать такую схему работы БД на Django/Flask (модули)? Может быть есть более лучшие и элегантные варианты решения данной проблемы?

Буду рад толковым комментариям и ссылкам по этой теме! Спасибо.
  • Вопрос задан
  • 754 просмотра
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Ожидаемая нагрузка, например, +1500 активных уников в месяц
это не большие нагрузки
ну и не забывайте за optimization.guide

делайте все на одном, только реплицировать не забудьте БД ( + бэкапы само собой)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы