DAS_2023_1/almukhammetov_bulat_lab_8
2024-01-06 19:20:17 +04:00
..
README.md almukhammetov_bulat_lab_8 2024-01-06 19:20:17 +04:00

Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.

Распределенные системы это когда большое приложение, например, социальная сеть, разбито на множество маленьких частей, которые работают вместе. Каждая часть выполняет свою задачу. Это удобно, потому что так проще управлять системой и она работает стабильнее: если одна часть сломается, остальные продолжат работать. Так же это позволяет разрабатывать часть программы небольшой командой не связанной с другими командами.

Системы оркестрации, такие как Kubernetes, помогают управлять всеми этими частями. Они автоматически решают, где и как запустить каждую часть, контролируют их работу и помогают восстановиться после сбоев. Это делает работу проще, но требует дополнительных знаний для настройки и использования.

Очереди обработки сообщений это способ, которым части системы общаются друг с другом. Они отправляют сообщения это могут быть данные или команды и не ждут мгновенного ответа. Это помогает системе работать более стабильно, даже если какие-то части временно не работают.

Распределенные системы хороши, потому что они гибкие, могут расширяться и хорошо справляются с ошибками. Но они сложны в управлении и могут работать медленнее, потому что части системы общаются через сеть.

Параллельные вычисления в такой системе это когда много задач обрабатываются одновременно. Это хорошо для сложных задач, например, когда нужно обработать много данных. Но если задачи простые или важна скорость обмена данными между частями, то это может быть не так полезно.