From eddd99b94d6e2f529790bef49e69003011393aec Mon Sep 17 00:00:00 2001
From: maksim <kashin20031984@mail.ru>
Date: Sun, 27 Oct 2024 20:19:04 +0400
Subject: [PATCH] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 kashin_maxim_lab_8/readme.md | 69 ++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)
 create mode 100644 kashin_maxim_lab_8/readme.md

diff --git a/kashin_maxim_lab_8/readme.md b/kashin_maxim_lab_8/readme.md
new file mode 100644
index 0000000..46c6d95
--- /dev/null
+++ b/kashin_maxim_lab_8/readme.md
@@ -0,0 +1,69 @@
+# Кашин Максим ПИбд-42
+
+# Устройство распределенных систем
+
+## Введение
+Распределенные системы становятся все более важными в современных технологиях. Они обеспечивают возможность построения сложных приложений, таких как социальные сети, где отдельные сервисы выполняют ограниченные задачи. В этом эссе мы рассмотрим причины создания распределенных систем, роль оркестрации приложений, использование очередей сообщений, а также преимущества и недостатки таких систем.
+
+## 1. Зачем создаются распределенные системы?
+Распределенные системы создаются для решения следующих задач:
+
+| **Проблема**                       | **Решение с помощью распределенных систем**                     |
+|------------------------------------|-------------------------------------------------------------|
+| Сложность обновлений и масштабирования | Разделение на модули с ограниченными задачами             |
+| Высокие требования к доступности    | Обеспечение отказоустойчивости за счет дублирования сервисов |
+| Быстрые изменения требований        | Гибкость в добавлении и удалении сервисов                   |
+
+### Пример:
+ВКонтакте использует распределенные системы для обработки миллионов пользователей одновременно. Каждая служба отвечает за определенные функции (например, обработка сообщений, хранение медиафайлов), что позволяет обновлять их независимо друг от друга.
+
+## 2. Системы оркестрации приложений
+Системы оркестрации приложений, такие как Kubernetes, созданы для управления распределенными сервисами. Их преимущества включают:
+
+| **Преимущества**                      | **Недостатки**                        |
+|---------------------------------------|---------------------------------------|
+| Автоматизация развертывания           | Сложность в обучении новых сотрудников |
+| Масштабируемость                       | Зависимость от платформы оркестрации  |
+| Управление зависимостями между сервисами | Трудности в отладке и мониторинге     |
+
+### Пример:
+Использование Kubernetes позволяет автоматически масштабировать сервисы в зависимости от нагрузки, но требует знания специфичных команд и конфигураций.
+
+## 3. Очереди обработки сообщений
+Очереди сообщений, такие как RabbitMQ или Apache Kafka, используются для асинхронного обмена данными между сервисами. Сообщениями могут быть:
+
+| **Тип сообщения**                | **Описание**                        |
+|----------------------------------|------------------------------------|
+| Уведомления                      | Сообщения о событиях (например, новое сообщение от пользователя) |
+| Запросы                          | Запросы на выполнение определенных операций |
+| Результаты обработки             | Ответы на выполненные запросы     |
+
+### Пример:
+Система уведомлений в социальной сети использует очереди сообщений для отправки уведомлений пользователям о новых событиях, таких как лайки или комментарии.
+
+## 4. Преимущества и недостатки распределенных приложений
+### Преимущества:
+- Высокая доступность: Устойчивость к сбоям за счет дублирования сервисов.
+- Масштабируемость: Легкость в добавлении новых ресурсов.
+- Параллельная обработка: Возможность выполнения нескольких задач одновременно.
+
+### Недостатки:
+- Сложности в отладке и тестировании: Необходимость отслеживания взаимодействий между сервисами.
+- Проблемы безопасности: Увеличение количества точек доступа и потенциальных уязвимостей.
+- Управление состоянием: Сложности в поддержании согласованности данных.
+
+## 5. Параллельные вычисления в распределенных системах
+Внедрение параллельных вычислений целесообразно, когда:
+
+| **Ситуация**                      | **Рекомендация**                    |
+|-----------------------------------|-------------------------------------|
+| Обработка больших объемов данных   | Использовать параллельные вычисления |
+| Выполнение ресурсоемких задач     | Применять распределенные вычисления  |
+| Небольшие задачи                   | Избегать параллельности из-за накладных расходов |
+
+### Примеры:
+- **Необходимость**: Обработка потоков данных в реальном времени для аналитики.
+- **Нецелесообразно**: Простые операции, такие как обработка небольших файлов.
+
+## Заключение
+Распределенные системы представляют собой мощный инструмент для создания сложных приложений, обеспечивая гибкость, масштабируемость и устойчивость. Однако их внедрение требует внимательного анализа требований и подходов к разработке. Понимание преимуществ и недостатков поможет в эффективном использовании распределенных архитектур.