Технологии облачных вычислений

Автор работы: Пользователь скрыл имя, 16 Апреля 2014 в 21:44, реферат

Краткое описание

Облачные вычисления (англ. Cloud Computing) – это концепция, возникшая в середине 2000-х гг., согласно которой создается инфраструктура «вычислительного облака», которое, инкапсулируя в себе данные, вычислительные ресурсы и другие элементы, предоставляет удаленным пользователям доступ к реализованным сервисам. При этом для доступа к ним пользователю достаточно иметь любой компьютер с установленным веб-браузером. Сама облачная инфраструктура является сложным распределенным программно-аппаратным комплексом. Нагрузка внутри такого «вычислительного облака» распределяется автоматически и внешние пользователи облака не могут точно определить, с какой частью серверов и других компонентов они взаимодействуют в процессе.

Прикрепленные файлы: 1 файл

АИВС облака.doc

— 383.00 Кб (Скачать документ)

Технологии облачных вычислений

 

1. Введение в облачные вычисления

Облачные вычисления (англ. Cloud Computing) – это концепция, возникшая в середине 2000-х гг., согласно которой создается инфраструктура «вычислительного облака», которое, инкапсулируя в себе данные, вычислительные ресурсы и другие элементы, предоставляет удаленным пользователям доступ к реализованным сервисам. При этом для доступа к ним пользователю достаточно иметь любой компьютер с установленным веб-браузером. Сама облачная инфраструктура является сложным распределенным программно-аппаратным комплексом. Нагрузка внутри такого «вычислительного облака» распределяется автоматически и внешние пользователи облака не могут точно определить, с какой частью серверов и других компонентов они взаимодействуют в процессе. В общем случае само облако можно считать некоторым суперкомпьютером, мейнфреймом, находящимся где-то в сети Интернет. Примеры инфраструктур, похожих на облачные, уже были рассмотрены ранее в разд. 2. Еще одним примером облачных вычислений являются p2p сети (peer-to-peer).

Идея облаков возникла из возникавших в конце 1990-х – начале 2000-х г. удаленных сервисов и инфраструктур. Тогда многие компании вместо того чтобы создавать свои вычислительные мощности, заказывали разработку и поддержку бизнес-ориентированных ИТ-сервисов у сторонних поставщиков. Многие компании были готовы самостоятельно разрабатывать и поддерживать свои сервисы, но не имели средств для поддержки инфраструктуры, требовавшейсятакимсервисам.Таким образом,концепция облаков попала на благодатную почву и очень быстро набирает популярность в бизнесе.

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

Как уже упоминалось, «облака» возникли из концепций распределенных вычислений и сервис-ориентированных архитектур. Когда программные системы стали достаточно сложными, возникла идея повторного использования кода. В структурном программировании эта идея вылилась в создание подпрограмм и библиотек. Новый подход был предложен объектно-ориентированным программированием в виде концепции объектов. Простой группировки объектов в библиотеки уже было недостаточно, и возникли динамически подгружаемые объекты (такие, как OLE32). Объединение указанного подхода с методологией удаленного вызова процедур (RPC, Remote Procedure Call) дало рождение  таким технологиям, как COM, DCOM и CORBA, которые позволяли размещать подпрограммы и объекты на удаленных машинах и давали возможность программистам посредством сетевых протоколов осуществлять взаимодействие с ними (рис. 1).

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

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

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

Типичная организация архитектуры облачных вычислений представлена на рис. 2.


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

Системные сервисы облака необходимы для поддержки основной функциональности, такой как масштабируемость, виртуализация и предоставление ресурсов облачных приложений. Кроме того, системные сервисы облака отвечают за безопасность, управление доступом, резервирование и менеджмент инфраструктур внутри облака. Между системными сервисами и пользовательскими приложениями лежит прослойка в виде API (Application Programming Interface, интерфейс программирования приложений) облака.

 

2. Основные модели обслуживания  облачных вычислений

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

  • инфраструктура как сервис (IaaS);
  • платформа как сервис (PaaS);
  • программное обеспечение как сервис (SaaS).

В следующих разделах они будут рассмотрены более подробно наряду с другими малораспространенными *aaS.

 

2.1. Инфраструктура как сервис (IaaS)

Инфраструктура как сервис (Infrastructure as a Service – IaaS) предоставляет услуги по организации компьютерной и сетевой инфраструктур (обычно, в виде виртуальных машин) на основе облака. К типичным провайдерам облачных услуг такого рода относятся Amazon EC2, GoGrid, ElasticHosts и др.

