Распределенная система — это набор компьютерных программ, использующих вычислительные ресурсы нескольких отдельных вычислительных узлов для достижения одной общей цели. Ее также называют распределенными вычислениями или распределенной базой данных. Распределенная система основывается на отдельных узлах, которые обмениваются данными и выполняют синхронизацию в общей сети. Обычно узлы представляют собой отдельные физические аппаратные устройства, но это могут быть и отдельные программные процессы или другие рекурсивные инкапсулированные системы. Распределенные системы направлены на устранение узких мест или единых точек отказа в системе. Распределенные вычислительные системы обладают следующими характеристиками:
В централизованной вычислительной системе все вычисления выполняются на одном компьютере и в одном месте. Основное различие между централизованными и распределенными системами заключается в модели взаимодействия между узлами системы. Состояние централизованной системы хранится в центральном узле, к которому индивидуально обращаются клиенты. Микросервисная архитектура — это лишь один из типов распределенных систем. В ней приложение разбивается на отдельные компоненты, или «сервисы». К примеру, микросервисная архитектура может иметь сервисы, соответствующие бизнес-функциям (платежи, пользователи, продукты и др.), и каждый компонент будет обрабатывать бизнес-логику в своей сфере ответственности. В этом случае в системе будет несколько резервных копий сервисов, и у сервисов не будет единой точки отказа.
Распределенная трассировка — это способ профилирования или мониторинга результата запроса, который выполняется в распределенной системе. Мониторинг распределенной системы может оказаться непростой задачей, поскольку каждый отдельный узел имеет собственный, отдельный поток журналов и показателей. Чтобы получить точное представление о распределенной системе, необходимо свести показатели отдельных узлов в единую картину.
Архитектура распределенных систем:
Заключение
Распределенные системы получили широкое распространение и используются в большинстве современных программных интерфейсов. Приложения для социальных сетей, сервисы потокового видео, сайты электронной коммерции и многие другие продукты работают на базе распределенных систем. Централизованные системы естественным образом преобразуются в распределенные, чтобы получить возможность масштабирования. Микросервисы — это популярная и широко распространенная модель построения распределенных систем. Распределенные системы более сложно создавать и обслуживать, но Atlassian Compass решает эту проблему. Это платформа для разработчиков, которая помогает ориентироваться в распределенной архитектуре. Она объединяет разрозненные сведения о результатах разработки и совместной работе команд в едином центре с возможностью поиска.