Распределенные вычислительные системы доклад

Обновлено: 18.05.2024

Презентация на тему: " Лекция 1. Введение в распределенные вычислительные системы." — Транскрипт:

1 Лекция 1. Введение в распределенные вычислительные системы

2 УЧЕБНЫЕ ВОПРСЫ 1. Основные понятия и определения. Классификация РВС 2. История развития распределенных вычислений

3 Распределенная вычислительная система (РВС) – это набор соединенных каналами связи независимых компью­теров, которые с точки зрения пользователя некоторого программного обеспечения выглядят единым целым

4 Характеристики РВС: А) возможность работы с различными типами устройств: с различными поставщиками устройств; с различными операционными системами, с различными аппаратными платформами.

5 Характеристики РВС: А) возможность работы с различными типами устройств: с различными поставщиками устройств; с различными операционными системами, с различными аппаратными платформами. Вычислительные среды, состоящие из множества вычислительных систем на базе разных программно-аппаратных платформ, называются гетероген­ными.

6 Характеристики РВС: Б) возможность простого расширения и масштабирования; В) перманентная (постоянная) доступность ресурсов (даже если некоторые элементы РВС некоторое время могут находиться вне доступа); Г) сокрытие особенностей коммуникации от пользователей.

7 Рис. 1. Слои программного обеспечения в РВС

8 Для обеспечения работы гетерогенного оборудования РВС в виде единого целого, стек программного обеспечения (ПО) обычно разбивают на два слоя. На верхнем слое располагаются распределенные приложения, отвечающие за решение определенных прикладных задач средствами РВС. Их функциональ­ные возможности базируются на нижнем слое - промежуточном программном обеспечении (ППО). ППО взаимодействует с системным ПО и сетевым уров­нем, для обеспечения прозрачности работы приложений в РВС

9 типы прозрачности в РВС: прозрачный доступ к ресурсам - от пользователей должна быть скрыта разница в представлении данных и в способах доступа к ресурсам РВС; прозрачное местоположение ресурсов - место физического расположения требуемого ресурса должно быть несущественно для пользователя; репликация - сокрытие от пользователя того, что в реальности существует более одной копии используемых ресурсов;

10 типы прозрачности в РВС: параллельный доступ - возможность совместного (одновременного) ис­пользования одного и того же ресурса различными пользователями неза­висимо друг от друга. При этом факт совместного использования ресурса должен оставаться скрытым от пользователя; прозрачность отказов - отказ (отключение) каких- либо ресурсов РВС не должен оказывать влияния на работу пользователя и его приложения.

11 Ресурсом называется любая программная или аппаратная сущность, пред­ставленная или используемая в распределенной сети. Узел - любое аппаратное устройство в распределенной вычислительной системе. Сервер - это поставщик информации в РВС (например, веб-сервер).

13 Рис. 2. Схема взаимоотношений между терминами РВС

