diff --git a/tasks/kazakov-ev/lab_8/README.md b/tasks/kazakov-ev/lab_8/README.md new file mode 100644 index 0000000..4e34c34 --- /dev/null +++ b/tasks/kazakov-ev/lab_8/README.md @@ -0,0 +1,44 @@ +# Отчет по лабораторной работе №8 + +Выполнил студент гр. ИСЭбд-41 Миронов Е.О. + +## Задачи + +Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка: +1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? +2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? +3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? +4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? +5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + +## Эссе + +1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? + + Во-первых, такие системы обрабатывают огромные объемы данных и высокие нагрузки, поэтому разделение функциональности между отдельными приложениями или сервисами позволяет более эффективно масштабировать и обрабатывать данные. Каждое приложение выполняет свою специфическую задачу, что позволяет легко масштабировать и модифицировать систему. + +2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? + + Системы оркестрации приложений созданы для упрощения и управления разработкой и сопровождением распределенных систем. Они предоставляют средства для координации работы различных сервисов, обеспечивают управление состоянием, масштабирование и мониторинг системы. Это позволяет разработчикам концентрироваться на логике приложений, не беспокоясь о низкоуровневых деталях взаимодействия между сервисами. Однако, оркестрация приложений может усложнить разработку и требует дополнительных усилий по настройке и поддержке системы. + +3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? + + Очереди обработки сообщений играют важную роль в распределенных системах. Они служат для асинхронной коммуникации между компонентами системы и обеспечивают отказоустойчивость и гибкость в обработке данных. Сообщения могут представлять собой запросы на выполнение определенной задачи, информацию о событии или результаты выполнения действий. Очереди позволяют более гибко и эффективно управлять потоками данных и обеспечивать их последовательную обработку, даже при высоких нагрузках. + +4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? + + Распределенные приложения имеют свои преимущества и недостатки. Они позволяют обрабатывать большие объемы данных, расширяться горизонтально и обеспечивать высокую отказоустойчивость. Однако, разработка и поддержка таких систем могут быть сложными и требовать специфических знаний. Также, распределенные системы могут страдать от проблем с консистентностью данных, синхронизацией и возникающими задержками в обработке. + +5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + + Внедрение параллельных вычислений в сложную распределенную систему может быть целесообразным при определенных условиях. Рассмотрим несколько примеров, когда это может быть полезно и когда необходимость в этом отсутствует: + + 1. Обработка больших объемов данных: Если система работает с огромными объемами данных, параллельные вычисления могут значительно ускорить обработку. Например, в аналитической системе, которая агрегирует и анализирует большие объемы данных, параллельные вычисления помогут распределить нагрузку на несколько узлов и ускорить обработку данных. + + 2. Вычислительно интенсивные задачи: Если система выполняет вычислительно сложные операции или алгоритмы, параллельные вычисления могут значительно сократить время обработки. Например, в системе машинного обучения, где требуется обучение модели на большом объеме данных, параллельные вычисления позволят распределить вычислительную нагрузку между несколькими узлами и ускорить процесс обучения. + + Однако, есть случаи, когда внедрение параллельных вычислений может быть излишним: + + 1. Простые операции: Если операции в системе относительно простые и не требуют значительных вычислительных ресурсов, то внедрение параллельных вычислений может быть излишним. Например, в системе управления пользователями, где требуется простая обработка запросов на создание, обновление или удаление пользователей, параллельные вычисления не приведут к значительному ускорению. + + 2. Необходимость в строгой последовательности: В некоторых случаях, система может требовать строгой последовательности выполнения операций. В таких случаях, параллельные вычисления могут нарушить эту последовательность и привести к нежелательным результатам. Например, в базе данных, где нужно манипулировать данными с использованием транзакций, параллельне вычисления могут нарушить целостность данных. \ No newline at end of file