Архитектура IaaS включает в себя три основных компонента:

  1. Аппаратные средства (сетевое оборудование, системы хранения данных, клиентские системы, серверы, мейнфреймы).
  2. Системное программное обеспечение (операционные системы, средства виртуализации, автоматизации, средства управления доступом и др.).
  3. ПО управления и контроля (программы для менеджмента и мониторинга инфраструктуры виртуальных серверов).

Ключевыме особенности облачной концепции IaaS:

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

 

2.2. Платформа как сервис (PaaS)

Логическим продолжением IaaS является PaaS (Platform as a Service – платформа как сервис). PaaS предоставляет пользователям интегрированную платформу, реализующую практически все этапы жизненного цикла приложения: начиная от разработки, через этапы тестирования и развертывания к поддержанию стабильной работы. Инфраструктура PaaS прежде всего предназначена для работы с веб-приложениями и сервисами. Основными провайдерами облачных услуг по предоставлению PaaS являются Microsoft Azure, Google App Engine и другие.

Можно выделить пять ключевых особенностей облачной инфраструктуры PaaS:

  1. PaaS подобно IaaS обладает вертикальной и горизонтальной масштабируемостью, позволяя в реальном времени выделять дополнительные ресурсы на функционирование сервиса или группы сервисов. В то же время, облачные провайдеры широко используют модель ценообразования «Pay-as-you-go» (плати за то, что используешь), позволяющую оплачивать только полезную нагрузку на сервер и не оплачивать часы «простоя».
  2. Как и в случае IaaS, пользователи PaaS избегают рисков и затрат, связанных с приобретением и поддержкой аппаратного и программного обеспечения.
  3. Многоцелевая арендная архитектура (multi-tenant architecture) позволяет разработчикам приложений сосредоточить свои усилия непосредственно на логике программы, а такие понятия, как масштабируемость, отказоустойчивость, виртуализация и безопасность, облако будет обеспечивать в автоматическом режиме. Как уже упоминалось, в инфраструктуре PaaS ресурсы, выделяемые приложению, динамически масштабируются. Кроме того, для приложений, развернутых в облаке, PaaS автоматически предоставляются безопасные внутренние (и, в некоторых случаях, даже внешние)  каналы связи для обмена конфиденциальной информацией и организации банковских транзакций. PaaS поддерживает все современные технологии взаимодействия приложений и разработки веб-сервисов (например, SOAP), а также обеспечивает поддержку реляционных и нереляционных СУБД. Некоторые поставщики предлагают услуги по организации данных с использованием концепций «Big Data».
  4. PaaS предоставляет пользователям единую инфраструктуру поддержки жизненного цикла приложения. В большинстве случаев современные методы организации жизненного цикла разработки подразумевают, что тестирование выполняется в одной среде, разработка – в другой, а развертываться приложение может вообще в неизвестной изначально для разработчика инфраструктуре. Платформа PaaS позволяет исключить эти проблемы, так как приложение для нее проходит все рамки цикла разработки в единой интегрированной среде. Необходимость поддержки разных средств на разных этапах жизненного цикла в данном случае отпадает.
  5. Помимо непосредственной архитектуры поддержки жизненного цикла PaaS предоставляет услуги по организации командной работы (collaboration services). Таким образом, разработчикам не надо самостоятельно организовывать и поддерживать сервисы по контролю версий исходного кода, управлению задачами и изменениями и т. п. – все это уже есть в облаке. PaaS предоставляет возможность выделения областей ответственности разработчиков, организации ролевой модели управления, отслеживания показателей проекта и т. д.

 

2.3. Программное обеспечение как сервис (SaaS)

Третья модель обслуживания в облаке SaaS (Software as a Service – программное обеспечение как сервис) находится в нише, ранее занятой различными поставщиками сервисов бизнес-приложений и СОА-систем. В данной модели поставщик услуг самостоятельно разрабатывает приложением (сервис) и управляет им, предоставляя заказчика доступ к нему через сеть Интернет. С точки зрения пользователя, основное преимущество SaaS состоит в исключении затрат, связанных с развертыванием и поддержкой программного и аппаратного обеспечения инфраструктуры приложения.

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

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

1. Установленные в инфраструктуре сервис или приложение предназначены прежде всего для удаленного использования. 

2. Все установленные сервисы по умолчанию являются многопользовательскими.

3. Модели оплаты могут быть похожи как на IaaS (периодическая абонентская плата), так и на PaaS (на основе затраченных ресурсов облака).

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

5. Обновление и модернизация приложений происходят прозрачно для пользователей.

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

Информация о работе Технологии облачных вычислений