diff --git a/emelyanov_artem_lab_8/Readme.md b/emelyanov_artem_lab_8/Readme.md new file mode 100644 index 0000000..276a1d3 --- /dev/null +++ b/emelyanov_artem_lab_8/Readme.md @@ -0,0 +1,33 @@ +# Устройство распределенных систем + +> Сложные системы такие как "ВКонтакте" пишутся в **распределенном** стиле, так как это даёт такие преимущества, как: + +- **Масштабируемость**: Разделение на микросервисы позволяет масштабировать только те части системы, которые испытывают высокую нагрузку, не затрагивая другие компоненты. +- **Упрощение разработки и поддержки**: Микросервисная архитектура позволяет выделить разные команды для разработки и поддержки каждого отдельного сервиса, что ускоряет разработку и упрощает управление кодовой базой. +- **Устойчивость и отказоустойчивость**: Отказ одного микросервиса не ведет к отказу всей системы, что повышает её надежность. +- **Гибкость в выборе технологий**: Разные сервисы могут использовать разные языки программирования, базы данных и фреймворки, которые лучше подходят для конкретной задачи. + +> Но у распределённых систем можно выявить и недостатки, такие как: + +- **Сложность разработки и управления** +- **Сложность тестирования** +- **Задержки в сетевом взаимодействии** + +> Для управления контейнерами в распределенных системах, были созданы специальные системы автоматизации для управления развертыванием. Называется **орекстратор**, и его преимущества заключаются в: + +- **Автоматическое масштабирование** +- **Управление отказами** +- **Облегчение развертывания и обновления** +- **Управление конфигурациями и секретами** + +> Для асинхронного взаимодействия между сервисами придуманы **очереди сообщений**, такие как, RabbitMQ или Kafka: + +- **Сообщения** — это единицы данных, которые сервисы обмениваются друг с другом. + +**Очереди** обеспечивают: + +- **Буферизацию нагрузки** +- **Асинхронность** +- **Устойчивость к сбоям** + +> Для внедрения параллельных вычислений в распределенную систему, должны быть весомы поводы, такие как, обработка большого кол-ва данных. Но если задачи простые или важна скорость обмена между сервисами, это может быть уже не так полезно.