Merge pull request 'kadyrov_aydar_lab_8' (#179) from kadyrov_aydar_lab_8 into main
Reviewed-on: #179
This commit is contained in:
commit
b63718633c
27
kadyrov_aydar_lab_8/README.md
Normal file
27
kadyrov_aydar_lab_8/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Лабораторная работа 8. Как Вы поняли, что называется распределенной системой и как она устроена?
|
||||
|
||||
### Задание
|
||||
Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :) на тему "Устройство распределенных систем".
|
||||
|
||||
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||
|
||||
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||
|
||||
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||
|
||||
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||
|
||||
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||
|
||||
### Эссе
|
||||
|
||||
Распределенные системы — это такие системы, которые состоят из множества независимых компонентов, работающих в разных местах, но взаимодействующих друг с другом. Такой подход позволяет решать задачи, которые невозможно выполнить с помощью одной машины или приложения, например, обработка огромных объемов данных или обслуживание большого числа пользователей одновременно. Системы, такие как социальные сети или интернет-магазины, разрабатываются в распределенном стиле, потому что каждый отдельный сервис может выполнять лишь ограниченный набор задач. Это повышает гибкость и масштабируемость системы, позволяет быстрее реагировать на изменения и снижает риски отказов, так как один сбой не затрагивает всю систему.
|
||||
|
||||
Для эффективного управления такими сложными приложениями были созданы системы оркестрации, например, Kubernetes. Эти системы автоматизируют развертывание, масштабирование и управление сервисами, что значительно упрощает их поддержку и улучшает надежность. Тем не менее, использование оркестраторов требует от разработчиков знаний и дополнительных усилий на настройку, особенно в начале работы.
|
||||
|
||||
Одним из ключевых аспектов распределенных систем являются очереди обработки сообщений. Они позволяют организовать асинхронное взаимодействие между компонентами, что особенно важно в условиях высоких нагрузок. Сообщения в таких очередях могут содержать запросы на обработку данных или команду на выполнение задачи, и благодаря очередям можно избежать перегрузки отдельных частей системы.
|
||||
|
||||
Преимущества распределенных систем очевидны: возможность масштабирования, отказоустойчивость и гибкость. Однако у них есть и недостатки, такие как сложность разработки и поддержания, проблемы с синхронизацией и возможные задержки в обработке данных. Все эти проблемы необходимо учитывать при проектировании системы.
|
||||
|
||||
Параллельные вычисления, внедряемые в распределенные системы, могут значительно ускорить выполнение сложных задач, например, при обработке больших объемов данных или в научных вычислениях. Однако не всегда стоит использовать параллельность, так как она усложняет архитектуру и не всегда оправдана, если задача не требует интенсивной обработки данных.
|
||||
|
Loading…
Reference in New Issue
Block a user