DAS_2023_1/basharin_sevastyan_lab_8/README.md

31 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Лабораторная работа 8. Вариант 5.
### Задание
Написать небольшое эссе (буквально несколько абзацев) своими словами на тему "Устройство распределенных систем".
А помогут Вам в этом вопросы из списка:
Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
### Реализация
Распределенные системы обеспечивают эффективное функционирование сложных приложений. Среди таких можно выделить социальные сети,
например, ВКонтакте. Возможность делегировать отдельным приложениям или сервисам ограниченный спектр задач в таких
системах имеет свою важную логику. Это повышает отказоустойчивость, улучшает масштабируемость и обеспечивает более
гибкую архитектуру, что особенно ценно в условиях растущего объема данных и пользовательского трафика.
Системы оркестрации приложений, такие как Kubernetes, были разработаны для упрощения управления и развертывания
распределенных систем. Они предоставляют инструменты для автоматизации процессов, что упрощает разработку и
сопровождение. В то же время, оркестрация добавляет свои сложности, требуя дополнительных знаний и навыков от
разработчиков.
Очереди обработки сообщений являются важным элементом распределенных систем. Они обеспечивают асинхронную коммуникацию
между компонентами, улучшая производительность и отзывчивость. Сообщения могут содержать запросы, уведомления или
события, что делает их универсальным механизмом взаимодействия.
Преимущества распределенных приложений включают повышенную отказоустойчивость и масштабируемость. Однако, с ростом
сложности возникают проблемы с согласованностью данных и сложностью отладки. Параллельные вычисления в распределенных
системах оправданы в случаях высоконагруженных приложений, требующих обработки большого объема данных. Напротив,
в некоторых случаях, например, в небольших системах, замедление из-за синхронизации может превысить выигрыш от
параллелизма. Это требует внимательного анализа и оптимизации с учетом конкретных требований системы.