main #3

Merged
Hlop4ik4 merged 237 commits from v.moiseev/distributed-computing:main into main 2024-01-06 17:16:53 +04:00
Showing only changes of commit 4c6fd5082e - Show all commits

View File

@ -0,0 +1,47 @@
# Отчёт по лабораторной работе №8
Выполнила: студентка гр. ИСЭбд-41 Никифорова Татьяна Сергеевна.
## Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
Сложные системы, такие как социальные сети, используют распределенный стиль архитектуры, где функциональность разделяется на отдельные приложения или сервисы по ряду причин:
Масштабируемость: Когда функциональность разбивается на отдельные сервисы, их можно масштабировать независимо друг от друга, что позволяет легче справляться с увеличением нагрузки.
Гибкость и изменяемость: Разделение функциональности на сервисы облегчает внесение изменений в систему, так как изменения в одном сервисе не обязательно влияют на другие.
Легкость в разработке и тестировании: Каждый сервис может разрабатываться и тестироваться независимо, что упрощает процессы разработки и обеспечивает более быстрое внедрение нового функционала.
Управление рисками и изоляция ошибок: Распределенная архитектура позволяет изолировать ошибки и проблемы в одном сервисе, предотвращая их распространение на всю систему. Это повышает стабильность и надежность системы.
## Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
Системы оркестрации приложений были созданы для управления и автоматизации процессов развёртывания, масштабирования и управления распределенными приложениями и сервисами. Они предоставляют средства для оркестрации (координации и управления) различными компонентами системы, такими как контейнеры, микросервисы и виртуальные машины. Cистемы оркестрации значительно упрощают процессы разработки, развертывания и сопровождения распределенных систем, предоставляя средства автоматизации и координации в контейнерных и микросервисных средах
## Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
Очереди обработки сообщений (Message Queues) являются мощным механизмом для асинхронной коммуникации между компонентами системы. Они используются в различных сценариях для обеспечения распределенной, отказоустойчивой, и масштабируемой обработки задач. Вот несколько основных целей и примеров того, что может подразумеваться под сообщениями в контексте очередей обработки сообщений:
1.Асинхронность.
2.Отказоустойчивость.
3.Масштабируемость.
4.Интеграция разнородных систем.
Примеры сообщений в контексте очередей обработки сообщений: Задачи на обработку, события системы, события пользователя, сообщения об изменениях в данных.
## Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
Преимущества распределенных приложений:
Масштабируемость: Возможность легко масштабировать систему горизонтально, добавляя новые узлы или серверы. Отказоустойчивость: Возможность продолжения работы системы при сбоях отдельных компонентов. Эффективное использование ресурсов: Распределение нагрузки между узлами позволяет более эффективно использовать вычислительные ресурсы. Гибкость в выборе технологий: Возможность использования различных технологий для разных компонентов системы.
Недостатки распределенных приложений:
Сложность разработки: Разработка и поддержка распределенных систем требует дополнительных навыков и опыта. Сложность тестирования: Тестирование и отладка могут быть сложными из-за взаимодействия множества компонентов и асинхронности.
## Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
Целесообразно внедрять параллельные вычисления в сложную распределенную систему:
Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов.
Нецелесообразно внедрять параллельные вычисления:
Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных.