В настоящее время я стою перед решением о том, как разработать систему, которая обрабатывала бы статистические данные в облаке.
Я хотел бы знать, какую структуру сервера мне следует использовать, чтобы иметь возможность легко масштабировать вычисления с помощью облака.
Чтобы быть более конкретным, я хотел бы знать, должен ли я для целей вычисления статистических данных использовать только облако или гибрид (выделенные серверы и облачные серверы).
Сервис, который я сейчас создаю, будет анализировать мобильные данные для моих клиентов.
Чем крупнее клиент, тем больше БД и больше вычислений.
Если вы знаете лучший шаблон проектирования сервера, который лучше всего подходит для такого сценария, я был бы очень признателен.
Ваша проблема не в "структуре сервера". Если ваше программное обеспечение не может работать в массовом параллельном режиме, вы не сможете масштабировать его для обработки больших наборов данных. Однако из-за отсутствия информации о том, что именно вы пытаетесь сделать, невозможно даже дать вам полезную помощь о том, как структурировать код (что в любом случае будет вопросом для Stack Overflow).
Этот вопрос в настоящее время обсуждается, поэтому перед тем, как он уйдет, я скажу следующее:
Старайтесь избегать преждевременной оптимизации. Начните с одного клиента, одного сервера и одной базы данных. Разрабатывайте программное обеспечение с учетом масштабируемости, но не тратьте слишком много времени на чрезмерную оптимизацию и абстрагирование программного уровня, чтобы оно работало «идеально».
Вам, вероятно, следует обратить внимание на некоторые технологические стратегии, такие как сегментирование баз данных и архитектура без совместного использования ресурсов. Вероятно, вы получите хорошую производительность от кластера с уменьшенным отображением, возможно, на основе Hadoop, а возможно, и нет.
В начальном вопросе много подвопросов. Те, которые, вероятно, следует выбрать отдельно и задать вопрос на StackOverflow.
Если вы действительно не уверены в конструкции архитектуры вашего сервера, вам следует сделать две вещи.