DAS_2023_1/martysheva_tamara_lab_8/README.md

27 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №8 - Устройство распределенных систем
Эссе по вопросам:
* Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
* Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
* Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
* Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
* Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
***
## *Ход работы:*
Сложные системы пишутся в "распределенном" стиле хотя бы потому, что они являются сложными: внедрение новых подсистем легче
осуществить в микросервисной архитектуре, добавив сервис и даже необязательно на том же языке программирования. Можно сказать, что в такой системе
легче поспевать за трендами - примером может служить популяризация вертикальных клипов и VK Клипы от ВКонтакте. Кроме того, работа с серверами - их замена и добавление - тоже очень целесообразна для сложных систем.
Распределенные системы являются множеством независимых компонентов, и есть необходимость в управлении этими компонентами. Как раз для
этой цели и созданы системы оркестрации приложений. Такие системы упрощают процессы разворачивания, управления конфигурациями и в целом управления и мониторинга приложений.
Сложность может возникать при работе с конфигурациями и с освоением принципов работы систем оркестрации.
Очереди обработки сообщений как раз необходимы для связи компонентов распределенной системы. Под сообщениями могут подразумеваться
любые данные (текст, картинки, видео и т.д.). Очереди могут служить и неким буфером сообщений: компонент не обработает сообщение, пока не будет к этому готов. Кроме того,
очереди могут обеспечивать ту же балансировку нагрузки.
К преимуществам распределенных приложений, конечно, можно отнести высокую производительность, отказоустойчивость и масштабируемость. Однако чтобы создать такую систему, потребуется немало
ресурсов и затрат, а также создание будет сопряжено с трудностями обеспечения целостности и согласованности данных.
Мне кажется, что некоторые задачи, которые действительно требуют параллельного выполнения, целесообразно внедрять в сложную распределенную систему. Например, для потоковой передачи видео.
А вот при банковских операциях, к примеру, внедрение параллельных вычислений может быть даже вредоносным.