From 60cc7dc5dedab5bcf497883fe8aee309b2b824de Mon Sep 17 00:00:00 2001 From: tanya_nik16 Date: Mon, 18 Dec 2023 17:32:00 +0400 Subject: [PATCH] Lab-8 --- tasks/nikiforova-ts/Lab_8/Readme.md | 47 +++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tasks/nikiforova-ts/Lab_8/Readme.md b/tasks/nikiforova-ts/Lab_8/Readme.md index e69de29..124fa74 100644 --- a/tasks/nikiforova-ts/Lab_8/Readme.md +++ b/tasks/nikiforova-ts/Lab_8/Readme.md @@ -0,0 +1,47 @@ +# Отчёт по лабораторной работе №8 + +Выполнила: студентка гр. ИСЭбд-41 Никифорова Татьяна Сергеевна. + +## Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? + +Сложные системы, такие как социальные сети, используют распределенный стиль архитектуры, где функциональность разделяется на отдельные приложения или сервисы по ряду причин: + +Масштабируемость: Когда функциональность разбивается на отдельные сервисы, их можно масштабировать независимо друг от друга, что позволяет легче справляться с увеличением нагрузки. +Гибкость и изменяемость: Разделение функциональности на сервисы облегчает внесение изменений в систему, так как изменения в одном сервисе не обязательно влияют на другие. +Легкость в разработке и тестировании: Каждый сервис может разрабатываться и тестироваться независимо, что упрощает процессы разработки и обеспечивает более быстрое внедрение нового функционала. +Управление рисками и изоляция ошибок: Распределенная архитектура позволяет изолировать ошибки и проблемы в одном сервисе, предотвращая их распространение на всю систему. Это повышает стабильность и надежность системы. + +## Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? + +Системы оркестрации приложений были созданы для управления и автоматизации процессов развёртывания, масштабирования и управления распределенными приложениями и сервисами. Они предоставляют средства для оркестрации (координации и управления) различными компонентами системы, такими как контейнеры, микросервисы и виртуальные машины. Cистемы оркестрации значительно упрощают процессы разработки, развертывания и сопровождения распределенных систем, предоставляя средства автоматизации и координации в контейнерных и микросервисных средах + +## Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? + +Очереди обработки сообщений (Message Queues) являются мощным механизмом для асинхронной коммуникации между компонентами системы. Они используются в различных сценариях для обеспечения распределенной, отказоустойчивой, и масштабируемой обработки задач. Вот несколько основных целей и примеров того, что может подразумеваться под сообщениями в контексте очередей обработки сообщений: + +1.Асинхронность. +2.Отказоустойчивость. +3.Масштабируемость. +4.Интеграция разнородных систем. + +Примеры сообщений в контексте очередей обработки сообщений: Задачи на обработку, события системы, события пользователя, сообщения об изменениях в данных. + +## Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? + +Преимущества распределенных приложений: + +Масштабируемость: Возможность легко масштабировать систему горизонтально, добавляя новые узлы или серверы. Отказоустойчивость: Возможность продолжения работы системы при сбоях отдельных компонентов. Эффективное использование ресурсов: Распределение нагрузки между узлами позволяет более эффективно использовать вычислительные ресурсы. Гибкость в выборе технологий: Возможность использования различных технологий для разных компонентов системы. + +Недостатки распределенных приложений: + +Сложность разработки: Разработка и поддержка распределенных систем требует дополнительных навыков и опыта. Сложность тестирования: Тестирование и отладка могут быть сложными из-за взаимодействия множества компонентов и асинхронности. + +## Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + +Целесообразно внедрять параллельные вычисления в сложную распределенную систему: + +Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов. + +Нецелесообразно внедрять параллельные вычисления: + +Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных. \ No newline at end of file