Зачем нужны распределенные системы?

«Зачем нужны распределенные системы?» — вопрос из категории Распределенные системы, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Основные цели:

  • Масштабируемость (Scalability): Возможность увеличивать производительность и объем обрабатываемых данных за счет добавления новых узлов (горизонтальное масштабирование).
  • Надежность и отказоустойчивость (Reliability & Fault Tolerance): Система продолжает работать даже при сбоях отдельных компонентов. Данные и сервисы реплицируются.
  • Производительность (Performance): Распараллеливание задач между узлами позволяет обрабатывать большие объемы данных и сложные вычисления быстрее.
  • Географическое распределение (Geographic Distribution): Размещение узлов ближе к пользователям для снижения задержки (latency) и соответствия законодательным требованиям о локализации данных.

Примеры: Глобальные веб-сервисы (Google Search, Amazon), системы обработки больших данных (Hadoop, Spark), блокчейн-сети, CDN (Content Delivery Networks).