ismailov_rovshan_lab_8 is ready #329

Merged
Alexey merged 1 commits from ismailov_rovshan_lab_8 into main 2024-12-15 14:49:58 +04:00

View File

@ -0,0 +1,23 @@
# Лабораторная работа 8 - Про устройство распределённых систем
## ПИбд-42 || Исмаилов Ровшан
#### Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
Распределённая архитектура позволяет повысить удобство, эффективность и безопасность системы. Разделение системы на микросервисы минимизирует взаимодействие между компонентами, что способствует модульности.
> Модульность предоставляет следующие преимущества:
> > 1. Возможность создания независимых команд для разработки каждого модуля. Это означает, что каждый сервис может быть масштабирован и развиваться отдельно от других.
> > 2. Упрощение процессов отладки и контроля качества кода. Ошибки легче выявляются, так как мы знаем, в каком сервисе произошла проблема, что ускоряет её устранение.
> > 3. Повышенная отказоустойчивость. Например, при отказе сервиса музыки в ВКонтакте, остальные сервисы продолжают работать без сбоев, обеспечивая непрерывность работы всей платформы.
#### Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределённых систем?
Системы оркестрации необходимы для централизованного управления запуском и жизненным циклом сервисов, а также для автоматизации развертывания приложений на разных машинах. Это значительно упрощает процесс внедрения новых компонентов и их координацию, делая систему более гибкой и удобной для масштабирования.
#### Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
Очереди обработки сообщений обеспечивают взаимодействие между сервисами. Когда один сервис зависит от данных или результатов работы другого, очередь помогает передать сообщение о необходимости выполнения задачи. Также очереди гарантируют надежность передачи данных, обеспечивая их сохранность в процессе коммуникации между сервисами.
#### Какие преимущества и недостатки распределённых приложений существуют на Ваш взгляд?
Приведенные выше преимущества уже раскрыты в предыдущих ответах. Однако, в распределённых системах есть и недостатки:
> 1. Ослабление централизованного контроля. Каждый сервис работает более независимо, что делает сложным контроль за всем процессом, особенно если над проектом трудится большая команда.
> 2. Увеличение сложности разработки. Требуется больше времени на проектирование архитектуры системы и написание кода для взаимодействия между сервисами. Также возникает сложность в отлавливании ошибок в распределённой системе, что может потребовать дополнительного времени и ресурсов.
#### Целесообразно ли в сложную распределённую систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
Параллельные вычисления полезны в задачах, требующих обработки больших объёмов данных или сложных вычислений. Примером могут служить задачи анализа пользовательской активности, обучение моделей машинного обучения или обработка видео, где распределение вычислений между узлами значительно ускоряет процесс. Однако если задача не требует высокой производительности и может быть решена последовательно, внедрение параллелизма только усложнит систему и не принесёт значимой выгоды.