From 06a71144994efdaab694d3932d1882203d9b84df Mon Sep 17 00:00:00 2001 From: AnnZhimol Date: Tue, 22 Oct 2024 20:52:00 +0300 Subject: [PATCH] lab 8 complete --- zhimolostnova_anna_lab_8/README.md | 63 ++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 zhimolostnova_anna_lab_8/README.md diff --git a/zhimolostnova_anna_lab_8/README.md b/zhimolostnova_anna_lab_8/README.md new file mode 100644 index 0000000..e2ff0e7 --- /dev/null +++ b/zhimolostnova_anna_lab_8/README.md @@ -0,0 +1,63 @@ +# Отчет по лабораторной работе №8 + +## Задание: + +Написать небольшое эссе (буквально несколько абзацев) своими словами на тему "Устройство распределенных +систем". А помогут Вам в этом вопросы из списка: + +1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где + каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? +2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют + разработку и сопровождение распределенных систем? +3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? +4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? +5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, + когда это действительно нужно, а когда нет. + +## Эссе на тему: "Устройство распределенных систем" + +Как было рассмотрено ранее на лекциях, распределённые системы – это архитектура, в которой компоненты +приложения работают на разных серверах и взаимодействуют друг с другом через сеть. В такой системе +есть разные сервисы отвечают за конкретные задачи. К примеру, один отвечает за обработку сообщений, +другой – за управление пользователями, третий – за работу с медиафайлами. + +Однако почему используется именно этот подход? Основная причина заключается в масштабируемости и надёжности +подобных систем. Когда каждая функциональная часть системы – это отдельный сервис, можно +легко масштабировать только ту часть, которая испытывает большую нагрузку. К примеру, если в системе +возрастает количество запросов на загрузку фото, можно увеличить количество серверов, обрабатывающих +изображения, не затрагивая при этом другие сервисы. Еще одно важное преимущество распределённой системы: +если один сервис выйдет из строя, остальные продолжат работать. + +Управление подобными системами требует от разработчика знание механизма оркестрации. Системы оркестрации, +такие, как Kubernetes, были созданы для управления и автоматизации развертывания, масштабирования и +поддержки приложений, состоящих из множества микросервисов. Данный механизм упрощает разработку и +сопровождение распределённых приложений, позволяя автоматизировать задачи, такие как восстановление при +сбоях, обновление сервисов и распределение нагрузки. Несомненно, использование оркестраторов усложнит +начальную настройку и обучение, так как потребует глубокого понимания инфраструктуры и сетевой безопасности. + +Еще одна технология, которой необходимо владеть прежде чем приступить к работе с распределенными системами, +это обработка сообщений. Она имеет очереди обработки сообщений – инструмент для асинхронной коммуникации +между различными компонентами системы. Под "сообщениями" могут подразумеваться данные или задачи, которые +один сервис отправляет другому для обработки. Очереди помогают разгрузить систему, позволяя сервисам не +ожидать немедленного ответа. Например, при загрузке фото сервис, принимающий файл, может поместить задачу +обработки изображения в очередь, а другой сервис обработает её позже. Это повышает надёжность и упрощает +управление пиковыми нагрузками. + +Рассмотрев основные аспекты распределенных систем, можно выявить как негативные, так и позитивные черты. +К преимуществам распределённых систем можно отнести гибкость, масштабируемость, отказоустойчивость и +возможность использования разных технологий для каждого сервиса. Однако такие системы сложны в разработке +и сопровождении. Появляются проблемы с координацией между сервисами, отладкой, сетевой задержкой и +безопасностью данных. Балансировка этих недостатков является ключевым вызовом для распределённых систем. + +Что же касается параллельных вычислений, то их целесообразно использовать в системах с большими объёмами +данных или задачами, которые могут быть обработаны одновременно. В этом помогли убедиться 5 и 6 +лабораторные работы, где собиралась временная метрика и по которой были сделаны аналогичные выводы. +В системах машинного обучения или анализе больших данных параллельная обработка данных позволяет +существенно ускорить выполнение задач. Однако в некоторых сценариях это может быть излишним, особенно если +система работает с небольшими объёмами данных или требует строгой последовательности действий, где +параллелизм может только усложнить реализацию. + +Таким образом, можно сделать следующий вывод: распределённые системы предоставляют большие возможности для +масштабирования и надёжности, но требуют тщательного планирования и грамотного управления. Оркестрация, +очереди сообщений и параллельные вычисления являются важными инструментами, которые помогают решать задачи +таких систем, однако их использование должно быть оправдано потребностями проекта. \ No newline at end of file