diff --git a/kochkareva_elizaveta_lab_8/README.md b/kochkareva_elizaveta_lab_8/README.md new file mode 100644 index 0000000..8e07b97 --- /dev/null +++ b/kochkareva_elizaveta_lab_8/README.md @@ -0,0 +1,26 @@ + +# Лабораторная работа 8. + +### Задание + +Написать небольшое эссе. А помогут Вам в этом вопросы из списка: + +1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? +1. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? +1. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? +1. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? +1. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + +### Эссе + +В современном мире распределенные системы являются очень полезными, т.к. обеспечиывают легкую масштабируемость и повышают отказоустойчивость больших систем. Так, например, если Вконтакте захотят внедрить в свою систему новый сервис "создание документов", то не нужно будет полностью изменять исходный код, достаточно будет лишь "присоединить" новый компонент. Также, если этот новый сервис получит какую-либо ошибку, которая приведет к его полному отказу, то основная часть социальной сети, которая является стабильной, продолжит свою работу, а компонент с ошибкой не окажет никакого значительного влияния на работоспособность всей системы. + +Системы оркестрации приложений были созданы для упрощения и автоматизации управления распределенными системами. Они предоставляют средства для координирования и управления различными компонентами и сервисами, которые составляют распределенную систему. Однако, интеграция и настройка систем оркестрации может потребовать дополнительных усилий и ресурсов. + +Очереди обработки сообщений используются для асинхронной коммуникации и координации между компонентами или сервисами в распределенных системах. Они позволяют отправлять и получать сообщения между различными частями системы, которые могут работать независимо друг от друга. +Под сообщениями может подразумеваться различный тип информации, которая передается между компонентами системы. Это может быть запрос на выполнение определенной задачи, уведомление о событии, данные для обработки и т.д. + +На мой взгляд, распределенные приложения имеют очень важные преимущества, такие как масштабируемость и отказоустойчивость. Эти факторы являются очень важными в работе крупных систем, что упрощает жизнь пользователю (если у Вконтакте не работает сервис с музыкой, то все еще можно обмениваться сообщениями) и разработчикам (если не у Вконтакте не работает сервис с музыкой, то не нужно искать проблемы в сервисе оплаты (но не для Вконтакте); а также легко внедрять нововедения (но не для Вконтакте, для Телеграм например или для чего-то еще более стабильного)). Недостатком же является только сложность подобного проектирования, ну и возможно интеграция компонентов в крупных системах. + + +В сложную распределенную систему внедрять параллельные вычисления целесообразно только в том, случае, если происходит обработка большого количества данных. В прошлых лабораторных работах мы убедились, что параллельные вычисления теряют свою эффективность на малых наборах данных. А также необходимо проверять, что выбранные алгоритмы действительно эффективно работают. \ No newline at end of file