Основные концепции и архитектура Microsoft Windows Azure
Цель лекции: Ознакомление с архитектурой Microsoft Windows Azure.
Презентацию к данной лекции Вы можете скачать здесь.
3.1. Введение
Данная лекция знакомит с основными концепциями и основами архитектуры Windows Azure.
Windows Azure – облачная платформа, разработанная фирмой Microsoft (по существу, операционная система и набор инструментов "в облаке"). На рис. 3.1 иллюстрируется роль Windows Azure в организации использования облачных сервисов, предоставляемых центром обработки данных Microsoft, фирмами и индивидуальными заказчиками.
Важно подчеркнуть, что Windows Azure обеспечивает хранение, использование и модификацию данных и запуск программ только на компьютерах центров обработки данных Microsoft. Никакого программного обеспечения, кроме веб-браузера, на пользовательских компьютерах не требуется.
На рис. 3.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.
На рис. 3.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.
На рис. 3.4 изображена структура сервисов .NET как основы для реализации Windows Azure. Как уже говорилось, вся реализация Windows Azure основана на надежной и безопасной платформе .NET, исполнение программ в которой обеспечивается в особом безопасном режиме (managed execution – управляемое выполнение). Часть .NET, называемая Windows Communication Foundation (WCF) и предоставляемый ею механизм сервисов и является основой реализации платформы Windows Azure. Облачными сервисами управляют две компоненты – управление доступом (access control) и сервисная шина (service bus), которые подробно рассмотрены в следующих лекциях данного курса.
Перспективы облачных вычислений в Windows Azure, несмотря на их критику и пока осторожное отношение к ним, очень велики, так как облачные вычисления позволяют получить доступ к мощным вычислительным возможностям и данным большого объема практически с любых пользовательских компьютеров (в том числе – карманных, мобильных устройств и т.д.), имеющих веб-браузер.
Кроме того, платформа .NET обеспечивает высокую надежность и безопасность приложений, благодаря исполнению в режиме managed execution. Microsoft Azure Services Platform - это платформа фирмы Microsoft для разработки и использования облачных сервисов на базе Microsoft.NET.Подробнее вопросы архитектуры .NET и Web-сервисов в .NET рассмотрены в следующей лекции (см. "Базовые технологии, использованные для реализации Microsoft Windows Azure" ).