15 методы обнаружения ресурсов Примером централизованного метода об­наружения ресурсов может служить служба DNS. На основе указанного имени сайта (например, DNS возвращает его IP-адрес (например, ). При использовании децентрализованного метода обнаружения ресурсов (например, в сети Gnutella) запрос на поиск отправляется всем узлам, из­вестным отправителю. Эти узлы производят поиск ресурса у себя, и трансли­руют запрос далее.

16 доступность ресурсов Примером централизованной доступности ресурсов в РВС может являться технология веб-сервисов. Существует только один сервер с выделенным IP- адресом, кото­рый предоставляет определенный веб- сервис или сайт. Существуют системы, предоставляющие децентрализованные подходы к доступности ресурсов посредством множественного дублирования сервисов, которые могут обеспечить функциональность, необходимую пользователю.

17 методы взаимодействия ресурсов Централизованный подход к взаимодействию узлов основан на том, что взаимодействие между узлами всегда происходит через специаль­ный центральный сервер. Таким образом, один узел не может обратиться к дру­гому непосредственно. Децентрализованный подход к взаимодействию реализуется в одноранго­вых вычислительных системах. Такой подход основывается на прямом взаимо­действии между узлами РВС, т.к. каждый узел играет как роль клиента, так и роль сервера.

18 Взаимодействие в вычислительных сетях базируется на протоколах. Про­токол - это набор правил и соглашений, описывающих процедуру взаимодей­ствия между компонентами системы (в том числе и вычислительной).

19 Рис. 3. Уровни модели OSI

20 Первое поколение систем распределенных вычислений основывались на объединении вычислительных возможностей суперкомпьютеров. Основной целью данных проектов было предоставление вычислительных ресурсов для определенного ряда высокопроизводительных приложений.

21 Первое поколение систем распределенных вычислений Проект FAFNER был создан для решения задачи разложения больших чи­сел на основе мощностей географически-распределенных вычислительных си­стем. Нахождение простых множителей больших чисел позволяет расшифровать данные, зашифрованные на основе алгоритма RSA.

23 Первое поколение систем распределенных вычислений I-WAY - Information Wide Area Year (Год Информации Глобальных Сетей) экспериментальная высокопроизводительная сеть, которая объединила мно­ жество высокопроизводительных компьютеров и передовые средства визуали­зации в США. Она была спроектирована в начале 1995, с целью объединения высокоскоростных сетей, существующих на тот момент.

25 Второе поколение систем распределенных вычислений Проект Legion Проект Legion - это объектно-ориентированная система, предоставляющая программную оболочку для организации однородного взаимодействия гетеро­генных распределенных высокопроизводительных вычислительных си­стем

26 Второе поколение систем распределенных вычислений Распределенные объектные системы архитектура CORBA (Common Object Request Broker Architecture - общая архитектура брокера объ­ектных запросов) обеспечивает стандартный протокол взаимодействия объектно-­ориентированных систем

27 Современные РВС Одноранговые (peer-to-peer) сети При работе в рамках парадигмы P2P, компьютеры обмениваются ресурса­ми непосредственно друг с другом, без использования центрального сервера.

28 Современные РВС Сервис-ориентированная архитектура SOAP - основанный на XML протокол взаимодействия веб-сервисов; WSDL (Web Services Description Language - Язык описания веб-сервисов) это методология описания ресурсов, предоставляемых веб-сервисом; UDDI (Universal Description Discovery and Integration - Универсальный ме­тод поиска и интеграции) - метод описания, поиска, взаимодействия и ис­пользования веб- сервисов.

29 Современные РВС Агенты Агентные сети принципиально приспособлены для функционирования в динамически-изменяемой окружающей среде. В этом случае, автономность агентов позволяет организовать динамическую подстройку вычислительного алгоритма под условия вычислительной среды.

30 Современные РВС Облачные вычисления Облако - это парадигма крупномасштабных распределенных вычислений, основанная на эффекте масштаба, в рамках которой пул абстрактных, виртуа­ лизованных, динамически-масштабируемых вычислительных ресурсов, ресур­сов хранения, платформ и сервисов предоставляется по запросу внешним поль­ зователям через Интернет

Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент, поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощённым средством распределения вычислений. Нестабильность конфигурации, в таком случае, компенсируется большим числом узлов. Грид с точки зрения сетевой организации представляет собой согласованную, открытую и стандартизованную среду, которая обеспечивает гибкое, безопасное, скоординированное разделение вычислительных ресурсов и ресурсов хранения информации, которые являются частью этой среды, в рамках одной виртуальной организации.

Наборы инструкций процессора:
RISC - архитектура процессора, в которой быстродействие увеличивается за счёт упрощения инструкций, чтобы их декодирование было более простым, а время выполнения- короче. Упрощение инструкций облегчает повышение тактовой частоты.
CISC - архитектура процессора, в которой реализуется расширенный набор инструкций. Данная концепция проектирования процессоров характеризуется следующим набором свойств:
1. нефиксированное значение длины команды;
2. арифметические действия кодируются в одной команде;
3. небольшое число регистров, каждый из которых выполняет строго определённую функцию.

2. Классификации архитектур вычислительных систем.

Общая классификация архитектур ЭВМ по признакам наличия параллелизма в потоках команд и данных. Все разнообразие архитектур ЭВМ в этой таксономии сводится к четырем классам:

SISD. Вычислительная система с одиночным потоком команд и одиночным потоком данных; к этому классу относятся, прежде всего, классические последовательные машины, например, PDP-11 или VAX 11/780. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом, и каждая команда инициирует одну операцию с одним потоком данных. Не имеет значения тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка — как машина CDC 6600 со скалярными функциональными устройствами, так и CDC 7600 с конвейерными попадают в этот класс.

MISD, Multiple Instruction Single Data — Вычислительная система со множественным потоком команд и одиночным потоком данных; К классу MISD ряд исследователей относит конвейерные ЭВМ, однако это не нашло окончательного признания, поэтому можно считать, что реальных систем — представителей данного класса не существует.

MIMD, Multiple Instruction Multiple Data — Вычислительная система со множественным потоком команд и множественным потоком данных. Класс MIMD включает в себя многопроцессорные системы, где процессоры обрабатывают множественные потоки данных. Сюда принято относить традиционные мультипроцессорные машины, многоядерные и многопоточные процессоры, а также компьютерные кластеры. Также делится на: SM-MIMD (shared memory MIMD)В эту группу попадают многопроцессорные машины с общей памятью, многоядерные процессоры с общей памятью; и DM-MIMD (distributed memory MIMD) В этот под-класс попадают многопроцессорные MIMD-машины с распределенной памятью.У каждого процессора имеется своя собственная локальная память, которая не видна другим процессорам. Каждый процессор в такой системе выполняет свою задачу со своим набором данных в своей локальной памяти.

Не официально(!):

SPMD (Single Program Multiple Data) — описывает систему, где на всех процессорах MIMD-машины выполняется только одна единственная программа, и на каждом процессоре она обрабатывает разные блоки данных.

MPMD (Multiple Programs Multiple Data) — описывает систему, а) где на одном процессоре MIMD-машины работает мастер-программа, а на других подчиненная программа, работой которой руководит мастер-программа (принцип master/slave или master/worker); б) где на разных узлах MIMD-машины работают разные программы, которые по-разному обрабатывают один и тот же массив данных (принцип coupled analysis), большей частью они работают независимо друг от друга, но время от времени обмениваются данными для перехода к следующему шагу.

