diff --git a/tsukanova_irina_lab_8/README.md b/tsukanova_irina_lab_8/README.md new file mode 100644 index 0000000..29ebfba --- /dev/null +++ b/tsukanova_irina_lab_8/README.md @@ -0,0 +1,36 @@ +# Цуканова Ирина ПИбд-42 +# Лабораторная работа №8 + + +## Задание: +1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? +2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? +3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? +4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? +5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + +## Эссе +Распределенная система – это совокупность независимых компонентов, расположенных на нескольких машинах, который также называют узлами или серверами. +Эти компоненты взаимодействуют для выполнения общей задачи. +Можно сказать, что в распределенных системах задачи разбиваются на части и обрабатываются параллельно. + +В основном, сложные системы пишутся в распределенном стиле для отказоустойчивости, масштабируемости и упрощения поддержки. +Отказ одного сервиса не приводит к падению всей системы, каждый сервис может быть масштабирован независимо от других и обновляться независимо от других. + +В сложных распределенных системах применяются оркестраторы. Они сильно помогают в управлении развертыванием и масштабированием. +Например, системы оркестрации могут автоматически создавать новые экземпляры сервисов при росте нагрузки и уменьшать их при снижении. +Также важно и то, что оркестраторы следят за состоянием контейнеров и могут перезапускать их в случае сбоев. +При этом оркестрация может усложнять архитектуру, так как ее тоже надо настраивать и поддерживать. + +В распределенных системах применяются очереди обработки сообщений, например, RabbitMQ или Apache Kafka. +Они помогают организовать асинхронное взаимодействие между сервисами. Принцип работы несложный: +сервис отправляет сообщение в очереди, а другой сервис сможет его получить (или достать) и обработать. +Под сообщениями могут подразумеваться команды, данные или результаты обработки – всё, что необходимо передать от одного компонента к другому. +Очереди обработки сообщений позволяют увеличить устойчивость к сбоям и разделить зависимые операции. + +Как уже было сказано ранее, к преимуществам распределенных приложений можно отнести отказоустойчивость, масштабируемость и упрощение поддержки. +Если рассматривать недостатки, то это сложность администрирования(особенно, при большом числе компонентов) и сложность обеспечения безопасности. + +Параллельные вычисления целесообразны в распределенных системах, где задачи могут быть разделены на независимые части, обрабатываемые одновременно. +Например, при обработке больших данных или обработке мультимедиа. +Нецелесообразно внедрять, когда существует сильная зависимость задач друг от друга или когда задачи слишком малы.