Windows Azure – это платформа, предоставляющая в распоряжение разработчиков набор вычислительных сервисов, сервисов хранения данных (SQL Azure), а также средства для решения интеграционных, инфраструктурных задач и обеспечения безопасности (Windows Azure AppFabric, Azure Connect, CDN). В конце 2010 года на конференции для разработчиков Microsoft Professional Developers Conference было объявлено о ряде расширений платформы Azure, позволяющих, в частности, запускать в облаке виртуальные машины и решать интеграционные и коммуникационные задачи.

 

Новые конфигурации ролей

Разработчикам в Windows Azure предлагается два типа ролей (рис. 1) – web role для выполнения кода под управлением сервера Internet Information Services и прикладная роль (worker role) для выполнения кода, не требующего сервера. На уровне облачной операционной системы (Azure Fabric Controller) для каждой роли выделяется виртуальная машина заданного размера, которая создается при развертывании прикладных сервисов.

 

Рис. 1. Прикладные и Web-роли

 

 

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

 

Рис. 2. Центры обработки данных Microsoft

 

 

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

 

Таблица 1. Типы виртуальных машин

 

 

Каждая следующая конфигурация имеет вдвое больше ресурсов, чем предыдущая, что облегчает создание и управление виртуальными машинами на уровне гипервизора. Недавно появилась «ультрамалая» (Extra Small VM) конфигурация: частота процессора 1 ГГц, одно ядро, память 768 Мбайт, которую могут использовать разработчики для небольших задач, например для создания прототипов, тестирования приложений или изучения возможностей платформы.

 

Virtual Machine Role

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

Основное назначение VM-роли — обеспечение миграции существующих решений в облачную инфраструктуру (поддерживаются образы задач, созданные на основе Windows Server 2008 R2 Enterprise Edition). По сравнению с возможностью миграции отдельных компонентов приложений (сервисов, хранилища и т.п.) данная роль позволяет переносить приложения целиком и снижает стоимость владения ими за счет предоставления таких сервисов, как автоматическое управление, обновление и отказоустойчивость.

Несмотря на то что VM-роль — это фактически виртуальная машина, работающая в облаке, у нее есть ряд ограничений, например для обеспечения соответствующего уровня доступности требуется наличие двух одинаковых экземпляров виртуальной машины. Кроме того, не поддерживается сохранение образов при аппаратных сбоях, а каждый сервис может иметь только один внешний IP-адрес. Помимо этого, Windows Azure не управляет образами — они создаются самими потребителями сервисов. Не поддерживается автоматический мониторинг приложений, работающих внутри виртуальной машины, хотя большинство автоматических функций управления поддерживается на уровне виртуальной машины.

В ближайших версиях планируется реализовать возможность создания образов виртуальных машин для роли Virtual Machine Role непосредственно в облаке и обеспечить поддержку работы в виртуальных машинах операционных систем Windows Server 2003 и Windows Server 2008 R2.

Говоря о поддержке виртуализации, следует также отметить объявленные планы по осуществлению виртуализации серверных приложений (Server Application Virtualization) – функциональности, позволяющей создавать копируемые образы приложений для их последующего запуска в облаке без какого-либо дополнительного развертывания. Данный механизм является следующим шагом в технологиях управления центрами обработки данных и будет поддерживаться на уровне следующей версии System Center как для частных, так и для публичных облаков.

 

Поддержка виртуальных частных сетей

Azure Connect — инфраструктурный сервис, обеспечивающий безопасные VPN-соединения на платформе Windows Azure. Менеджер управления сервисами Azure Connect работает параллельно с Windows Azure Fabric Controller и создает выделенное, стандартное TCP/IP-«перекрытие» поверх существующей инфраструктуры. Все ресурсы, ассоциированные с экземпляром Azure Conenct, логически размещаются внутри этого «перекрытия», чем обеспечивается виртуальная частная сеть, позволяющая пользователям обращаться к локальным, сетевым и облачным ресурсам так, как будто они являются частью единой инфраструктуры.

 

Передача контента

Сеть распределения контента (Windows Azure Content Delivery Network, CDN) предоставляет в распоряжение разработчиков средства доставки контента, требующего высокой пропускной способности. Сеть CDN реализована на узлах, располагаемых в США, Европе, Азии, Австралии, Южной Америке и России. Сеть кэширует бинарные объекты, хранящиеся на уровне платформы Windows Azure, для того, чтобы обеспечить максимальную пропускную способность по доставке контента распределенным пользователям. Поддержка сети распределения контента может быть включена для любой учетной записи Windows Azure Storage. Преимущества использования CDN появляются в тех случаях, когда пользователи находятся «далеко» от контента, хранящегося на уровне платформы Windows Azure. При включении поддержки CDN для учетной записи портал Windows Azure предоставляет специальное имя домена, которое может использоваться для доступа к бинарным объектам в общедоступном контейнере. Среди новинок для CDN можно отметить поддержку динамического кэширования содержимого и доставку содержимого CDN по протоколу HTTPS.

 