Дополнения Ванга и Бриггса Класс SISD разбивается на два подкласса: архитектуры с единственным функциональным устройством(PDP-11); архитектуры, имеющие в своем составе несколько функциональных устройств (CDC 6600, CRAY-1, FPS AP-120B, CDC Cyber 205, FACOM VP-200).В классе SIMD также вводится два подкласса: архитектуры с пословно-последовательной обработкой информации (ILLIAC IV, PEPE, BSP); архитектуры с разрядно-последовательной обработкой (STARAN, ICL DAP). В классе MIMD: вычислительные системы со слабой связью между процессорами, к которым они относят все системы с распределенной памятью (Cosmic Cube); вычислительные системы с сильной связью (системы с общей памятью), куда попадают такие МВС, как C.mmp, BBN Butterfly, CRAY Y-MP, Denelcor HEP.

Классификация Фенга В 1972 году Фенг (T. Feng) предложил классифицировать вычислительные системы (ВС) на основе двух простых характеристик. Первая характеристика – число n бит в машинном слове, обрабатываемых параллельно при выполнении машинных инструкций. Вторая характеристика – число m слов, обрабатываемых одновременно. Немного изменив терминологию, функционирование ВС можно представить как параллельную обработку n битовых слоёв, на каждом из которых независимо преобразуются m бит. Тогда каждую вычислительную систему можно описать парой чисел (n, m). Произведение P = n \cdot m определяет интегральную характеристику потенциала параллельности архитектуры, которую Фенг назвал максимальной степенью параллелизма ВС.

