Merge pull request 'basharin_sevastyan_lab_8 is ready' (#58) from basharin_sevastyan_lab_8 into main

Reviewed-on: http://student.git.athene.tech/Alexey/DAS_2023_1/pulls/58
This commit is contained in:
Alexey 2023-12-28 11:20:25 +04:00
commit 314d96b716

View File

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