Распределенные вычисления для эффективных цифровых инфраструктур

Сегодня распределенные вычисления являются неотъемлемой частью как нашей цифровой рабочей, так и личной жизни. Каждый, кто выходит в Интернет и осуществляет поиск в Google, уже использует распределенные вычисления. Архитектуры распределенных систем также формируют многие сферы бизнеса и предоставляют бесчисленные услуги с достаточной вычислительной и вычислительной мощностью. Далее мы объясним, как работает этот метод, представим используемые системные архитектуры и области их применения. Мы также обсудим преимущества распределенных вычислений.

Что такое распределенные вычисления?

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

Распределенное оборудование не может использовать общую память из-за физического разделения, поэтому участвующие компьютеры обмениваются сообщениями и данными (например, результатами вычислений) по сети. Этот межмашинный обмен происходит локально через внутреннюю сеть (например, в центре обработки данных) или по всей стране и миру через Интернет. Сообщения передаются с помощью интернет-протоколов, таких как TCP/IP и UDP.

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

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

Как работают распределенные вычисления?

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

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

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

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

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

Каковы различные типы распределенных вычислений?

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

  • облачные вычисления
  • грид-вычисления
  • кластерные вычисления

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

  • Программное обеспечение как услуга (SaaS): В случае SaaS клиент использует приложения облачного провайдера и связанную с ними инфраструктуру (например, серверы, онлайн-хранилище, вычислительные мощности). Приложения могут быть доступны с различных устройств через интерфейс тонкого клиента (например, веб-приложение на основе браузера). Обслуживание и администрирование аутсорсинговой инфраструктуры осуществляется облачным провайдером.
  • Платформа как услуга (PaaS): В случае PaaS предоставляется облачная среда (например, для разработки веб-приложений). Клиент сохраняет контроль над предоставляемыми приложениями и может настраивать пользовательские параметры, в то время как техническую инфраструктуру для распределенных вычислений обеспечивает облачный провайдер.
  • Инфраструктура как услуга (IaaS): В случае IaaS облачный провайдер предоставляет техническую инфраструктуру, к которой пользователи могут получить доступ через публичные или частные сети. Предоставляемая инфраструктура может включать следующие компоненты: серверы, вычислительные и сетевые ресурсы, коммуникационные устройства (например, маршрутизаторы, коммутаторы и брандмауэры), пространство для хранения данных, системы архивирования и защиты данных. Что касается клиента, то он сохраняет контроль над операционными системами и предоставляемыми приложениями.

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

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

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

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

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

Ниже перечислены некоторые из наиболее часто используемых архитектурных моделей в распределенных вычислениях:

  • модель клиент-сервер
  • одноранговая модель
  • многоуровневая модель (многоуровневые архитектуры)
  • сервис-ориентированная архитектура (SOA)

Модель клиент-сервер — это простая модель взаимодействия и коммуникации в распределенных вычислениях. В этой модели сервер получает запрос от клиента, выполняет необходимые процедуры обработки и отправляет ответ (например, сообщение, данные, результаты вычислений).

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

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

Сервис-ориентированная архитектура (SOA) фокусируется на сервисах и направлена на удовлетворение индивидуальных потребностей и процессов компании. Это позволяет объединить отдельные сервисы в индивидуальный бизнес-процесс. Например, SOA может охватывать весь процесс «заказа через Интернет», который включает в себя следующие сервисы: «прием заказа», «проверка кредитоспособности» и «отправка счета». Технические компоненты (например, серверы, базы данных и т.д.) используются как инструменты, но не являются здесь основным фокусом. В этом типе распределенных вычислений приоритет отдается обеспечению эффективного сочетания услуг, их совместной работы и разумной организации с целью сделать бизнес-процессы максимально эффективными и бесперебойными.

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

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

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

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

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

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

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

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

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

Для чего используются распределенные вычисления?

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

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

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

Особенно интенсивные в вычислительном отношении исследовательские проекты, которые раньше требовали использования дорогостоящих суперкомпьютеров (например, компьютера Cray), теперь можно проводить с помощью более экономичных распределенных систем. Волонтерский вычислительный проект SETI@home устанавливал стандарты в области распределенных вычислений с 1999 года и продолжает их устанавливать в 2020 году. Бесчисленное количество объединенных в сеть домашних компьютеров, принадлежащих частным лицам, использовалось для оценки данных радиотелескопа обсерватории Аресибо в Пуэрто-Рико и поддержки Калифорнийского университета в Беркли в поисках внеземной жизни.

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

Совет

На YouTube-канале Education 4u вы можете найти множество обучающих видео, в которых рассказывается об основах распределенных вычислений.

Оцените статью
cdelat.ru
Добавить комментарий