DAS_2024_1/presnyakova_victoria_lab_8/readme.md

56 lines
3.7 KiB
Markdown
Raw Normal View History

2024-11-18 19:07:56 +04:00
# Лабораторная работа № 8. Как Вы поняли, что называется распределенной системой и как она устроена?
**Задание**
Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :) ) на тему "Устройство распределенных систем". А помогут Вам в этом вопросы из списка:
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
## 1. Зачем "распределенный" стиль?
Распределенный стиль используется для:
- Масштабируемости.
- Отказоустойчивости.
- Возможности обновлять/заменять отдельные компоненты без остановки всей системы.
## 2. Системы оркестрации (Kubernetes и др.)
**Назначение:**
- Автоматизация развертывания, масштабирования и управления контейнерами.
**Преимущества:**
- Упрощают DevOps-процессы.
**Недостатки:**
- Требуют времени на изучение и настройку.
## 3. Очереди обработки сообщений
**Назначение:**
- Координация взаимодействия между сервисами.
- Обеспечение асинхронности и распределение нагрузки.
**Пример сообщений:**
Данные или задачи, передаваемые между компонентами системы.
## 4. Преимущества и недостатки распределенных приложений
### Преимущества:
- Масштабируемость.
- Отказоустойчивость.
- Гибкость.
### Недостатки:
- Сложность разработки.
- Сложность сопровождения.
- Сложность отладки.
## 5. Параллельные вычисления в распределенных системах
**Когда нужны:**
- Интенсивные вычисления (анализ данных, рендеринг, ML).
**Когда не нужны:**
- Операции с низкой нагрузкой.
- Задачи, где асинхронность покрывает все потребности.