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