@timkin1

Один или несколько серверов для бэкенда, фронтенда и базы данных?

Всем привет!
Возник такой вопрос: разрабатываю сайт, у которого бэкенд написан на Django, фронтенд - на React, а в качестве базы данных используется PostgreSQL, подскажите, пожалуйста, насколько целесообразно бэкенд, фронтенд и бд распределить на разных машинах? Или лучше все разместить на одной машине, но +/- мощной? Как в таких ситуациях чаще всего поступают и на что лучше ориентироваться? К сожалению, так как проект новый, не могу оценить возможную нагрузку и дать вам ее в качестве "входных данных", но очень хотелось послушать советы более опытных коллег.

Заранее спасибо!
  • Вопрос задан
  • 543 просмотра
Пригласить эксперта
Ответы на вопрос 5
Jump
@Jump Куратор тега Системное администрирование
Системный администратор со стажем.
насколько целесообразно бэкенд, фронтенд и бд распределить на разных машинах?
Если одна машина не справляется, или есть другие причины - то очень целесообразно.

Иначе нецелесообразно.

Как в таких ситуациях чаще всего поступают и на что лучше ориентироваться?
Запускают проект на том, что есть в наличии, и не сильно бъет по карману. А потом в зависимости от нагрузки подбирают железо и архитектуру.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Системное администрирование
software engineer
Ну хотя бы примерные нагрузочные тесты есть?
Заценить сколько вы ожидаете пользователей, какая будет нагрузка, запустить на минимальном оборудовании, посмотреть на сколько процентов оно занято. От этого и смотреть что лучше - на одном, или уже не вытягивает и надо разносить.

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

Если же ожидается взрывной рост пользователей, то идеале написать так, чтобы в недалеком будущем было несложно разнести на разные машины, а желательно вообще архитектуру спланировать под горизонтальный рост.
Но это такое. Если будет прям настолько взрывной рост, то и деньги должны пойти рекой, а там может быть проще и выгоднее будет взять еще пару людей и с нуля переписать уже под новые требования.
Ответ написан
@res2001
Developer, ex-admin
Ориентироваться, конечно, на нагрузку.
Раз это Django и React, то это веб приложение.
Фронт - это браузер конечного пользователя на компьютере пользователя.
Бэкэнд и БД можно для начала разместить на одном сервере. Если не будет справляться - разнесете.
Ответ написан
Комментировать
@ProFfeSsoRr
Сис.админ по Linux
Если вам несложно - закидывайте сразу всё, кроме базы данных, в контейнеры. Тогда в будущем отмасштабировать/разделить это будет просто технически (ну разумеется тут надо еще и в коде приложения учесть масштабируемость, но это как раз учтете уже если проект взлетит, вкладываться в это сразу нецелесообразно).
Ответ написан
Комментировать
anthtml
@anthtml
Системный администратор программист радиолюбитель
Django, React, PostgreSQL = веб приложение.
В этой сфере давно все норм паралелится, как уже отвечали выше - изначально писать с закосом на расширение, ставить на мимнимум и мастштабировать по необходимости.
тотже PostgreSQL при минимальных нагрузках лучше держать локально для ускорения работы, при увеличении нагрузки - выпихнуть на соседний сервак или в кластер (главно в коде это норм прописать в виде глобальных констант, а не в каждом конекшене и запросе писать localhost/localdb)
фронт/бэк при необходимости теми же балансировщиками параллелится
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы