# Распределенные системы


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

2. Системы оркестрации, упрощают развертывание, управление и масштабирование распределенных систем. Они автоматизируют процессы запуска и мониторинга сервисов, а также предлагают удобный инструментарий для управления ресурсами. Однако внедрение систем оркестрации добавляет сложности на этапе разработки и требует специальных знаний и навыков. Небольшие проекты могут обойтись без систем оркестрации.

3. Очереди сообщений играют важную роль в асинхронном взаимодействии между сервисами. "Сообщение" может представлять собой любую информацию: запрос на обработку данных, уведомление о событии, команда для выполнения действия. Очереди позволяют разделить сервисы-производители сообщений и сервисы-потребители, обеспечивая гарантированную доставку сообщений.

4. Распределенные системы имеют свои преимущества и недостатки. 
    - Преимущества: масштабируемость, отказоустойчивость, гибкость в выборе технологий. 
    - Недостатки: сложность разработки и отладки.

5. Параллельные вычисления можно применять в распределенных системах там, где задачи могут быть разбиты на отдельные независимые подзадачи. Пример: бработка большого файла может быть распараллелена по нескольким сервисам. Если задачи сильно связаны между собой, то параллельные вычисления могут привести к снижению производительности из-за накладных расходов на синхронизацию. Пример: обработка транзакции в банковской системе не должна распараллеливаться, так как это может нарушить целостность данных.