AppFabric

Windows Azure AppFabric — это набор сервисов для разработчиков, которые могут использоваться для создания коммуникационных приложений, работающих как в облачной среде, так и в инфраструктуре заказчика. Это относится к приложениям, работающим на платформе Windows Azure, Windows Server, а также других платформах, включая Java, Ruby и PHP. Сейчас AppFabric предоставляет два сервиса: AppFabric Service Bus и AppFabric Access Control.

Сервис AppFabric Service Bus обеспечивает безопасные коммуникации между сервисами и приложениями и позволяет обращаться к сервисам, находящимся за сетевыми экранами, границами сети и поддерживает большое число коммуникационных протоколов. Сервисы, зарегистрированные средствами Service Bus, доступны практически в любой сетевой топологии. Сервис AppFabric Access Control специально создан для обеспечения безопасности облачных вычислений и отвечает за безопасность процедуры предоставления сервисов, используя для этого механизмы федеративной авторизации и обработку запросов на основе декларативных правил. В Access Control поддерживаются стандартные механизмы аутентификации, включая Windows Live ID и доступ к корпоративным справочникам на основе Active Directory. Сервис базируется на Windows Identity Foundation.

 

Рис. 3. Компоненты Windows Azure AppFabric

 

В рамках расширения функциональности Windows Azure AppFabric планируется выпуск ряда дополнительных компонентов.

Кэширование (Caching) – использование распределенного, располагаемого в памяти кэша для Windows Azure и SQL Azure. Поддерживается интеграция с приложениями на ASP.NET. Кэширование позволяет обеспечить высокую доступность приложений и данных за счет динамического изменения размера кэша. Одним из примеров использования механизмов кэширования может быть ускорение работы ASP.NET-приложений, выполняющихся на платформе Windows Azure, – в этом случае не требуется внесения изменений в код приложения, только подключение соответствующего провайдера в конфигурационном файле приложения. Другой пример – сокращение времени доступа к данным, находящимся в сервисах хранения Windows Azure или SQL Azure.

Интеграция (Integration) – реализация основных механизмов BizTalk Server на платформе поддержки Windows Azure, включая Business Activity Monitoring (BAM), правила, Trading Partner Management (TPM) и т. п. Примеры использования интеграционных механизмов: интеграция между приложениями, работающими на платформе Windows Azure, и SaaS-приложениями сторонних производителей, расширения Service Bus для обеспечения интеграции существующих бизнес-приложений и баз данных.

Композитные приложения (Composite Applications) – сервис, позволяющий разворачивать, управлять и выполнять композитные приложения, созданные на. NET с использованием Windows Communication Foundation (WCD Data Services, WCF RIA Services) и Windows Workflow Foundation. Сервисы композитных приложений применяются для автоматизации развертывания и управления композитными приложениями, состоящими из сервисов на платформе Windows Azure, сервисов сторонних разработчиков, а также компонентов промежуточного ПО.

 

Поддержка композитных приложений

Поддержка композитных, составных приложений реализована на уровне среды моделирования (AppFabric Composition Model) и представляет собой набор расширений для. NET Framework, позволяющих создавать составные приложения на основе модели Azure Service Model и дизайнера для Visual Studio, с помощью которого можно в единую логическую сущность собирать приложения из уже имеющихся компонентов и облачных сервисов. Контейнер (AppFabric Container) представляет собой оптимизированную для облака среду выполнения, которая использует модель Composition Model для развертывания и управления составными приложениями, а AppFabric Connect обеспечивает интеграцию с существующими бизнес-приложениями через AppFabric Service Bus. Набор расширений для BizTalk Server позволяет создавать гибридные, композитные бизнес-приложения, упрощая переход в облачную среду. Можно выделить следующие компоненты поддержки композитных приложений:

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

 

***

Объявленные расширения и обновления для Windows Azure свидетельствуют о серьезности намерений корпорации Microsoft по созданию облачной платформы, позволяющей реализовать множество актуальных для большинства разработчиков сценариев, а также упрощающей переход от традиционной модели создания приложений к моделям, работающим в виде сервисов в облаке, сохраняя при этом существующие наработки.

Алексей Федоров ( alexeif@microsoft.com ) – советник по партнерской стратегии департамента стратегических технологий российского представительства Microsoft (Москва)