Какие существуют методики и инструменты для масштабируемости проекта?

У меня есть фронт на React, бэк на Express.

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

У меня несколько идей:
1. Разделить бэк на компоненты, которые будут располагаться на разных серверах (что-то не по душе такое)
2. Создать несколько одинаковых бэков на разных серверах, а балансировщик нагрузки будет определять, куда отправлять. Автоматически запускать при необходимости новый сервер...

Может, лучше идеи есть? У меня нет опыта в этом. Подскажите, пожалуйста.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
Словом нужно заложить масштабируемость в проект, который не требует пока масштабируемости, но если потребует, нужно сразу увеличить возможности сервиса


Первым делом - четко определить на какую нагрузку вы рассчитываете и какого типа она будет.
Например - 10000 запросов в секунду на сервер.
или 10000 пользователей в день загружающих фронт.
или 100 тяжелых запросов в базу в минуту.
До этого разговор будет непонятно о чем.
Потом проверить сколько может вытянуть текущая архитектура/железо.
А то может окажется что если добавите +$10 в месяц на инстанс помощнее то вашего текущего сервера вам еще лет на 5 хватит
Ответ написан
angrySCV
@angrySCV
machine learning, programming, startuping
масштабировать компоненты - будет эффективнее -> тк нагрузка на компоненты всегда не равномерная, какие-то более нагружены какие-то менее.
>Создать несколько одинаковых бэков на разных серверах
оба варианта рабочие, но нужно помнить что при разделении компонентов или разделении бэков, они не должны зависеть от одного источника данных (одной БД), иначе все опять упрется в производительность одной БД.
Для этого можно использовать базы поддерживающие разделение через Ключ->Значение (типа Касандры), и которые тоже в свою очередь по серверам масштабируются
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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