Автор работы: Пользователь скрыл имя, 16 Апреля 2014 в 21:44, реферат
Облачные вычисления (англ. Cloud Computing) – это концепция, возникшая в середине 2000-х гг., согласно которой создается инфраструктура «вычислительного облака», которое, инкапсулируя в себе данные, вычислительные ресурсы и другие элементы, предоставляет удаленным пользователям доступ к реализованным сервисам. При этом для доступа к ним пользователю достаточно иметь любой компьютер с установленным веб-браузером. Сама облачная инфраструктура является сложным распределенным программно-аппаратным комплексом. Нагрузка внутри такого «вычислительного облака» распределяется автоматически и внешние пользователи облака не могут точно определить, с какой частью серверов и других компонентов они взаимодействуют в процессе.
Облачные вычисления (англ. 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, интерфейс программирования приложений) облака.
Модель обслуживания облачных вычислений определяет организацию процесса предоставления услуг конечному пользователю, механизмы взаимодействия с пользователем, способы и доступные возможности использования пользователем облачной инфраструктуры провайдера. Выделяют три основные модели обслуживания облачных вычислений (рис 3):
В следующих разделах они будут рассмотрены более подробно наряду с другими малораспространенными *aaS.
Инфраструктура как сервис (Infrastructure as a Service – IaaS) предоставляет услуги по организации компьютерной и сетевой инфраструктур (обычно, в виде виртуальных машин) на основе облака. К типичным провайдерам облачных услуг такого рода относятся Amazon EC2, GoGrid, ElasticHosts и др.
Архитектура IaaS включает в себя три основных компонента:
Ключевыме особенности облачной концепции IaaS:
Логическим продолжением IaaS является PaaS (Platform as a Service – платформа как сервис). PaaS предоставляет пользователям интегрированную платформу, реализующую практически все этапы жизненного цикла приложения: начиная от разработки, через этапы тестирования и развертывания к поддержанию стабильной работы. Инфраструктура PaaS прежде всего предназначена для работы с веб-приложениями и сервисами. Основными провайдерами облачных услуг по предоставлению PaaS являются Microsoft Azure, Google App Engine и другие.
Можно выделить пять ключевых особенностей облачной инфраструктуры PaaS:
Третья модель обслуживания в облаке SaaS (Software as a Service – программное обеспечение как сервис) находится в нише, ранее занятой различными поставщиками сервисов бизнес-приложений и СОА-систем. В данной модели поставщик услуг самостоятельно разрабатывает приложением (сервис) и управляет им, предоставляя заказчика доступ к нему через сеть Интернет. С точки зрения пользователя, основное преимущество SaaS состоит в исключении затрат, связанных с развертыванием и поддержкой программного и аппаратного обеспечения инфраструктуры приложения.
Практически все решения SaaS так или иначе основаны на реализации многопользовательской модели приложения. В рамках SaaS одна версия приложения с единой конфигурацией (вне зависимости от аппаратного обеспечения, сетевой инфраструктуры и программной среды пользователя) используется всеми клиентами. В SaaS поддерживается горизонтальное масштабирование. В случае, если определенной группе клиентов необходима другая версия приложения (например, бета- или альфа-версия, или версия приложения с услугами, которые были исключены из новых версий), то для них может быть развернут отдельный сервис. Таким образом, в модели SaaS исключаются недостатки традиционного подхода работы с приложениями, который порождает множество физических копий программной системы разных версий, с разными конфигурациями, выполняемыми на широком спектре аппаратного обеспечения.
При работе в инфраструктуре SaaS выделяют следующие ключевые особенности:
1. Установленные в инфраструктуре сервис или приложение предназначены прежде всего для удаленного использования.
2. Все установленные сервисы по умолчанию являются многопользовательскими.
3. Модели оплаты могут быть похожи как на IaaS (периодическая абонентская плата), так и на PaaS (на основе затраченных ресурсов облака).
4. Поставщик услуги оказывает техническую поддержку и заказчикам, и конечным потребителям услуги (если это разные группы людей).
5. Обновление и модернизация приложений происходят прозрачно для пользователей.
Важным моментом для модели SaaS является то, что заказчики оплачивают не владение программным обеспечением как таковым, а его аренду (например, использование сервисов приложение посредством предоставляемого веб-интерфейса). Это позволяет заказчику снизить риски и затраты на приобретение программной и аппаратной инфраструктур и поддержки их работоспособности. Так как модель оплаты является периодической, то заказчик (или конечный пользователь) может временно приостановить использование сервисов, если в данный момент времени он в них не нуждается.