DAS_2024_1/chernyshov_nikita_lab_8
Никита Чернышов dd58bf5357 chernyshov_nikita_lab_8 is ready
2024-12-15 17:16:57 +04:00
..
README.md chernyshov_nikita_lab_8 is ready 2024-12-15 17:16:57 +04:00

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

Задание

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

  1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?

  2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?

  3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?

  4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?

  5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.


Эссе:

Что называется распределенной системой и как она устроена

Распределённые системы создаются, чтобы справляться с большим количеством задач и пользователей, не теряя в производительности. Например, если взять социальную сеть вроде ВКонтакте, то там есть сообщения, новости, фото, видео и многое другое. Чтобы всё это работало быстро, каждую задачу обрабатывает отдельный сервис. Один сервис отвечает за отправку сообщений, другой — за хранение фото, третий — за рекомендации. Это позволяет системе быть масштабируемой: если нагрузка на какой-то конкретный сервис растёт, его можно отдельно усилить, не трогая остальные.

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

Очереди обработки сообщений — это инструмент, который помогает сервисам взаимодействовать друг с другом. Представьте, что один сервис должен отправить задачу другому, но тот пока занят. В этом случае задача помещается в очередь и ждёт своей обработки. Сообщениями может быть всё, что угодно: от запроса на отправку письма до информации о новом заказе в интернет-магазине. Очереди делают системы более устойчивыми, потому что даже при перегрузке задачи не теряются.

У распределённых приложений есть как плюсы, так и минусы. Среди плюсов — высокая надёжность (если один сервис выйдет из строя, остальные продолжат работать), лёгкость масштабирования и возможность использовать разные технологии для каждого сервиса. Минусы — это сложность разработки и сопровождения, а также необходимость мониторинга и обеспечения безопасности всех частей системы.

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