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