chernyshov_nikita_lab_8 is ready

This commit is contained in:
Никита Чернышов 2024-12-15 17:16:57 +04:00
parent 5dd9e26f07
commit dd58bf5357

View File

@ -0,0 +1,29 @@
# Лабораторная работа 8. Как Вы поняли, что называется распределенной системой и как она устроена?
## Задание
Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :) на тему "Устройство распределенных систем".
  1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
  2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
  3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
  4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
  5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
***
# Эссе:
## **Что называется распределенной системой и как она устроена**
**Распределённые системы** создаются, чтобы справляться с большим количеством задач и пользователей, не теряя в производительности. Например, если взять социальную сеть вроде ВКонтакте, то там есть сообщения, новости, фото, видео и многое другое. Чтобы всё это работало быстро, каждую задачу обрабатывает отдельный сервис. Один сервис отвечает за отправку сообщений, другой — за хранение фото, третий — за рекомендации. Это позволяет системе быть масштабируемой: если нагрузка на какой-то конкретный сервис растёт, его можно отдельно усилить, не трогая остальные.
Системы оркестрации, такие как **Kubernetes**, помогают управлять распределёнными приложениями. Они автоматизируют запуск, мониторинг и масштабирование сервисов, что сильно упрощает жизнь разработчиков и администраторов. Вместо того чтобы вручную следить за каждым сервисом, оркестратор сам запускает нужное количество экземпляров, распределяет их по серверам и перезапускает, если что-то пошло не так. Но есть и обратная сторона: освоение таких систем требует времени и опыта, что может усложнить начальную разработку.
Очереди обработки сообщений — это инструмент, который помогает сервисам взаимодействовать друг с другом. Представьте, что один сервис должен отправить задачу другому, но тот пока занят. В этом случае задача помещается в очередь и ждёт своей обработки. Сообщениями может быть всё, что угодно: от запроса на отправку письма до информации о новом заказе в интернет-магазине. Очереди делают системы более устойчивыми, потому что даже при перегрузке задачи не теряются.
У распределённых приложений есть как плюсы, так и минусы. Среди плюсов — высокая надёжность (если один сервис выйдет из строя, остальные продолжат работать), лёгкость масштабирования и возможность использовать разные технологии для каждого сервиса. Минусы — это сложность разработки и сопровождения, а также необходимость мониторинга и обеспечения безопасности всех частей системы.
**Параллельные вычисления** в сложных распределённых системах часто необходимы. Например, при обработке большого объёма данных, как в системах рекомендаций или аналитике, где параллельные алгоритмы ускоряют процесс. Однако для простых задач, вроде проверки логина и пароля, параллельность может быть избыточной и усложнить систему без реальной выгоды. Всё зависит от того, какую именно задачу нужно решить.