DAS_2023_1/sergeev_evgenii_lab_8
Евгений Сергеев cfd210c6d3 done!
2024-01-22 02:55:05 +04:00
..
README.md done! 2024-01-22 02:55:05 +04:00

Лабораторная работа № 8. Как Вы поняли, что называется распределенной системой и как она устроена?

Задание

Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :) ) на тему "Устройство распределенных систем". А помогут Вам в этом вопросы из списка:

  1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
  2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
  3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
  4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
  5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.

Эссе

Распределенные системы, такие как социальные сети, применяются для обеспечения масштабируемости и улучшения отказоустойчивости. В них каждое отдельное приложение или сервис выполняет ограниченный спектр задач, что упрощает управление и обеспечивает лучшую гибкость. Это позволяет легко масштабировать отдельные компоненты и добавлять новые функции, не нарушая работу всей системы.

Системы оркестрации приложений созданы для управления сложностью распределенных систем. Они автоматизируют развертывание, масштабирование и управление приложениями, обеспечивая консистентность в среде с множеством компонентов. Оркестраторы, такие как Kubernetes, упрощают разработку, но могут также вносить дополнительные сложности, требуя понимания их концепций и настроек.

Очереди обработки сообщений играют ключевую роль в обмене данными между компонентами. Они обеспечивают асинхронное взаимодействие, устраняя проблемы времени выполнения и обеспечивая более надежную и масштабируемую связь между сервисами.

Распределенные приложения обладают преимуществами в масштабируемости и отказоустойчивости, но сталкиваются с вызовами в поддержке согласованности данных и сложностью отладки. Однако, при правильном проектировании, они способны обеспечивать высокую производительность и доступность.

Внедрение параллельных вычислений в распределенные системы зависит от конкретных потребностей. Параллельные вычисления целесообразны при обработке больших объемов данных или выполнении вычислений, которые можно эффективно разделить на независимые задачи. Однако, это может стать излишним в более простых системах с небольшим объемом данных или линейной структурой задач.