Оценить:
 Рейтинг: 0

Введение в облачные и распределенные информационные системы

Год написания книги
2020
<< 1 2 3 4 5 6 7 >>
На страницу:
4 из 7
Настройки чтения
Размер шрифта
Высота строк
Поля

По сути, это означает, что вы получаете доступ к голым машинам, и вы можете делать с ними все, что хотите.

Например, если вы покупаете кластер, приватное облако, тогда, вы запускаете аппаратное обеспечение как сервис.

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

Поэтому существует IaaS – инфраструктура как сервис, которая позволяет получить к машинам, и установить свои собственные операционные системы, но без доступа администратора root.

По сути, здесь используется виртуализация, чтобы, вы могли установить собственные виртуальные машины.

PaaS – платформа как сервис, по сути, представляет собой разновидность IaaS.

Вы не получаете доступ к самим виртуальным машинам, но вы пишете свой код, и он тесно интегрирован с программной платформой.

Например, App Engine от Google позволяет писать код на Python, Java или Go, а затем автоматически масштабирует ваше приложение в зависимости от входящей нагрузки.

При этом вы не задумываетесь об установке дополнительных виртуальных машин.

И наконец, SaaS – программное обеспечение как сервис дает вам доступ к приложениям как сервисам, когда они вам понадобятся, и снова вы платите по требованию.

Например, это Google документы или облачный Microsoft Office.

Итак, какая связь между облаками и распределенными системами?

Облако на самом деле является распределенной системой.

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

Это мы называем серверной стороной.

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

Это возможно, веб-страницы, сайты, объекты, которые хранятся, и различные сервисы.

Серверы на стороне центра обработки данных обмениваются между собой данными.

А клиенты напрямую взаимодействуют с серверами.

И каждый клиент может связываться с одним или более серверами.

Клиенты могут также взаимодействовать друг с другом через облако.

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

Это называется кластером.

Клиенты, взаимодействующие с серверами, также создают распределенную систему.

Клиенты, общающиеся друг с другом, создают peer-to-peer распределенную систему.

Все это означает, что облака являются особым классом распределенных систем.

Теперь давайте попытаемся определить термин распределенная система.

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

Здесь объекты – это по существу процессы.

Таким образом, каждый объект является процессом, который работает на каком-либо устройстве.

И каждый объект является автономным и программируемым, так как это процесс.

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

И эти объекты подвержены сбоям, и их коммуникация не надежна.

Асинхронность отличает распределенные системы от параллельных систем.

Параллельные системы включают в себя многопроцессорные системы и суперкомпьютеры.

Но, по сути, при этом очень большое количество процессоров используют одну и ту же материнскую плату.

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

И этим параллельная система отличается от распределенной системы.

Таким образом, процесс, это автономная работающая программа, которая может иметь несколько потоков.

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

В распределенных системах, эти процессы работают на разных устройствах, системные времена которых не синхронизированы.

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

При этом процессоры имеют синхронизированное системное время.

MapReduce

MapReduce – это модель распределённых вычислений, представленная компанией Google.

И эта модель используется для параллельных вычислений над очень большими наборами данных в компьютерных кластерах.

Термины map и reduce, которые составляют термин MapReduce, заимствованы из функциональных языков, таких как Lisp.

Например, вы хотите вычислить сумму квадратов.

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

Так что map здесь является мета функцией, которая обрабатывает каждую запись.
<< 1 2 3 4 5 6 7 >>
На страницу:
4 из 7