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