Merge pull request 'emelyanov_artem_lab_8' (#79) from emelyanov_artem_lab_8 into main

Reviewed-on: Alexey/DAS_2024_1#79
This commit is contained in:
Alexey 2024-10-26 11:35:53 +04:00
commit 4528bcd22c

View File

@ -0,0 +1,33 @@
# Устройство распределенных систем
> Сложные системы такие как "ВКонтакте" пишутся в **распределенном** стиле, так как это даёт такие преимущества, как:
- **Масштабируемость**: Разделение на микросервисы позволяет масштабировать только те части системы, которые испытывают высокую нагрузку, не затрагивая другие компоненты.
- **Упрощение разработки и поддержки**: Микросервисная архитектура позволяет выделить разные команды для разработки и поддержки каждого отдельного сервиса, что ускоряет разработку и упрощает управление кодовой базой.
- **Устойчивость и отказоустойчивость**: Отказ одного микросервиса не ведет к отказу всей системы, что повышает её надежность.
- **Гибкость в выборе технологий**: Разные сервисы могут использовать разные языки программирования, базы данных и фреймворки, которые лучше подходят для конкретной задачи.
> Но у распределённых систем можно выявить и недостатки, такие как:
- **Сложность разработки и управления**
- **Сложность тестирования**
- **Задержки в сетевом взаимодействии**
> Для управления контейнерами в распределенных системах, были созданы специальные системы автоматизации для управления развертыванием. Называется **орекстратор**, и его преимущества заключаются в:
- **Автоматическое масштабирование**
- **Управление отказами**
- **Облегчение развертывания и обновления**
- **Управление конфигурациями и секретами**
> Для асинхронного взаимодействия между сервисами придуманы **очереди сообщений**, такие как, RabbitMQ или Kafka:
- **Сообщения** — это единицы данных, которые сервисы обмениваются друг с другом.
**Очереди** обеспечивают:
- **Буферизацию нагрузки**
- **Асинхронность**
- **Устойчивость к сбоям**
> Для внедрения параллельных вычислений в распределенную систему, должны быть весомы поводы, такие как, обработка большого кол-ва данных. Но если задачи простые или важна скорость обмена между сервисами, это может быть уже не так полезно.