Поначалу казалось, что попытки Google предоставить офисные приложения по запросу, начатые еще в 2005 г., не имели никакого отношения к рынку привычного программного обеспечения, устанавливаемого на настольный компьютер. Однако Google Apps и Google Docs, а также облачные услуги от других провайдеров получали все большее распространение, оттягивая часть клиентов традиционного ПО. Оказалось, что несложно обходиться без парка компьютеров и покупки лицензий на офисные приложения. Анализ объема продаж Microsoft не мог не показать эту тенденцию, а значит, выбора не оставалось.
Несмотря на то что рынок был занят такими игроками, как Sun Microsystems, IBM, Amazon, Salesforce, осенью 2008 г. Microsoft объявила о создании новой облачной операционной системы Windows Azure, предназначенной для разработки облачных приложений. В тот момент многим казалось, что корпорация все-таки опоздала со вступлением на рынок и что технологии вычислительных облаков нанесли удар в самое сердце ее монополии в программном обеспечении. Тем не менее Microsoft начала третью эру операционных систем в надежде повторить успех DOS в 1980‑х гг. и Windows в 1990‑х. В текущем году 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. Она выполняет задачи в фоновом режиме. Например, веб-роль может быть применена для получения запроса от пользователя. Но его обработка будет запущена позже с помощью версии рабочей роли.
Storage Service обеспечивает хранение данных. ОС Windows Azure поддерживает три способа работы с данными. Самый простой из них — BLOB, содержащий бинарные данные с несложной иерархией. Этот тип организации информации предназначен для хранения изображений, аудио и видео, т. е. для использования больших объемов.
Когда необходимо структурировать однотипные данные, то прибегают к таблицам, где для каждой единицы информации существуют номер строки и номер колонки. Таблица в Storage Service не является реляционной. Ее простая организация позволяет получать доступ к данным посредством методов ADO.NET. В таком виде облачная ОС распределяет хранение данных на несколько физических компьютеров, что более эффективно, чем при использовании реляционной базы данных.
Рассмотренные способы обеспечивают хранение данных и доступ к ним, а для их связи необходим третий способ, называемый «очередь». Принцип организации данных в очередь основывается на следующем: «Первый пришел — первый вышел». Этот способ помогает разным версиям приложения обмениваться между собой сообщениями. Так связываются веб-роль и рабочая роль, поскольку синхронизация в облачной среде невозможна. Предположим, пользователь через веб-интерфейс вызывает задачу, требующую существенных вычислительных мощностей. Веб-роль записывает полученный запрос в очередь. Рабочая роль, обращаясь к этой очереди, принимает запрос и выполняет его. Результаты выполнения (ответ) передаются по тому же принципу, через очередь.
Независимо от метода организации данных, информация в 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:
- Вычислительные мощности — 0,12 долл./ч;
- Хранилище данных в месяц — 0,15 долл./Гбайт;
- Транзакции данных — 0,01 долл./10 Kбайт
- Загрузка данных — 0,10 долл./Гбайт
- Cкачивание данных — 0,15 долл./Гбайт
Рассмотрим примеры облачных приложений, созданных с помощью 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 могут быть созданы внутренние приложения, пользователями которых являются работники данного предприятия. В этом случае масштабируемость, пожалуй, не так важна. Но всплески активности случаются и внутри компании — тогда трудно переоценить преимущества вычислений в облаках даже в стенах предприятия.
В качестве примера приведем саму компанию Microsoft, вернее, ее отдел информационных технологий, где нашла свое применение Windows Azure. В рамках ежегодной благотворительной кампании ИТ-отдел проводит онлайн-аукцион в пользу благотворительной организации United Way. Прежде оборудование и ПО для него поддерживались круглый год, в то время как мероприятие проводилось в течение одного месяца всего лишь раз в году. Кроме того, в самом конце аукциона обычно возникала еще одна проблема, с которой сталкивались технические работники. Каждый раз в это время наблюдался всплеск активности, и система оказывалась перегруженной.
Отдел ИТ принял решение мигрировать в вычислительные облака. Были задействованы Windows Azure и Microsoft SQL Azure для хранения данных. Теперь в последние дни аукциона ИТ-команда программирует систему на использование большего количества ресурсов, чтобы обслужить увеличивающийся поток запросов. Когда аукцион заканчивается, мощности сокращаются соответственно нагрузке. Облачная модель готова обслужить столько пользователей, сколько необходимо. Внутри огромной компании, которой является Microsoft, система теперь позволяет собрать больше средств, идущих на благотворительность.
Приведенные примеры говорят о создании систем по запросу. Но для того чтобы поработать в среде Windows Azure, не обязательно программировать свое собственное приложение. Сейчас каждый из нас сумеет протестировать облачную ОС Microsoft в действии. На базе Windows Azure в рамках «живой», работающей системы Windows Live доступны офисные приложения по запросу. Windows Live позволяет создавать документы в форматах Word, Excel и PowerPoint и хранить их на виртуальном диске, в облаках. Любопытно, что система дает возможность открыть онлайн-документ на ПК с помощью традиционного ПО Microsoft.
В будущем Windows Azure выйдет за пределы дата-центров ее разработчика и будет устанавливаться в стенах других корпораций. Microsoft объявила о предстоящем взаимодействии с такими компаниями, как Dell, HP и eBay. Последняя планирует использовать облачное решение на основе Windows Azure, благодаря чему абоненты смогут участвовать в привычном аукционе eBay, используя iPad.
По словам Стива Балмера, наступил один из важнейших моментов компьютерной эры. «Все понимают, что облачные вычисления чрезвычайно выгодны, и это открывает большие возможности…»