From 39937db6cac490ae36ee635e006df202be104ecb Mon Sep 17 00:00:00 2001 From: Mamoru777 Date: Tue, 5 Dec 2023 23:15:17 +0400 Subject: [PATCH] senkin_alexander_lab_8 is ready --- senkin_alexander_lab_8/README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 senkin_alexander_lab_8/README.md diff --git a/senkin_alexander_lab_8/README.md b/senkin_alexander_lab_8/README.md new file mode 100644 index 0000000..8994ad5 --- /dev/null +++ b/senkin_alexander_lab_8/README.md @@ -0,0 +1,24 @@ +# Лабораторная работа №8 - Как Вы поняли, что называется распределенной системой и как она устроена? + +Задание: Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :) ) на тему "Устройство распределенных систем". А помогут Вам в этом вопросы из списка: + +- Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач? +- Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем? +- Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями? +- Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд? +- Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет. + +# Эссе + +Распределенные системы - это такие системы, в которых программный продукт разбит на несколько сервисов, зачастую взаимодействующих друг с другом. + +Распределенные системы набирают популярность, потому что приложения в наше время сильно разрастаются и их становится все труднее поддерживать, масштабировать, разобраться в старом коде. Для этого стали пользвоваться микросервисной архитектурой, которая решает эти проблемы. + +Микросервисная архитектура имеет плюсы и минусы. Из плюсов опять же упрощение поддержки продукта, его масштабирования и легче прийти новому человеку на проект, за счет более читабильного кода. Также это повышенная отказоустойчивость и производительность, так как можно развернуть много экземпляров одного сервиса, можно развернуть и экземпляры монолита, но он будет съедать много ресурсов, в отличие от сервисов. +Из минусов можно выделить сложность разработки и ее дороговизна, нет смысла разрабатывать маленькое приложение или маленькой команде распределенное приложение. + +Из популярных оркестраторов можно выделить kubernetes. Он отлично справляется с задачей создания, поддержания распределенного приложения за счет развертывания контейнеров. Также он удобен для поддержания работоспособности системы и распределения нагрузки, за счет его функций(не буду их описывать). + +Сложно сказать, когда стоит а когда не стоит внедрять параллельные вычисления в распределенное приложение, так как все познается с опытом, и в некоторых моментах остается только с помощью практики выяснять какой способ выбрать. Зачастую нужно внедрять параллелизм при подключении клиентов на сервисы, при работе с брокерами также можно подключение вынести в отдельный поток. + +При работе с микросервисной архитектурой часто приходится прибегать к использованию брокеров сообщений. Они помогают в общении сервисов друг с другом. С помощью брокеров мы можем сделать так, чтобы от одного сервиса сообщения доходили до нескольких сервисов за раз. В качестве сообщений может подрузамеваться какая-то информация, которая передается через брокер. \ No newline at end of file