diff --git a/kurushina_ksenia_lab_8/README.md b/kurushina_ksenia_lab_8/README.md new file mode 100644 index 0000000..eaaa348 --- /dev/null +++ b/kurushina_ksenia_lab_8/README.md @@ -0,0 +1,46 @@ +# Лабораторная работа №8: Устройство распределенных систем + +Распределенные системы — это архитектура, где вычислительные задачи выполняются несколькими взаимодействующими +между собой узлами (сервисами, приложениями). Каждый узел отвечает за свою область задач, +что упрощает масштабирование, обеспечивает отказоустойчивость и улучшает производительность. + +### Зачем использовать распределенный стиль разработки? + +Сложные системы, такие как социальные сети, требуют обработки огромного объема данных и высокой доступности. +Разделение функционала на узкие сервисы упрощает разработку, тестирование и сопровождение. +Например, один сервис может обрабатывать загрузку изображений, а другой — публикацию постов. +Это позволяет масштабировать каждый компонент независимо, снижая нагрузку на всю систему. + +### Роль систем оркестрации + +Системы оркестрации (например, Kubernetes) автоматизируют развертывание, управление и масштабирование приложений. +Они упрощают сопровождение за счет централизованного управления, но добавляют сложность +в настройке и требуют опыта для эффективного использования. Оркестрация помогает сохранять консистентность +в сложной инфраструктуре и улучшает мониторинг. + +### Очереди обработки сообщений + +Очереди сообщений (например, RabbitMQ или Kafka) обеспечивают асинхронное взаимодействие между сервисами. +Сообщения — это данные, такие как запросы, события или команды. +Очереди упрощают обработку высоких нагрузок и +позволяют сервисам работать независимо друг от друга. + +### Преимущества и недостатки + +Преимущества распределенных систем: + +- Масштабируемость: легко увеличивать ресурсы для отдельных компонентов. +- Отказоустойчивость: сбой одного узла не влияет на всю систему. +- Производительность: задачи распределяются между сервисами. + +Недостатки: +- Сложность разработки и отладки. +- Увеличение задержек из-за сетевого взаимодействия. +- Требования к инструментам управления и мониторинга. + +### Параллельные вычисления в распределенных системах + +Параллельные вычисления целесообразны, если задачи можно разбить на независимые блоки. +Например, обработка больших объемов данных в аналитике или видеокодировании. +Однако их использование не нужно для последовательных задач, +таких как запись транзакций в базу данных, где важна консистентность.