Merge pull request '[Л/Р 8] Никифорова Татьяна' (#138) from tanya_nik16/distributed-computing:Nikiforova-TS-Lab-8 into main
Reviewed-on: http://student.git.athene.tech/v.moiseev/distributed-computing/pulls/138
This commit is contained in:
commit
4c6fd5082e
47
tasks/nikiforova-ts/Lab_8/Readme.md
Normal file
47
tasks/nikiforova-ts/Lab_8/Readme.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Отчёт по лабораторной работе №8
|
||||||
|
|
||||||
|
Выполнила: студентка гр. ИСЭбд-41 Никифорова Татьяна Сергеевна.
|
||||||
|
|
||||||
|
## Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||||
|
|
||||||
|
Сложные системы, такие как социальные сети, используют распределенный стиль архитектуры, где функциональность разделяется на отдельные приложения или сервисы по ряду причин:
|
||||||
|
|
||||||
|
Масштабируемость: Когда функциональность разбивается на отдельные сервисы, их можно масштабировать независимо друг от друга, что позволяет легче справляться с увеличением нагрузки.
|
||||||
|
Гибкость и изменяемость: Разделение функциональности на сервисы облегчает внесение изменений в систему, так как изменения в одном сервисе не обязательно влияют на другие.
|
||||||
|
Легкость в разработке и тестировании: Каждый сервис может разрабатываться и тестироваться независимо, что упрощает процессы разработки и обеспечивает более быстрое внедрение нового функционала.
|
||||||
|
Управление рисками и изоляция ошибок: Распределенная архитектура позволяет изолировать ошибки и проблемы в одном сервисе, предотвращая их распространение на всю систему. Это повышает стабильность и надежность системы.
|
||||||
|
|
||||||
|
## Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||||
|
|
||||||
|
Системы оркестрации приложений были созданы для управления и автоматизации процессов развёртывания, масштабирования и управления распределенными приложениями и сервисами. Они предоставляют средства для оркестрации (координации и управления) различными компонентами системы, такими как контейнеры, микросервисы и виртуальные машины. Cистемы оркестрации значительно упрощают процессы разработки, развертывания и сопровождения распределенных систем, предоставляя средства автоматизации и координации в контейнерных и микросервисных средах
|
||||||
|
|
||||||
|
## Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||||
|
|
||||||
|
Очереди обработки сообщений (Message Queues) являются мощным механизмом для асинхронной коммуникации между компонентами системы. Они используются в различных сценариях для обеспечения распределенной, отказоустойчивой, и масштабируемой обработки задач. Вот несколько основных целей и примеров того, что может подразумеваться под сообщениями в контексте очередей обработки сообщений:
|
||||||
|
|
||||||
|
1.Асинхронность.
|
||||||
|
2.Отказоустойчивость.
|
||||||
|
3.Масштабируемость.
|
||||||
|
4.Интеграция разнородных систем.
|
||||||
|
|
||||||
|
Примеры сообщений в контексте очередей обработки сообщений: Задачи на обработку, события системы, события пользователя, сообщения об изменениях в данных.
|
||||||
|
|
||||||
|
## Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||||
|
|
||||||
|
Преимущества распределенных приложений:
|
||||||
|
|
||||||
|
Масштабируемость: Возможность легко масштабировать систему горизонтально, добавляя новые узлы или серверы. Отказоустойчивость: Возможность продолжения работы системы при сбоях отдельных компонентов. Эффективное использование ресурсов: Распределение нагрузки между узлами позволяет более эффективно использовать вычислительные ресурсы. Гибкость в выборе технологий: Возможность использования различных технологий для разных компонентов системы.
|
||||||
|
|
||||||
|
Недостатки распределенных приложений:
|
||||||
|
|
||||||
|
Сложность разработки: Разработка и поддержка распределенных систем требует дополнительных навыков и опыта. Сложность тестирования: Тестирование и отладка могут быть сложными из-за взаимодействия множества компонентов и асинхронности.
|
||||||
|
|
||||||
|
## Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||||
|
|
||||||
|
Целесообразно внедрять параллельные вычисления в сложную распределенную систему:
|
||||||
|
|
||||||
|
Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов.
|
||||||
|
|
||||||
|
Нецелесообразно внедрять параллельные вычисления:
|
||||||
|
|
||||||
|
Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных.
|
Loading…
Reference in New Issue
Block a user