Классификация Шора Классификация Дж.Шора появившаяся в начале 70-х годов, интересна тем, что представляет собой попытку выделения типичных способов компоновки вычислительных систем на основе фиксированного числа базисных блоков: устройства управления, арифметико-логического устройства, памяти команд и памяти данных. Итак, согласно классификации Шора все компьютеры разбиваются на шесть классов, которые он так и называет: машина типа I, II и т.д. Машина I — это вычислительная система, которая содержит устройство управления, арифметико-логическое устройство, память команд и память данных с пословной выборкой. Если в машине I осуществлять выборку не по словам, а выборкой содержимого одного разряда из всех слов, то получим машину II. Слова в памяти данных по прежнему располагаются горизонтально, но доступ к ним осуществляется иначе. Если в машине I происходит последовательная обработка слов при параллельной обработке разрядов, то в машине II — последовательная обработка битовых слоев при параллельной обработке множества слов. Если объединить принципы построения машин I и II, то получим машину III. Эта машина имеет два арифметико-логических устройства — горизонтальное и вертикальное, и модифицированную память данных, которая обеспечивает доступ как к словам, так и к битовым слоям. Если в машине I увеличить число пар арифметико-логическое устройство память данных (иногда эту пару называют процессорным элементом) то получим машину IV. Единственное устройство управления выдает команду за командой сразу всем процессорным элементам. Если ввести непосредственные линейные связи между соседними процессорными элементами машины IV, например в виде матричной конфигурации, то получим схему машины V. Любой процессорный элемент теперь может обращаться к данным как в своей памяти, так и в памяти непосредственных соседей.Заметим, что все машины с I-ой по V-ю придерживаются концепции разделения памяти данных и арифметико-логических устройств, предполагая наличие шины данных или какого-либо коммутирующего элемента между ними. Машина VI, названная матрицей с функциональной памятью (или памятью с встроенной логикой), представляет собой другой подход, предусматривающий распределение логики процессора по всему запоминающему устройству. Примерами могут служить как простые ассоциативные запоминающие устройства, так и сложные ассоциативные процессоры.

Классификация Хэндлера В основу классификации В.Хендлер закладывает явное описание возможностей параллельной и конвейерной обработки информации вычислительной системой. Предложенная классификация базируется на различии между тремя уровнями обработки данных в процессе выполнения программ:

уровень выполнения программы — опираясь на счетчик команд и некоторые другие регистры, устройство управления (УУ).

уровень битовой обработки — все элементарные логические схемы процессора (ЭЛС) разбиваются на группы, необходимые для выполнения операций над одним двоичным разрядом.

Подобная схема выделения уровней предполагает, что вычислительная система включает какое-то число процессоров каждый со своим устройством управления. Если на какое-то время не рассматривать возможность конвейеризации, то число устройств управления k, число арифметико-логических устройств d в каждом устройстве управления и число элементарных логических схем w в каждом АЛУ составят тройку для описания данной вычислительной системы C: (k, d, w) k — число УУ, d — число АЛУ в каждом УУ, w — число разрядов в слове, обрабатываемых в АЛУ параллельно.

Классификация Хокни Классификация машин MIMD-архитектуры:

Переключаемые — с общей памятью и с распределённой памятью. (В данный класс попадают машины, в которых возможна связь каждого процессора с каждым, реализуемая с помощью переключателей — машины с распределённой памятью. Если же память есть разделяемый ресурс, машина называется с общей памятью.)

Конвейерные (В класс конвейерных архитектур (по Хокни) попадают машины с одним конвейерным устройством обработки, работающим в режиме разделения времени для отдельных потоков.)

Сети — регулярные решётки, гиперкубы, иерархические структуры, изменяющие конфигурацию. (Имеют распределенную память. Дальнейшую классификацию он проводил в соответствии с топологией сети.)


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

Задача разработки распределенных систем является одной из наиболее сложных задач, которые стоят в настоящее время перед информатикой и программной инженерией. И сложность обусловлена не только такими очевидными свойствами как большие размеры, возможное географическое удаление компонентов друг от друга, ненадежные каналы связи между узлами, параллельные процессы, асинхронное взаимодействие, сложные схемы синхронизации, поддержка глобального времени. Сложность обуславливается еще и тем, что на сегодняшний день нет ясной и общепринятой систематизации характеристик функциональности распределенных систем.

К плюсам распределенных систем можно отнести следующие:

соотношение цены и производительности;

возможность разделение ресурсов;

Среди недостатков распределенных систем можно выделить:

