From 923ff7578d74e586d7b45b75155ce3c2f3d81d97 Mon Sep 17 00:00:00 2001 From: Arutunyan-Dmitry Date: Wed, 17 Jan 2024 22:40:03 +0400 Subject: [PATCH] arutunyan_dmitry_lab_8 is ready --- arutunyan_dmitry_lab_8/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 arutunyan_dmitry_lab_8/README.md diff --git a/arutunyan_dmitry_lab_8/README.md b/arutunyan_dmitry_lab_8/README.md new file mode 100644 index 0000000..9319061 --- /dev/null +++ b/arutunyan_dmitry_lab_8/README.md @@ -0,0 +1,27 @@ + +## Лабораторная работа 8. Вариант 4. +### Задание +Написать небольшое эссе на тему "Устройство распределенных систем" своими словами по вопросам из списка: + +- Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? +- Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? +- Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? +- Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? +- Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + + +### Эссе +`Распределенная система` – это совокупность сервисов, приложений или устройств, которые работают вместе как единая система, обмениваясь информацией и ресурсами через сеть. В распределенной системе каждый сервис, приложение или устройство, называемые узлами, выполняют определенные задачи и взаимодействуют друг с другом для достижения общей цели. + +Создание сложных систем, таких как социальная сеть ВКонтакте, в распределенном стиле производится поскольку распределенная архитектура позволяет системе `масштабироваться` горизонтально путем добавления новых узлов или сервисов. Это позволяет обрабатывать растущий объем данных и обеспечивать доступность системы для большого количества пользователей. Распределенные системы могут быть более `надежными`, поскольку отказ одного компонента или сервиса не приведет к полному сбою системы. В случае с социальной сетью, если одно приложение не работает, пользователи все равно могут использовать другие функции и сервисы. Распределенная архитектура позволяет выполнять различные задачи `параллельно`, что может улучшить общую производительность системы. Каждое отдельное приложение или сервис может быть `оптимизировано` для своей конкретной задачи, что позволяет достичь более эффективного использования ресурсов. Распределенная архитектура позволяет `разделять функциональность на отдельные сервисы` или приложения. Это делает систему более гибкой и модульной, позволяя легче вносить изменения и внедрять новые функции без значительного влияния на остальные компоненты системы. В распределенных системах `данные могут быть распределены` по различным узлам или сервисам, что позволяет хранить данные ближе к конечным пользователям или определенным географическим регионам. Это может улучшить скорость доступа к данным и снизить задержки в системе. + +Системы `оркестрации` приложений были созданы для управления и координирования комплексных распределенных систем, состоящих из множества сервисов и компонентов. Они предоставляют средства `автоматизации и контроля` работы приложений, упрощая разработку, развертывание, масштабирование и сопровождение распределенных систем. Системы оркестрации позволяют `автоматизировать процессы развертывания и управления` приложениями. Они предоставляют средства для определения и описания требуемого состояния системы, а затем автоматически выполняют необходимые действия для достижения этого состояния. Системы оркестрации `позволяют управлять и координировать работу` множества сервисов, обеспечивая их взаимодействие и согласованную работу. Они могут `управлять запуском, остановкой и масштабированием` сервисов, а также обеспечивать балансировку нагрузки между ними. Системы оркестрации `предоставляют инструменты для мониторинга и отслеживания состояния` приложений. Они могут автоматически обнаруживать сбои или неполадки и принимать меры для их устранения, например, перезапускать сервисы или перенаправлять трафик на здоровые экземпляры. Однако, использование систем оркестрации приложений также может `усложнить` разработку и сопровождение распределенных систем. Внедрение и настройка таких систем требует `изучения новых инструментов` и понимания их принципов работы. Кроме того, настройка и поддержка систем оркестрации может потребовать `дополнительных ресурсов` и усилий со стороны разработчиков и администраторов системы. + +`Очереди` обработки сообщений являются важным инструментом для асинхронной коммуникации и управления потоком данных в распределенных системах. Они используются для `временного хранения и передачи сообщений между различными компонентами или сервисами системы`. Что может подразумеваться под сообщениями в контексте очередей обработки зависит от конкретного применения и архитектуры системы. В общем случае, сообщения могут быть любыми данными или событиями, которые требуется передать или обработать в распределенной системе. Например, это может быть запрос на выполнение определенной операции, событие изменения состояния, уведомление о событии или любая другая информация, которая должна быть передана между компонентами системы. + +На мой взгляд к `преимуществам` распределённых приложений можно отнести их `лёгкость масштабирования, высокую надёжность и отказоустойчивость`. На примере того же ВК можно наблюдать с какой скоростью растёт число сервисов в системе за последние года, а также насколько неполадки системы стали реже и локальнее. К `недостаткам` распределённых приложений я бы отнёс их `дороговизну и ресурс-затратность разработки`. Опять же, обращаясь к ВК, практически каждый пользователь заметил период перехода приложения от монолитной архитектуры к распределённой, в который у сервиса наблюдались сбои, повышенное время отклика и т.п. Распределённые системы необходимы только там, где это действительно нужно. + +Внедрение `параллельных вычислений` в сложную распределенную систему может быть `целесообразным` в случаях, когда распределенная система `обрабатывает большие объемы данных`, в распределенной системе имеются `задачи, которые могут выполняться независимо друг от друга` или `система высоко-нагружена` (большое количество запросов к система поступает одновременно). В случаях, когда в распределённой системе з`адачи зависят друг от друга`, или распределенная `система имеет низкую нагрузку` или небольшое количество запросов, либо `внедрение параллельных вычислений является слишком сложным процессом` разработки для системы, применение параллельных вычислений в распределенную систему `нецелесообразно`. + +В целом, распределенный стиль разработки позволяет создавать сложные системы, которые обеспечивают высокую производительность, масштабируемость и отказоустойчивость, что особенно важно для систем с большим объемом данных и множеством пользователей, таких как социальные сети, а решение о внедрении параллельных вычислений в распределенную систему должно быть основано на конкретных требованиях, характеристиках системы и ожидаемой производительности. +