Merge pull request '[Л/Р 8] Клементьева Жанна' (#83) from klementeva/distributed-computing:klementeva-ja-lab-8 into main

Reviewed-on: http://student.git.athene.tech/v.moiseev/distributed-computing/pulls/83
This commit is contained in:
Vladislav Moiseev 2023-12-17 23:17:02 +04:00
commit fcb6fb0e4e

View File

@ -0,0 +1,35 @@
# Отчет по лабораторной работе №8
Выполнила студентка группы ИСЭбд-41 Клементьева Жанна
## Вопросы
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
## Эссе(ответы на вопросы)
1. Благодаря распределенному стилю разработки обеспечивается масштабируемость(они легче масштабируются, так как добавление или удаление компонентов может происходить независимо от других частей системы), отказоустойчивость(если один компонент выходит из строя, другие компоненты продолжают работать, обеспечивая устойчивость системы к отказам), балансировка нагрузки(равномерно распределяют нагрузку между компонентами), улучшение производительности(разделение функций на отдельные компоненты может помочь уменьшить общую сложность системы и улучшить производительность), гибкость(система развивается и адаптируется к новым требованиям и технологиям).
2. Системы оркестрации приложений(например, Docker) созданы для управления сложными инфраструктурами. Они упрощают разработку и развертывание приложений, позволяя разработчикам сосредоточиться на своей кодовой базе, а не на настройке.Можно автоматизировать развертывание, масштабирование и обновление приложений. Это упрощает процесс разработки и развертывания, а также снижает вероятность ошибок. Усложняется все тем, что необходимо обучить разработчиков работе с оркестрацией, также сложна отладка и сама архитектура.
3. Очереди обработки сообщений - механизм, позволяющий эффективно управлять сообщениями, обрабатывать их, поступающие в систему. Сообщения -
это различные типы данных или события, которые передаются от одного компонента к другому для обработки(задачи, события, запросы).
4. Преимуществами являются:
- масштабируемость,
- надежность,
- восстановление после сбоев,
- производительность,
- эффективность использования ресурсов;
Недостатками являются:
- сложность разработки и поддержки,
- проблемы с синхронизацией,
- риск потери данных,
- проблемы с целостностью и согласованностью данных,
- проблемы с безопасностью.
5. Если необходима обработка больших объемов данных и распределение нагрузки, то внедрение параллельных вычислений более чем целесообразно,так как параллельные вычисления могут разделить большие задачи на более мелкие. Если система имеет низкую нагрузку, то параллельные вычисления могут не принести улучшения производительности. Нецелесообразно также использовать параллельные вычисления там, где организована связь между задачами(задача зависит от результатов предыдущей задачи).