distributed-computing/tasks/lyamzina-ma/lab_8/README.md

32 lines
6.3 KiB
Markdown
Raw Normal View History

2023-12-18 21:23:59 +04:00
# Отчет по лабораторной работе №8
Выполнила студентка гр. ИСЭбд-41 Лямзина М.А.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
## Эссе
Распределение задач между отдельными приложениями или сервисами позволяет выполнять эти задачи параллельно, ускоряя общее время отклика системы. Такой подход обеспечивает легкость масштабирования. Если одно из приложений работает под высокой нагрузкой, его можно горизонтально масштабировать, добавляя дополнительные экземпляры. Это позволяет легко управлять ресурсами и поддерживать производительность системы.
Системы оркестрации приложений были созданы для управления и координации работы распределенных систем, состоящих из большого числа независимых и взаимодействующих между собой компонентов. Системы позволяют автоматизировать процессы это значительно упрощает и ускоряет весь жизненный цикл системы, от разработки до эксплуатации.
Очереди обработки сообщений - это механизмы, используемые для организации и управления потоком сообщений в распределенных системах. Очереди сообщений позволяют асинхронно отправлять и принимать сообщения между компонентами системы, даже если они работают в разных временных интервалах или между ними есть задержка в связи с сетью или другими обстоятельствами. Это делает их особенно полезными в распределенных системах, где компоненты могут быть развернуты на разных серверах или даже на разных частях мира. Под сообщениями может подразумеваться: задачи или команды, события, обновления состояния, уведомления и оповещения и тп.
Преимуществами распределенных приложений, на мой взгляд, являются:
1. Масштабируемость: Распределенные приложения могут легко масштабироваться горизонтально путем добавления или удаления узлов. .
2. Отказоустойчивость: Если один из компонентов распределенного приложения выходит из строя, остальные компоненты все еще могут работать нормально.
3. Гибкость: В распределенных системах компоненты могут быть разработаны и модифицированы независимо друг от друга.
Недостатки распределенных приложений:
1. Сложность разработки: Разработка распределенных приложений может быть сложнее, чем для монолитных приложений
2. Зависимость от сети: Распределенные приложения зависят от работоспособности сети.
Внедрение параллельных вычислений в сложной распределенной системе может быть целесообразным, если система подвержена высокой нагрузке или обрабатывается большой объем данных, тогда параллельные вычисления позволяют распределить работу между несколькими узлами. Если же система имеет узкую проходную способность, которую невозможно распаллелить, то тогда параллельные вычисления не стоит применять. Если задачи в системе достаточно малы и не требуют большого количества вычислительных ресурсов, параллельные вычисления могут также оказаться бесполезными.