ОС для облачных вычислений (cloud computing). Windows Azure
Презентацию к данной лекции Вы можете скачать здесь.
Введение
Понятие облака (cloud) уже давно ассоциируется с метафорическим изображением Интернета, с помощью которого доступны некоторые сервисы. Облачные вычисления (сloud computing) – это практическая реализация данной идеи. Облачные вычисления основаны на масштабированных и виртуализованных ресурсах (данных и программах), которые доступны пользователям через Интернет и реализуются на базе мощных центров обработки данных (data centers).
С пользовательской точки зрения, имеются доступные "облака", предоставляемые различными компаниями, которые можно использовать для доступа к мощным вычислительным ресурсам, отсутствующим у пользователя (который может работать, например, на нетбуке). Пользователь платит абонентскую плату за использование облачных сервисов какой-либо фирмы.
Недостатком данного подхода является полная зависимость пользователя от используемого им облака, так как через облако доступны не только программы, но и данные самого пользователя. Возникает много вопросов относительно безопасности данных пользователя, хранимых в облаке.
Из облачных платформ наиболее популярной является Microsoft Windows Azure - операционная система с поддержкой облачных вычислений - и Microsoft Azure Services Platform - платформа для разработки и использования облачных сервисов на базе Microsoft.NET.
В настоящее время многие крупные компании – Microsoft, Google, IBM, Oracle/Sun, Amazon и многие более мелкие фирмы, конкурируя друг с другом, заняты разработкой своих облачных сервисов и инструментов для их создания. Имеется тенденция к интеграции "корпоративных облаков" в единое доступное пользователю облако.
Элементы концепции и архитектуры облачных вычислений
Элементами концепции облачных вычислений являются: инфраструктура как сервис, платформа как сервис, программное обеспечение как сервис, а также бизнес-приложения доступные через Интернет. Иными словами, организация облачных вычислений коренным образом меняет архитектуру системы: в ней необходимо представить все возможности обработки данных, использования программ настройки и т.д. как облачные сервисы.
Различаются следующие уровни архитектуры облачных вычислений.
Уровень клиента – это клиентское ПО, используемое для доступа к облачным сервисам, например, web- браузер.
Уровень сервисов – это сами сервисы, используемые через облачную модель.
Уровень приложений – это программы, доступные через облако и не требующие инсталляции на компьютере пользователя (в последнем – одно из главных преимуществ облачной модели).
Уровень платформы – это программная платформа, объединяющая полный набор инструментов для развертывания и использования облачных вычислений на пользовательском компьютере (без дополнительных инсталляций, покупки оборудования и др.). Пример такой платформы: Microsoft.NET Azure Services Platform.
Уровень памяти – поддержка хранения данных пользователя и доступа к ним через облако.
Уровень инфраструктуры – предоставление полной виртуализованной платформы через облако, например, Amazon EC2.
Рассмотрим схему архитектуры облачных вычислений:
- Сервисы, доступные через облако
- Инфраструктура для их развертывания и использования
- Платформа – набор инструментов для использования облака
- Память – поддержка хранения пользовательских данных в ЦОД, реализующем облако
- Архитектор облака – это главный разработчик его архитектуры.
- Интегратор облака – это его системный администратор, отвечающий за добавление компонент в облако и их изменение.
- Компоненты облака – как правило, являются Web-сервисами.
Облако может быть общедоступным или частным (корпоративным).
При использовании облачных вычислений несколько изменяются и роли участвующих в них специалистов.
Поставщиком облака является центр обработки данных.
Пользователями облака могут быть любые пользователи Интернета.
Производитель оборудования или ПО – это компания, обеспечивающая разработку аппаратуры и программного обеспечения для центра обработки данных.
Модель облачных вычислений основана на соблюдении целого ряда стандартов.
Для взаимодействия приложений используются стандарты HTTP (основной Web-протокол), XMPP (Jabber) – стандарт для отправки и получения мгновенных сообщений, SSL (Secure Socket Layer)– уровень безопасных сокетных сетевых соединений.
Для работы клиентов в облаке используются Web-браузеры (с активным использованием технологии AJAX, позволяющей уменьшить число перенаправлений с одной веб-страницы на другую и, тем самым, время доступа пользователя к необходимой ему информации) и offline-клиенты, работа которых основана на HTML 5 (специальной версии HTML для облачных вычислений).
Для реализации облака используются принципы виртуализации программ и данных и стандарт OMF.
Для взаимодействия с сервисами данные передаются в формате XML.
Windows Azure
Windows Azure – облачная платформа, разработанная фирмой Microsoft (по существу, операционная система и набор инструментов "в облаке"). На рис. 31.1 иллюстрируется роль Windows Azure в организации использования облачных сервисов, предоставляемых центром обработки данных Microsoft, фирмами и индивидуальными заказчиками.
Важно подчеркнуть, что Windows Azure обеспечивает хранение, использование и модификацию данных и запуск программ только на компьютерах центров обработки данных Microsoft. Никакого программного обеспечения, кроме веб-браузера, на пользовательских компьютерах не требуется.
На рис. 31.2 изображена схема организации работы пользователя в Windows Azure.
С точки зрения пользователя, существуют две категории приложений – внутренние (on-premises applications),исполняемые на компьютере пользователя, и облачные (cloud applications),фактически исполняемые в среде Windows Azure на компьютерах центра обработки данных. На пользовательском компьютере могут быть установлены ОС Windows и, возможно, другие ОС. Независимо от этого, через Web-браузер пользователь получает доступ к "Windows в облаке" – Windows Azure. Функционирование Windows Azure основано на Web-сервисах .NET. Windows Azure для хранения данных обеспечивает доступ к аналогу СУБД Microsoft SQL Server "в облаке" – SQL Azure.
На рис. 31.3 изображены основные компоненты Windows Azure.
Основные компоненты Windows Azure – внешний облик, интерфейс (fabric, дословно – одежда), вычисления (Compute), память (Storage) и конфигурация (config).Все компоненты – вычисления, память и интерфейс – являются web-сервисами .NET. Сервис вычисления выполняет пользовательские облачные приложения, сервис память хранит пользовательские данные, сервис интерфейс обеспечивает общие средства управления приложениями, использующими облачную платформу.
Основная проблема, решаемая сервисом вычисления, - исполнение огромного числа (возможно, миллионов) пользовательских приложений самого разного вида и назначения в едином облаке. Иначе говоря, основная проблема сервиса вычисления и облачных вычислений в целом – масштабирование. Данная проблема решается путем выполнения каждого экземпляра пользовательского облачного приложения в своей отдельной виртуальной машине. Данные виртуальные машины исполняются в среде 64-битовой ОС Windows 2008 Server - наиболее мощной серверной ОС фирмы Microsoft.
Сервис память предоставляет пользователю средства работы с данными различной структуры – большими бинарными объектами (blobs),размером до 50 Гб, хранящимися в контейнерах, таблицами (tables) и очередями (queues).Работа со структурами данных реализована на основе ADO.NET – библиотеками поддержки обработки структурированных данных в .NET.
Сервис интерфейс реализован как большая группа машин, на каждой из которых работает приложение – агент интерфейса (fabric agent).Сервис интерфейс в целом управляется программным обеспечением. называемым контроллер интерфейса (fabric controller).Контроллер интерфейса взаимодействует с агентами интерфейса, а также с сервисом память как с обычными приложениями (поэтому детали представления данных от контроллера интерфейса скрыты). Контроллер интерфейса управляет каждым облачным приложением с помощью конфигурационного файла в формате XML.
На рис. 31.4 изображена структура сервисов .NET как основы для реализации Windows Azure. Как уже говорилось, вся реализация Windows Azure основана на надежной и безопасной платформе .NET, исполнение программ в которой обеспечивается в особом безопасном режиме ( managed execution – управляемое выполнение). Часть .NET, называемая Windows Communication Foundation (WCF) и предоставляемый ею механизм сервисов и является основой реализации платформы Windows Azure. Облачными сервисами управляют две компоненты – управление доступом (access control) и сервисная шина (service bus),детальное рассмотрение которых выходит за рамки данного курса.
Перспективы облачных вычислений, несмотря на их критику и пока осторожное отношение к ним, очень велики, так как облачные вычисления позволяют получить доступ к мощным вычислительным возможностям и данным большого объема практически с любых пользовательских компьютеров (в том числе – карманных, мобильных устройств и т.д.), имеющих веб-браузер.