diff --git a/kosheev_maksim_lab_8/READMY.md b/kosheev_maksim_lab_8/READMY.md new file mode 100644 index 0000000..e3646ce --- /dev/null +++ b/kosheev_maksim_lab_8/READMY.md @@ -0,0 +1,14 @@ +# Устройство распределенных систем +Распределенные системы — это архитектура, в которой задачи выполняются не одним большим приложением, а множеством небольших сервисов. Каждое из них отвечает за определенную функцию: авторизацию, обработку данных, отправку сообщений и так далее. Такой подход особенно важен для больших и сложных проектов, таких как социальная сеть ВКонтакте. Здесь разделение на сервисы позволяет масштабировать систему: если, например, сервис обработки изображений упдаёт, то это не заденет остальную програм и его можно запустить на дополнительных серверах, не трогая остальные части системы. + +# Зачем нужны системы оркестрации? +Когда распределенных сервисов становится много, управлять ими вручную становится сложно. Системы оркестрации, такие как Kubernetes, автоматизируют этот процесс: они запускают приложения, следят за их состоянием и помогают быстро заменять упавшие части. Это упрощает разработку и сопровождение, позволяя сосредоточиться на коде, а не на инфраструктуре. + +# Очереди обработки сообщений +Очереди сообщений нужны для того, чтобы сервисы могли обмениваться информацией. Например, один сервис обрабатывает заказ, а другой — отправляет уведомление покупателю. Очередь (RabbitMQ или Kafka) помогает передать сообщение об этом заказе. Такие очереди делают систему более надежной: если один из сервисов временно недоступен, сообщение остается в очереди, и его обработают позже. + +# Преимущества и недостатки +Плюсы распределенных приложений очевидны: они легко масштабируются, проще в поддержке, и каждая часть системы может развиваться независимо. Но есть и минусы: сложнее наладить взаимодействие между сервисами, возрастает количество потенциальных точек отказа, а разработка требует более высокой квалификации. + +# Параллельные вычисления в распределенных системах +Параллельные вычисления полезны, когда нужно одновременно обрабатывать большие объемы данных. Например, при выдаче результатов поиска в поисковой системе или обработке миллионов изображений для социальных сетей. Однако не всегда параллельность оправдана. Если задача последовательная, как, например, генерация отчетов, параллельные вычисления только усложнят код.1 \ No newline at end of file