# Лабораторная работа 8. Как Вы поняли, что называется распределенной системой и как она устроена?

### Задание
Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :) на тему "Устройство распределенных систем".

  1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?

  2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?

  3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?

  4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?

  5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.

### Эссе

Устройство распределенных систем представляет собой сложный и многогранный процесс, призванный обеспечить эффективную работу со сложными и объемными данными. Одной из причин, по которой такие системы, например, социальная сеть ВКонтакте, организуются в распределенном стиле, является возможность более эффективного управления и обработки информации. Каждое отдельное приложение или сервис в такой системе выполняет свои ограниченные функциональные задачи, что упрощает разделение и оптимизацию работы.

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

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

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

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