Основы современных операционных систем

ОС для облачных вычислений (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, фирмами и индивидуальными заказчиками.

    (рис 31.1) Windows Azure, пользователи и центры обработки данных

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

    На рис 31.2 изображена схема организации работы пользователя в Windows Azure.

    (рис 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.

    (рис 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),детальное рассмотрение которых выходит за рамки данного курса.

    (рис 31.4)

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

    Ключевые термины

    Microsoft Azure Services Platform - платформа фирмы Microsoft для разработки и использования облачных сервисов на базе Microsoft.NET.

    Microsoft Windows Azure - операционная система и набор инструментов фирмы Microsoft, обеспечивающий поддержку облачных вычислений ("ОC в облаке").

    SQL Azure – версия СУБД Microsoft SQL Server для использования "в облаке".

    Агент интерфейса (fabric agent) – агентское приложение, исполняемое на каждом из компьютеров сервиса Интерфейс (Fabric) платформы Windows Azure.

    Архитектор облака – главный разработчик его архитектуры.

    Внутренние приложения (on-premises applications) – приложения, исполняемые на локальном компьютере пользователя.

    Вычисления (Compute) – облачный сервис платформы Microsoft Windows Azure, исполняющий пользовательские приложения в едином облаке.

    Интегратор облака – его системный администратор, отвечающий за добавление компонент в облако и их изменение.

    Интерфейс (внешний облик, Fabric) - облачный сервис платформы Microsoft Windows Azure, обеспечивающий интерфейс между различными облачными приложениями и между приложениями и памятью; реализован в виде группы компьютеров.

    Контроллер интерфейса (fabric controller) – программное обеспечение, управляющее работой облачного сервиса Интерфейс (Fabric) платформы Windows Azure.

    Облачные вычисления (сloud computing) –. вычисления, основанные на масштабированных и виртуализованных ресурсах (данных и программах), которые доступны пользователям через Интернет и реализуются на базе мощных центров обработки данных (data centers).

    Облачные приложения (cloud applications) – приложения, фактически исполняемые в среде облачных вычислений (например, Windows Azure) на компьютерах центра обработки данных.

    Память (Storage) - облачный сервис платформы Microsoft Windows Azure, предоставляющий пользователю средства работы с данными различной структуры – большими бинарными объектами, таблицами и очередями.

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

    Поставщик облака - центр обработки данных, поддерживающий облачные вычисления.

    Сервисная шина (service bus) – компонента платформы Microsoft Azure Services Platform.

    Управление доступом (access control) – компонента платформы Microsoft Azure Services Platform.

    Уровень инфраструктуры – предоставление полной виртуализованной платформы через облако, например, Amazon EC2.

    Уровень клиента – клиентское ПО, используемое для доступа к облачным сервисам, например, web- браузер.

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

    Уровень платформы –программная платформа, объединяющая полный набор инструментов для развертывания и использования облачных вычислений на пользовательском компьютере (без дополнительных инсталляций, покупки оборудования и др.); пример: Microsoft.NET Azure Services Platform.

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

    Уровень сервисов – облачные сервисы, используемые через облачную модель.

    Центр обработки данных (ЦОД, data center) – мощный вычислительный центр, состоящий из компьютеров, объединенных в локальную сеть, обслуживающих сервисы облачных вычислений некоторой компании.

    Краткие итоги

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

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

    Недостаток облачных вычислений – полная зависимость пользователя от облака (в котором хранятся не только программы, но и его данные).

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

    Элементы концепции облачных вычислений: инфраструктура как сервис, платформа как сервис, программное обеспечение как сервис.

    Уровни компонент облачных вычислений: уровень клиента, уровень приложений, уровень сервисов, уровень платформы, уровень памяти (данных), уровень инфраструктуры.

    Архитектура облачных вычислений: сервисы, инфраструктура, платформа, память.

    Роли разработчиков и клиентов в облачных вычислениях: архитектор облака, интегратор облака, поставщик облака, пользователи облака, производитель оборудования.

    Стандарты, используемые в облачных вычислениях, - коммуникация приложений на основе протоколов HTTP и XMPP (протокол обмена мгновенными сообщениями); HTML 5 – специальная версия HTML для облачных вычислений; AJAX – технология для оптимизации обращений к веб-страницам путем минимизации числа перенаправлений; OMF – стандарт виртуализации данных; передача данных в формате XML.

    Windows Azure – операционная система и платформа фирмы Microsoft для облачных вычислений, наиболее развитая и распространенная среди всех облачных платформ. Ее реализация основана на платформе .NET и Windows Communication Foundation (WCF) и предоставляемых ею сервисах. Компоненты (сервисы) Windows Azure – Интерфейс (Fabric), Вычисления (Compute) и Память (Storage). Обеспечивается доступ к SQL Azure – облачной версии Microsoft SQL Server. Облачные сервисы .NET функционируют на основе двух объединяющих компонент – управления доступом и облачной шины.

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

    Набор для практики

    Вопросы

  • Что такое облачные вычисления?
  • Что понимается в облачных вычислений под "облаком"?
  • Что такое центр обработки данных?
  • Каковы элементы концепции облачных вычислений?
  • Какие уровни выделяются при организации облачных вычислений?
  • Что такое уровень клиента?
  • Что такое уровень сервисов?
  • Что такое уровень приложений?
  • Что такое уровень платформы?
  • Что такое уровень памяти?
  • Что такое уровень инфраструктуры?
  • Каковы роли клиентов и реализаторов в облачных вычислениях?
  • Какие стандарты используются в облачных вычислениях?
  • Что такое Microsoft Windows Azure?
  • Из каких основных компонент состоит Microsoft Windows Azure?
  • На какой платформе основана реализация Microsoft Windows Azure?
  • Упражнения

  • Сформулируйте, в чем, по-Вашему, преимущества и недостатки облачных вычислений.
  • Поэкспериментируйте с какой-либо общедоступной системой облачных вычислений, например, Amazon EC2
  • Какие из современных платформ разработки программ, по-Вашему, наиболее подходят для реализации облачных вычислений?
  • Темы для курсовых работ, рефератов, эссе

  • Обзор концепции и реализаций облачных вычислений (реферат).
  • Облачная платформа Microsoft Windows Azure (реферат).
  • Эксперименты с какой-либо общедоступной системой облачных вычислений, например, Amazon EC2 или Microsoft Windows Azure (курсовая работа – требуется академический доступ к Microsoft Windows Azure)
  • Вернуться к учебному плану