Приложение 2. Windows Azure для компаний-разработчиков

При обсуждении новой, парадигмы облачных вычислений и возможностей платформы Microsoft Windows Azure у компаний, разрабатывающих программное обеспечение, часто возникают вопросы, ответы на которые вы найдете в данном разделе:

  • Как использование платформы Windows Azure может улучшить приложения?
  • Следует ли переносить на Windows Azure приложения целиком или стоит подумать над созданием т.н. «гибридных приложений»?
  • Каковы преимущества использования облачных хранилищ и каковы типовые сценарии их использования?
  • Каковы преимущества использования облачных вычислений и каковы типовые сценарии их использования?
  • Следует ли создавать приложения в архитектуре SaaS и какие шаги следует предпринять в этом направлении?

Преимущества от использования платформы Windows Azure

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

Преимущества от использования облачного хранилища

При обсуждении возможных вариантов использования облачного хранилища на базе платформы Windows Azure часто возникают следующие типовые вопросы:

  • Будет ли хранение данных в облаке более экономичным?
  • Следует ли хранить данные в виде неструктурированных бинарных объектов или в реляционных структурах?
  • Будет ли предоставление данных из облака более эффективным?
  • Можно ли использовать одно и то же хранилище из нескольких копий приложения?

Рис. 38. Использование облачного хранилища

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

  • Windows Azure Blobs — хранилище бинарных объектов. Бинарные объекты могут достигать размера до 1 Тб.
  • SQL Azure Database — реляционная база данных. За счет того, что SQL Azure базируется на SQL Server, доступ к такому хранилищу может быть достаточно просто организован даже из существующих приложений.

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

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

  • Приложение может хранить резервные данные в бинарных объектах в Windows Azure. Такой подход может быть более экономичным и надежным по сравнению с хранением резервных данных непосредственно в инфраструктуре заказчика.
  • Приложения, которые хранят и доставляют пользователям большие объемы неструктурированных данных, например видео, могут хранить эти данные в бинарных объектах в Windows Azure. Как и в случае с резервными данными, такой подход может быть более экономичным и надежным по сравнению с хранением неструктурированных данных непосредственно в инфраструктуре заказчика.
  • Приложения, которые предоставляют данные нескольким экземплярам приложения, могут хранить данные в базе данных SQL Azure. Такие данные могут быть доступны через Интернет приложениям, работающим по всему миру.
  • Приложения, которые предполагают, что потребители приобретают лицензии на SQL Server, могут стать более экономичными за счет использования базы данных SQL Azure.

Многим компаниям, разрабатывающим программное обеспечение, полный переход на облачную платформу может показаться сложной и даже рискованной задачей. В этом случае, небольшие изменения в приложениях и использование накопленного опыта может упростить миграцию в облако. Рассмотренные выше сценарии использования облачного хранилища в существующих приложениях могут оказаться именно тем шагом, который позволит и начать миграцию в облако, и не будет слишком затратным для компаний-разработчиков.

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

Платформа Windows Azure располагается в центрах обработки данных Microsoft — для доступа к данным требуется наличие интернет-соединения. Центры обработки данных находятся в Северной Америке, Европе и Азии, поэтому обычно задержек с сетевыми соединениями не возникает. Microsoft также предоставляет Content Distribution Network (CDN) для бинарных объектов, что позволяет улучшить производительность для часто используемых бинарных данных. Следует помнить, что у базы данных SQL Azure есть ограничения по объему, необходимо также провести предварительное тестирование производительности выполнения вычислений и запросов при различных нагрузках.

Преимущества от использования облачных вычислений

При обсуждении возможных вариантов использования облачных вычислений на базе платформы Windows Azure часто возникают следующие типовые вопросы:

  • Может ли приложение получить дополнительные вычислительные ресурсы по запросу?
  • Нужна ли новая/расширенная функциональность, которая должна работать на облачной платформе?
  • Нужны ли часто обновляемые модули, которые могут быть расположены в облаке?

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

Вот несколько примеров того, как существующие приложения, работающие в инфраструктуре заказчика, могут использовать вычислительные возможности платформы Windows Azure:

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

Рис. 39. Использование облачных вычислений

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

Следует ли создавать приложения в архитектуре SaaS

При обсуждении необходимости создания приложений в архитектуре Software As A Service на базе платформы Windows Azure часто возникают следующие типовые вопросы:

  • Появляются ли у нас конкурентные преимущества при создании приложений в архитектуре SaaS?
  • Появляется ли у нас возможность выхода на новые рынки при создании приложений в архитектуре SaaS?
  • Могут ли наши существующие приложения в архитектуре SaaS получить преимущества при использовании платформы Windows Azure?

Рис. 40. Приложения в архитектуре SaaS

Практически все компании, разрабатывающие программное обеспечение, должны задуматься о том, как они могут улучшить свои приложения за счет использования облачных хранилищ или облачных вычислений. Многие компании также должны подумать о том, должны ли они полностью перенести в облако одно или более своих приложений. Приложения в архитектуре SaaS — это приложения, которые полностью работают на платформе Windows Azure (рис. 40). Многие компании уже предлагают такие решения, например компания Microsoft предлагает CRM Online, SharePoint Online и ряд других продуктов в архитектуре Software As A Service. Такие приложения привлекательны для потребителей по многим причинам. Например, пользователи могут поработать с ними в ознакомительном режиме, прежде чем принять решение об их приобретении. Также не требуется оплата лицензий, как это происходит с традиционными приложениями, работающими в инфраструктуре заказчика — большинство SaaS-приложений оплачивается по мере их использования.

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

Даже компании, в арсенале которых уже имеются SaaS-решения должны рассмотреть возможность их переноса на платформу Windows Azure — зачем создавать и поддерживать собственную инфраструктуру когда Microsoft может предоставить заведомо более надежную, масштабируемую и безопасную платформу?

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

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

В случае с SaaS-приложениями бизнес-аспекты могут оказаться более важными. Например, переход в модель SaaS меняет способ оплаты приложений — вместо единовременной оплаты лицензии появляется помесячная оплата за его использование. Это может изменить весь процесс продаж — основная масса доходов может быть получена через годы после самого факта продажи приложения. Эти факторы необходимо учитывать перед принятием решения о переходе в SaaS-модель.

Выбор SaaS-модели — это важный и ответственный шаг для компаний-разработчиков на пути в облачные вычисления. Так как эта модель практически оптимальна для потребителей, все больше и больше компаний-разработчиков начинают двигаться в этом направлении. Для компаний, продукты которых ориентированы на платформу Microsoft Windows, выбор Windows Azure как платформы для SaaS решений является совершенно логичным шагом.