сложность проектирования, тестирования и обслуживания;

безопасность данных, передаваемых внутри системы;

Классифицировать распределенные системы на сегодняшний день принято по различным признакам [1]:

классификация систем по их размерам и способам администрирования (кластер, распределенная система корпоративного уровня, глобальная система);

классификация систем по функциональности (вычислительные системы, информационные системы);

классификация систем по принципам их построения (распределенные системы объектов, распределенные файловые системы, распределенные системы документов).

Настоящий обзор фиксирует современные методы построения, использования и развертывания распределенных систем. Такая фиксация необходима для развертывания будущего исследования в данном направлении. В конечном итоге результаты исследования позволят решать вопросы разработки и развертывания распределенных систем.

В статье [2] также подробно рассматриваются методики и инструментальные средства верификации распределенных систем. Производится обзор более 30 инструментов как прототипных, разработанных в академических кругах, так и промышленных. Фиксируются современное состояние методов для верификации распределенных систем и мощности их инструментальной поддержки. Большим плюсом данной статьи является широкий обзор инструментов для верификации распределенных систем и их подробный анализ.

Проблематика использования распределенных систем обозревается в статье [3]. Были выделены проблемы администрирования системы, проблемы балансирования нагрузки, проблемы восстановления данных в случае возникновения ошибок, проблемы ограниченности масштабируемости, проблема переносимости ПО. Также отмечено, что ограниченность использования распределенных систем осложняется использованием в их составе оборудования различных производителей с различными типами архитектур. В связи с большим разнообразием аспектов построения вычислительных систем, а также разнообразие существующих операционных систем, возникает необходимость в создании методов адаптивного планирования распределения потоков в распределенной системе.

Взаимодействие в вычислительных сетях базируется на протоколах. Протокол – это набор правил и соглашений, описывающих процедуру взаимодействия между компонентами системы (в том числе и вычислительной) [6].

По тематике распределенных систем существует ряд патентов. Среди них можно выделить [ 7 ]. Данное изобретение обеспечивает формирование виртуальной сетевой топологии для разнообразных распределенных приложений, размещаемых на одной распределенной вычислительной системе, не требуя физической перенастройки распределенной вычислительной системы и конфигурирования проводных соединений внутри системы.

Современные распределенные системы. На сегодняшний день распределенные системы отходят от традиционных понятий высокопроизводительных распределенных вычислений в сторону развития виртуального сотрудничества и виртуальных организаций.

Виртуальная организация – это ряд людей и/или организаций, объединенных общими правилами коллективного доступа к определенным вычислительным ресурсам.

Методы предоставления доступа к вычислительным ресурсам становятся сервисно- ориентированными, что позволяет гибко использовать одни и те же вычислительные ресурсы различными потребителями.

Значительно расширились области автоматизированного управления ресурсами. Человек не в силах вручную решить задачу распределения вычислений в системах такого масштаба и гетерогенности. Таким образом, необходимо использование автоматизированных систем управления задачами, которые берут на себя задачи управления предоставляемой системой.

Также, с возрастанием масштаба вычислительных сетей, необходимы автоматизированные средства обработки ошибок и восстановления вычислительного процесса.

Облачные вычисления. Облако – это парадигма крупномасштабных распределенных вычислений, основанная на эффекте масштаба, в рамках которой пул абстрактных, виртуализированных, динамически-масштабируемых вычислительных ресурсов, ресурсов хранения, платформ и сервисов предоставляется по запросу внешним пользователям через Интернет.

Список литературы

1. Таненбаум Э., Ван Стеен М. Распределенные системы. Принципы и парадигмы = Andrew S. Tanenbaum, Maarten van Steen. "Distributed systems. Principles and paradigms". — Санкт - Петербург : Питер , 2003. – 877 с . – ( Классика computer science). — ISBN 5-272-00053-6.

2. Бурдонов И.Б., Косачев А.С., Пономаренко В.Н., Шнитман В.З. Обзор подходов к верификации распределенных систем. Препринт 16. М.: ИСП РАН, – 2006, – С. 61.

