DAS_2024_1/presnyakova_victoria_lab_8/readme.md
2024-11-18 19:07:56 +04:00

3.7 KiB
Raw Blame History

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

Задание

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

  1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
  2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
  3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
  4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
  5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.

1. Зачем "распределенный" стиль?

Распределенный стиль используется для:

  • Масштабируемости.
  • Отказоустойчивости.
  • Возможности обновлять/заменять отдельные компоненты без остановки всей системы.

2. Системы оркестрации (Kubernetes и др.)

Назначение:

  • Автоматизация развертывания, масштабирования и управления контейнерами.

Преимущества:

  • Упрощают DevOps-процессы.

Недостатки:

  • Требуют времени на изучение и настройку.

3. Очереди обработки сообщений

Назначение:

  • Координация взаимодействия между сервисами.
  • Обеспечение асинхронности и распределение нагрузки.

Пример сообщений:
Данные или задачи, передаваемые между компонентами системы.

4. Преимущества и недостатки распределенных приложений

Преимущества:

  • Масштабируемость.
  • Отказоустойчивость.
  • Гибкость.

Недостатки:

  • Сложность разработки.
  • Сложность сопровождения.
  • Сложность отладки.

5. Параллельные вычисления в распределенных системах

Когда нужны:

  • Интенсивные вычисления (анализ данных, рендеринг, ML).

Когда не нужны:

  • Операции с низкой нагрузкой.
  • Задачи, где асинхронность покрывает все потребности.