Нужен совет по правильной структуре/архитектуре сервиса

  • Автор темы Автор темы jenia
  • Дата начала Дата начала
У тебя случай явно попроще чем гугл или фейсбук, вряд ли у магазинов есть общие данные. Раскидать разные магазины по разным серверам и все.
У меня агрегатор цен, а не разные магазины. Мне нужно выводить цены для конкретного товара из разных магазинов на одной странице. Мне не совсем понятно, для чего раскидывать магазины по разным серверам.
 
не магазины, а парсеры разных магазинов

об остальном ты ничего не рассказал, так что обсуждать нечего.
 
Ну если я все правильно понял, то у тебя магазин и к каждому товару будут цены на него из других магазинов. Если эти цены вообще не влияют на бизнес-логику основного магазина, то есть большой смысл вынести эту систему из основной, чтобы основной сайт вообще ничего о ней не знал. все делать на другом сервере(серверах), а цены на основной сайт подгружать яваскриптом.
 
Я специально не приводил техническую информацию, так как вопрос не в том, как сделать, чтобы оно работало быстро, а как обеспечить масштабируемость в случае, если завтра будет значительно больше информации для парсинга и добавления в БД.
А смысл?
У вас сейчас ОДИН сервер на котором крутится сразу куча сайтов и базы данных. А вы уже размышляете о маштабировании и архитектуре, при этом считаете что
>>На веб-сервере не всё так легко можно перенести на новый сервер (на этом сервере не один сайт находится, много настроек оптимизирующих работу и т. д.),
И это в эпоху амазонов, облаков, докеров и т.д.

Решайте вопросы по мере их появления. Нет никакой проблемы вынести монгу на отдельный сервер или даже пачку, настроить шардинг и т.д. Если тормозят парсеры, разбирайся с ними, разберись почему тормозят, а уже потом будешь решать как оптимизировать. Нет серебрянной пули, которая решит все вопросы с производительностью.
 
Ну если я все правильно понял, то у тебя магазин и к каждому товару будут цены на него из других магазинов. Если эти цены вообще не влияют на бизнес-логику основного магазина, то есть большой смысл вынести эту систему из основной, чтобы основной сайт вообще ничего о ней не знал. все делать на другом сервере(серверах), а цены на основной сайт подгружать яваскриптом.
Почти так как вы описали. Я изначально как раз и планировал вынести эту систему из основной и подгружать всё через JavaScript. Но отказался от этого, чтобы не грузить браузер пользователей подобной логикой. Да и с поисковыми системами не всё однозначно: они читают JavaScript, но насколько адекватно они такие страницы добавляют в поисковую выдачу мне так и не удалось понять.

Идея сохранилась - вынести всё, что возможно с данного сервера, чтобы не мешать его работе. Только цены из MongoDB подгружать, а саму MongoDB и парсеры держать отдельно.
 
А смысл?
У вас сейчас ОДИН сервер на котором крутится сразу куча сайтов и базы данных. А вы уже размышляете о маштабировании и архитектуре, при этом считаете что
>>На веб-сервере не всё так легко можно перенести на новый сервер (на этом сервере не один сайт находится, много настроек оптимизирующих работу и т. д.),
И это в эпоху амазонов, облаков, докеров и т.д.

Решайте вопросы по мере их появления. Нет никакой проблемы вынести монгу на отдельный сервер или даже пачку, настроить шардинг и т.д. Если тормозят парсеры, разбирайся с ними, разберись почему тормозят, а уже потом будешь решать как оптимизировать. Нет серебрянной пули, которая решит все вопросы с производительностью.
Я и решаю проблемы по мере их поступления. На данный момент всё работает и я ничего не трогаю. Я вижу, что проблемы могут возникнуть и хочу понимать, что с ними делать, когда они возникнут. Именно поэтому я не привожу технические детали, так как мне нужен совет по архитектуре, а не конкретные решения проблем с парсерами и прочим. Я сейчас перефразирую вопросы. Наверное, я что-то не так спросил.
 
Вот более точно сформулированная задача.

Есть сервер, максимально оптимизированный под текущие задачи. Нагрузка превышает допустимую. Нагрузку даёт один из сервисов. Нагрузка от данного сервиса может увеличиться в ближайшее время, а может и нет. Нагрузка от остальных сервисов не может увеличиться в ближайшее время. Какое из решений является более правильным:
1. Брать новый более мощный сервер.
2. Выносить сервис, который даёт нагрузку, на другие сервера.
 
Сверху