Практическое изучение Windows Azure
Использование, архитектура и перспективы Windows Azure
Схема использования Windows Azure изображена на рис. 38.3 .
Осенью 2008 г. Microsoft объявила о создании новой облачной операционной системы Windows Azure, предназначенной для разработки облачных приложений. Тем самым, Microsoft начала третью эру операционных систем [ 19 ] в надежде повторить успех DOS в 1980 х гг. и Windows в 1990 х. В 2010 году Windows Azure объявлена коммерческой системой. Как и традиционная ОС, Windows Azure позволяет запускать приложения и хранить данные. Но происходит это не на компьютере пользователя, а в вычислительных облаках.
Операционная система Windows Azure является частью Windows Azure Platform — группы облачных технологий для разработки ПО, которая включает следующие элементы:
- Windows Azure - обеспечивает Windows-среду для работы приложения и хранения данных в дата-центрах Microsoft.
- SQL Azure - обеспечивает работу с реляционными базами данных на основе SQL-сервера. Данные могут храниться как в облачной среде, так и на компьютерах предприятия, тем не менее, взаимодействуя с приложениями Windows Azure.
- Windows Azure Platform AppFabric - объединяет приложения, работающие как в облачной, так и в традиционной среде, обеспечивая защищенную передачу данных. Несмотря на сходство названий, понятия fabric и AppFabric —не одно и то же. Первое относится к объединению физических машин внутри облачной ОС, второе — к соединению приложений, работающих в разных средах.
Непосредственно операционная система Windows Azure также состоит из нескольких взаимосвязанных частей: Compute Service, Storage Service и Fabric.
Компонента Compute Service отвечает за вычисления. Основная цель облачной платформы состоит в том, чтобы обеспечить поддержку приложения, запускающего огромное число пользователей в одно и то же время. Windows Azure поддерживает несколько копий одного и того же кода на разных физических серверах. В свою очередь, приложение может работать сразу в нескольких версиях на нескольких виртуальных машинах, каждая из которых обеспечивается гипервизором на основе Hyper-V, модифицированным для использования в облачных вычислениях.
Существуют два типа рабочих версий облачного приложения: веб-роль (Web role) и рабочая роль (Worker role). Первая умеет обрабатывать HTTP- или HTTPS-запросы, и на ее виртуальной машине (ВМ) запущен сервер Internet Information Services (IIS). Программист имеет возможность создать версию веб-роли с помощью ASP.NET либо Windows Communication Foundation (WCF), а также воспользоваться любой другой технологией .NET, работающей с IIS. Приложение может быть создано на любом языке программирования.
Напротив, рабочая роль не предполагает запуска IIS. Она выполняет задачи в фоновом режиме. Например, веб-роль может быть применена для получения запроса от пользователя. Но его обработка будет запущена позже с помощью версии рабочей роли.
Архитектура Windows Azure изображена на рис. 38.4 .
Компонента Storage Service обеспечивает хранение данных. ОС Windows Azure поддерживает три способа работы с данными. Самый простой из них — BLOB (binary large object), содержащий бинарные данные с несложной иерархией. Этот тип организации информации предназначен для хранения изображений, аудио- и видеоинформации.
Если необходимо структурировать однотипные данные, то используются таблицы, в которых для каждой единицы информации отведена ячейка с определенным номером строки и номером столбца. Столь простая организация позволяет получать доступ к данным посредством методов ADO.NET. В таком виде облачная ОС распределяет хранение данных на несколько физических компьютеров, что более эффективно, чем при использовании реляционной базы данных.
Рассмотренные способы обеспечивают хранение данных и доступ к ним, а для их связи необходим третий способ – очередь (FIFO). Этот способ помогает разным версиям приложения обмениваться между собой сообщениями. Так связываются веб-роль и рабочая роль, поскольку синхронизация в облачной среде невозможна. Предположим, пользователь через веб-интерфейс вызывает задачу, требующую существенных вычислительных мощностей. Веб-роль записывает полученный запрос в очередь. Рабочая роль, обращаясь к этой очереди, принимает запрос и выполняет его. Результаты выполнения (ответ) передаются по тому же принципу, через очередь.
Независимо от метода организации данных, информация в Windows Azure Storage реплицируется 3 раза, что обеспечивает устойчивость системы: потеря данных в одной из копий не фатальна. Кроме того, существуют архивные копии, хранящиеся в другом дата-центре Microsoft. Это означает, что даже если весь дата-центр уничтожен, информация будет восстановлена из архивов другого центра.
Последняя составляющая ОС — Fabric — позволяет организовать набор компьютеров, на которых хранятся приложения и данные Windows Azure. Управление такой "компьютерной тканью" осуществляет программное обеспечение, называемое fabric controller.
Fabric осуществляет мониторинг всех работающих приложений, управляет взаимодействием с ОС на разных компьюьтерах и выбирает физический сервер для запуска приложения, тем самым оптимизируя использование оборудования.
Управление приложениями выполняется с помощью конфигурационных файлов, содержащих XML-описание всего, что необходимо приложению, например, нужного количества виртуальных машин с веб-ролями и рабочими ролями. Fabric controller создает эти виртуальные машины и отслеживает состояние каждой из них, чтобы при необходимости заменить вышедшую из строя или запустить ее на другом физическом сервере.
Компоненты Windows Azure позволяют строить приложения разных типов. Так, для создания масштабируемого интернет-приложения программисту достаточно употребить необходимое количество веб-ролей, сохраняя данные в таблицах. А для приложения с параллельными вычислениями потребуются веб-роль, очередь для сохранения запросов, необходимое количество рабочих ролей и таблицы (или BLOB) для хранения данных. В свою очередь, SQL Azure и AppFabric дают возможность соединить решения Windows Azure с программами и базами данных, функционирующими в рамках локальной сети или с облачными системами других провайдеров.
Приложения, созданные на основе Windows Azure, предоставляются как сервисы физическим лицам, корпоративным пользователям или и тем, и другим одновременно. Ориентировочные цены на некоторые облачные услуги Microsoft приведены в статье [ 19 ] .
Рассмотрим примеры облачных приложений, созданных с помощью Windows Azure и рассчитанных на разные типы пользователей.
Решение для корпоративных пользователей. С помощью Windows Azure независимый разработчик программного обеспечения может создавать приложения для бизнес-пользователей, применяя принципы программного обеспечения как сервиса (SaaS — Software as a Service).
Примером может послужить решение, разработанное американской компанией Alinean, Inc. Ее сфера деятельности — предоставление по запросу аналитических средств в области анализа продаж и маркетинга. Системы Alinean позволяют оценить потребности и возможности бизнеса в будущем, предложить решение для наращивания мощностей и подсчитать, когда начнут окупаться инвестиции. Пользователями Alinean являются корпоративные клиенты, находящиеся в разных уголках земного шара. Среди них IBM, HP, Microsoft, Intel, AT&T, VMware, Oracle, Siemens, Symantec и др. В дата-центре Alinean, находящемся в Орландо (Флорида, США), сервис по запросу предоставляли 20 серверов, работающих 24 часа в сутки семь дней в неделю. Объем бизнеса рос, и мощностей стало не хватать, да и содержание внутреннего ЦОД становилось все дороже.
Поэтому было принято решение перенести разработанное ранее программное обеспечение под крышу Windows Azure. В результате потребовалось 28 виртуальных серверов с Azure и 20 SQL Azure (по 10 Гбайт каждый). Благодаря этому, Alinean удалось добиться сокращения затрат по обслуживанию на 60% по сравнению с предыдущей, традиционной моделью. Кроме того, руководство оценивает в 160% отношение среднего увеличения прибыли к объему инвестиций (ROI — Return On Investment) в Windows Azure по сравнению с вложениями в прежнюю конфигурацию (100%)
Решение для физических лиц. Благодаря масштабируемости Windows Azure позволяет вести учет огромного количества пользователей. Создавая облачное решение, компания-разработчик может рассчитывать не только на корпорации, но и на физических лиц.
Такое приложение было сделано новозеландской компанией TicketDirect International, которая, работая в онлайновом режиме, осуществляет 45?% всех продаж билетов на культурные и спортивные мероприятия Новой Зеландии. Предыдущая, традиционная, система продажи билетов, функционировавшая на базе Microsoft SQL Server 7 и SQL Server 2000, была написана на Visual Basic 6. Приложение обслуживало несколько сотен продаж в течение часа. Но в дни распродаж, когда объявлялась скидка на посещение популярного мероприятия, в систему пытались войти тысячи людей. Не удивительно, что компьютерный центр продавца билетов не выдерживал такого наплыва пользователей.
Windows Azure предоставила TicketDirect масштабируемую инфраструктуру как сервис с возможностью оплаты по факту. В результате в момент распродаж приложение начинает использовать дополнительные мощности. Теперь компании TicketDirect не потребуется закупать оборудование только для того, чтобы покрыть временные всплески активности. Ограничений практически не существует. В облаках компания способна обслужить несколько популярных мероприятий, начинающих свои распродажи в одну и ту же минуту. Windows Azure предоставит любые мощности, необходимые для бизнеса, исследований, обучения.
Внутреннее решение. В среде Windows Azure могут быть созданы внутренние приложения, пользователями которых являются работники данного предприятия. В этом случае масштабируемость не столь важна.
В качестве примера приведем саму компанию Microsof - ее отдел информационных технологий, где нашла свое применение Windows Azure. В рамках ежегодной благотворительной кампании ИТ-отдел проводит онлайн-аукцион в пользу благотворительной организации United Way. Прежде оборудование и ПО для него поддерживались круглый год, в то время как мероприятие проводилось в течение одного месяца всего лишь раз в году. Кроме того, в самом конце аукциона обычно возникала еще одна проблема, с которой сталкивались технические работники. Каждый раз в это время наблюдался всплеск активности, и система оказывалась перегруженной.
Отдел ИТ принял решение мигрировать в вычислительные облака. Были использованы Windows Azure и Microsoft SQL Azure для хранения данных. Теперь в последние дни аукциона ИТ-команда программирует систему на использование большего количества ресурсов, чтобы обслужить увеличивающийся поток запросов. Когда аукцион заканчивается, мощности сокращаются соответственно нагрузке. Облачная модель готова обслужить столько пользователей, сколько необходимо. Внутри огромной компании, которой является Microsoft, система теперь позволяет собрать больше средств, идущих на благотворительность.
Приведенные примеры иллюстрируют возможности создания систем по запросу. Но для того чтобы поработать в среде Windows Azure, не обязательно программировать свое собственное приложение. Сейчас каждый из нас сумеет протестировать облачную ОС Microsoft в действии. На базе Windows Azure в рамках "живой", работающей системы Windows Live [ 20 ] доступны офисные приложения по запросу. Windows Live позволяет создавать документы в форматах Word, Excel и PowerPoint и хранить их на виртуальном диске, в облаках. Любопытно, что система дает возможность открыть онлайн-документ на ПК с помощью традиционного ПО Microsoft.
В будущем Windows Azure выйдет за пределы дата-центров ее разработчика и будет устанавливаться в стенах других корпораций. Microsoft объявила о предстоящем взаимодействии с такими компаниями, как Dell, HP и eBay. Последняя планирует использовать облачное решение на основе Windows Azure, благодаря чему абоненты смогут участвовать в привычном аукционе eBay, используя iPad.
По словам Стива Балмера, наступил один из важнейших моментов компьютерной эры. "Все понимают, что облачные вычисления чрезвычайно выгодны, и это открывает большие возможности…"