3. Цветков В. Я., Алпатов А. Н. Проблемы распределенных систем // ПНиО. – 2014. – №6 (12).

4. Бернс Б. Распределенные системы. Паттерны проектирования. – Питер., 2019. – 224 с.

5. Радченко, Г.И. Распределенные вычислительные системы / Г.И. Радченко. –Челябинск: Фотохудожник, 2012. – 184 с.

6. Косяков М.С. Введение в распределенные вычисления. –СПб: НИУИТМО, 2014. – 155 с.

Что такое распределенные системы

Изучение

В свете последних технологических изменений и достижений распределенные системы становятся все более популярными. Многие ведущие компании создали сложные распределенные системы для обработки миллиардов запросов и обновления без простоев.

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

Когда дело доходит до распределенных систем, есть много чего. Итак, сегодня мы просто познакомим вас с распределенными системами. Мы объясним различные категории, проблемы дизайна и соображения, которые необходимо учесть.

Что такое распределенная система?

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

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

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

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

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

Как правило, существует три типа распределенных вычислительных систем со следующими целями:

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

Децентрализованные и распределенные

Существует довольно много споров о разнице между децентрализованными и распределенными системами. Децентрализованная система по существу распределена на техническом уровне, но обычно децентрализованная система не принадлежит одному источнику.

Управлять децентрализованной системой сложнее, поскольку вы не можете управлять всеми участниками, в отличие от распределенного единого курса, где все узлы принадлежат одной команде / компании.

Преимущества распределенной системы

Распределенные системы могут быть сложными в развертывании и обслуживании, но такая конструкция дает много преимуществ. Давайте рассмотрим некоторые из этих льгот.

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

Масштабируемость — самое большое преимущество распределенных систем

Масштабируемость — самое большое преимущество распределенных систем. Горизонтальное масштабирование означает добавление дополнительных серверов в пул ресурсов. Вертикальное масштабирование означает масштабирование за счет увеличения мощности (ЦП, ОЗУ, хранилища и т. Д.) На ваших существующих серверах.

Горизонтальное масштабирование легче динамически масштабировать, а вертикальное масштабирование ограничено мощностью одного сервера.

Хорошими примерами горизонтального масштабирования являются Cassandra и MongoDB. Они упрощают горизонтальное масштабирование за счет добавления дополнительных машин. Примером вертикального масштабирования является MySQL, когда вы масштабируете, переключаясь с меньших компьютеров на большие.

Проблемы проектирования с распределенными системами

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

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

Точно так же ошибки труднее обнаружить в системах, которые разбросаны по разным местам.

Облако против распределенных систем

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

Распределенные вычисления направлены на создание совместного использования ресурсов и обеспечение размера и географической масштабируемости. Облачные вычисления — это предоставление среды по запросу с использованием прозрачности, мониторинга и безопасности.

По сравнению с распределенными системами облачные вычисления имеют следующие преимущества:

  • Экономически эффективным
  • Доступ к мировому рынку
  • Инкапсулированное управление изменениями
  • Доступ к хранилищу, серверам и базам данных в Интернете

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

Такие приоритеты, как балансировка нагрузки, репликация, автоматическое масштабирование и автоматическое резервное копирование. Могут быть упрощены с помощью облачных вычислений. Инструменты создания облака, такие как Docker, Amazon Web Services (AWS), Google Cloud Services или Azure, позволяют быстро создавать такие системы, и многие команды предпочитают создавать распределенные системы вместе с этими технологиями.

Примеры распределенных систем

Распределенные системы используются во всех сферах, от электронных банковских систем до сенсорных сетей и многопользовательских онлайн-игр. Многие организации используют распределенные системы для поддержки сетевых служб доставки контента.

В сфере здравоохранения распределенные системы используются для хранения и доступа, а также для телемедицины. В сфере финансов и торговли многие сайты онлайн-покупок используют распределенные системы для онлайн-платежей или системы распространения информации в финансовой торговле.

Распределенные системы также используются для транспорта в таких технологиях, как GPS, системы поиска маршрутов и системы управления дорожным движением. Сотовые сети также являются примерами распределенных сетевых систем из-за их базовой станции.

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

Читайте также: