Windows Azure - название платформы "облачных сервисов" от Microsoft, с помощью которой можно размещать в "облачных" датацентрах Microsoft и "виртуально"-неограниченно масштабировать приложения. Windows Azure реализует модель Platform as a service (PaaS), когда платформа предоставляется клиенту как сервис. Платформа Windows Azure предоставляет возможность разработки и выполнения приложений и хранения данных на серверах, расположенных в распределенных датацентрах. Платформа как сервис также включает и инфраструктуру как сервис (Infrastructure as Service, IaaS), возможности которой претерпели большие изменения 7 июня 2012 года
Обзор платформы
Windows Azure полноcтью реализует две облачные модели - платформы как сервиса (Platform as a Service, PaaS) и инфраструктуры как сервиса (Infrastructure as Service, IaaS). Работоспособность платформы Windows Azure обеспечивают 8 глобальных дата центров Microsoft. В предложении публичного облака клиент оплачивает только ресурсы и мощности, которые задействованы в приложение и только за фактическое время использования этих ресурсов. Основные особенности данной модели:
- оплата только потребленных ресурсов;
- общая, многопоточная структура вычислений;
- абстракция от инфраструктуры.
Платформа как сервис
Модель предоставления платформы как сервиса реализует возможность аренды платформы, которая обычно включает операционную систему и прикладные сервисы. Платформа как сервис облегчает разработку, тестирование, развертывание и сопровождение приложений без необходимости инвестиций в инфраструктуру и программную среду. Платформа как сервис также включает и инфраструктуру как сервис.
В основе работы Windows Azure лежит запуск виртуальной машины для каждого экземпляра приложения. Разработчик определяет необходимый объем для хранения данных и требуемые вычислительные мощности (количество виртуальных машин), после чего платформа предоставляет соответствующие ресурсы. Когда первоначальные потребности в ресурсах изменяются, в соответствии с новым запросом заказчика платформа выделяет под приложение дополнительные или сокращает неиспользуемые ресурсы дата-центра.
Особенностью Windows Azure как модели PaaS является разделение приложения и инфраструктуры: разработчику достаточно лишь определить необходимый для работы приложения объём ресурсов, а все действия по предоставлению запрашиваемых ресурсов, управлению ими, динамическому распределению, мониторингу, масштабированию выполняются автоматически платформой Windows Azure.
Windows Azure как PaaS обеспечит не только все базовые функции операционной системы, но и дополнительные: выделение ресурсов по требованию для неограниченного масштабирования, автоматическую синхронную репликацию данных для повышения отказоустойчивости, обработку отказов инфраструктуры для обеспечения постоянной доступности и многое другое. Кроме того, будет предоставляться среда для выполнения приложений, сервисы по хранению данных и ряд дополнительных сервисов. Например, интеграционные и коммуникационные сервисы. Соглашение о предоставлении услуг и сервисов (SLA) обычно покрывает такие характеристики системы, как доступность среды выполнения приложений и ее производительность.
Модель предоставления платформы как сервиса (Platform as a Service, PaaS) реализует возможность аренды платформы, которая обычно включает операционную систему и прикладные сервисы. Платформа как сервис облегчает разработку, тестирование, развертывание и сопровождение приложений без необходимости инвестиций в инфраструктуру и программную среду. Платформа как сервис также включает инфраструктуру как сервис (Infrastructure as Service, IaaS). Windows Azure в полной мере реализует модель PaaS, когда платформа предоставляется как сервис. Потребителями PaaS обычно являются сами компании, разработавшие приложения.
Инфраструктура как сервис
Windows Azure так же реализует другой тип сервиса - это инфраструктуру как сервис. Модель предоставления инфраструктуры (аппаратных ресурсов) реализует возможность аренды таких инфраструктурных ресурсов, как серверы, устройства хранения данных и сетевое оборудование. Управление всей инфраструктурой осуществляется поставщиком сервисов, а потребитель управляет только операционной системой и установленными приложениями. Такие сервисы обычно оплачиваются по фактическому использованию и позволяют увеличивать или уменьшать объем инфраструктуры через специальные порталы, предоставляемые поставщиками сервисов. Облачная платформа предоставляет сервисы для запуска виртуальных машин и сервисы хранения данных. В данной сервисной модели могут быть запущены практически любые приложения, установленные на стандартные образы ОС. В Windows Azure вы можете легко использовать собственные образы Windows Server или Linux, а также выбрать образы из коллекции. Сохраните полный контроль над образами и поддерживайте их в соответствии с бизнес-требованиями. Windows Azure также помогает переносить ваши приложения и инфраструктуру, не меняя существующий код, что ускоряет переход.
В галерее образов на 08.07.12 доступны образы следующих операционных систем:
- Windows Server 2008 R2
- Windows Server 2008 R2 с SQL Server 2012 Eval
- Windows Server 2012 RC
- OpenSUSE 12.1
- CentOS 6.2
- Ubuntu 12.04
- SUSE Linux Enterprise Server 11 SP2
Windows Azure состоит из:
- Compute - компонент, реализующий вычисления на платформе Windows Azure, предоставляет среду выполнения на основе ролевой модели.
- Storage - компонент хранилища предоставляет масштабируемое хранилище. Компонент хранилища не имеет возможности использовать реляционную модель и является альтернативой (либо дополняющим решением) SQL Databases (SQL Azure) - масштабируемой "облачной" версией SQL Server.
- Fabric - Windows Azure Fabric по своему назначению является "контролёром" и ядром платформы, выполняя функции мониторинга в реальном времени, обеспечения отказоустойчивости, выделении мощностей, развертывания серверов, виртуальных машин и приложений, балансировки нагрузки и управления оборудованием.
Платформа Windows Azure имеет API, построенное на REST, HTTP, и XML, что позволяет разработчикам использовать "облачные" сервисы с любой операционной системы, устройства и платформы.
Одной из дополнительных опций, предоставляемых Windows Azure клиентам, является Content Delivery Network (CDN). Сеть доставки контента (Content delivery network, CDN) состоит из 24 датацентров по всему миру, с одним из узлов, находящимся в Москве.
Windows Azure была признана Compuware самой быстрой "облачной" платформой.
Сервисы
Windows Azure предоставляет широкий набор сервисов: Applications - среда выполнения приложений - это высокодоступные вычислительные мощности, позволяющие выполнять код приложений в облаке и быстро масштабировать приложения в зависимости от потребностей клиентов. Среда выполнения приложений Windows Azure оперирует следующими основными понятиями: Cloud Services:
- Web-роль - веб-роли в Windows Azure имеют особое назначение: предоставление выделенного веб-сервера служб IIS для размещения интерфейсных веб-приложений. Веб-роли позволяют легко и быстро развертывать веб-приложения с последующим масштабированием вычислительных ресурсов в соответствии с потребностями.
- Worker-роль - приложения, размещенные в рабочих ролях, могут выполнять асинхронные, продолжительные или непрерывные задачи независимо от действий пользователей. Изоляция фоновых процессов приложения в рабочей роли и размещение интерфейсной части в веб-роли позволяет эффективнее распределить логику приложения и более точно управлять масштабированием приложения
- VM-роль - роли виртуальной машины позволяют разворачивать в Windows Azure пользовательский образ операционной системы. Роль виртуальной машины используется, когда для работы приложения требуется внести в настройки серверной ОС большое количество изменений и этот процесс невозможно автоматизировать. Роль виртуальной машины позволяет полностью контролировать среду выполнения приложения и переносить существующие приложения в облако.
Web Sites: нововведение после 7 июня. Веб-сайты можно разрабатывать на ASP.NET, Node.js или PHP (либо CMS - WebMatrix, Joomla, Drupal, WordPress, DotNetNuke, Umbraco и др.) и разворачивать за секунды с использованием FTP, Git или TFS. При этом первичное использование бесплатно, далее же веб-сайты вертикально масштабируются согласно увеличению траффика. По умолчанию веб-сайты находятся в состоянии Shared Website, то есть мощности делятся между веб-сайтами, но при необходимости можно увеличить количество экземпляров и перевести веб-сайт в состояние Reserved.
Data Management - нереляционные хранилища данных: таблицы, диски, очереди, хранение двоичных объектов + реляционное хранилище данных в виде SQL Database.
- Таблицы - хранилище таблиц используется приложениями, которые хранят большие объёмы данных с дополнительными требованиями к структурированию. В таблице хранятся структурированные данные, между которыми не устанавливаются отношения.
- Очереди - очереди обеспечивают надежный и непрерывный обмен сообщениями между приложениями.
- Блобы - хранилище BLOB-объектов - это простейший способ хранения больших объёмов неструктурированных текстовых или двоичных данных, таких как видео, музыкальный файлы и изображения.
- SQL Database - реляционная база данных - это высокодоступная масштабируемая облачная служба базы данных, построенная на основе технологий SQL Server.
- SQL DataSync - облачная служба синхронизации данных, обеспечивающая как однонаправленную, так и двунаправленную синхронизацию. Служба Data Sync позволяет легко обмениваться данными между SQL в Azure и локальными базами данных SQL Server, а также между несколькими базами данных SQL Databases (SQL Azure);
- SQL Reporting - служба Microsoft SQL Reporting позволяет легко встроить в приложение Windows Azure возможности работы с отчетами. Доступ к отчетам можно получить через портал Windows Azure, веб-браузер или непосредственно из приложения. Благодаря возможностям облака отпадает необходимость в создании и поддержке собственной инфраструктуры отчетов;
- SQL Federations - федерация SQL в Azure значительно упрощает масштабирование множества баз данных, размещенных на сотнях узлов, что позволяет клиентам платить только за реально используемые ресурсы.
Performance:
- Content Delivery Network - сеть кэширующих серверов (сеть CDN) повышает производительность приложений путем кэширования контента как можно ближе к клиентам и пользователям, обеспечивая максимально эффективное взаимодействие с ними, например, сеть CDN позволяет доставлять фрагменты мультимедийных файлов для динамического адаптивного воспроизведения мультимедиа поверх HTTP-контента.
- Caching - распределенный кэш - распределенный кэш в памяти, с помощью которого вы вместо медленного дискового хранилища приложения получают высокоскоростной доступ к данным, хранящимся в оперативной памяти, с возможностью масштабирования;
- Media Services - службы мультимедиа обеспечивают гибкость, масштабируемость и надежность облачной платформы для обработки объектов мультимедиа высокого качества для пользователей во всем мире. Службы мультимедиа включают в себя облачные версии многих существующих технологий платформы мультимедиа Microsoft и многих партнеров, в том числе для просмотра, кодирования, преобразования формата и защиты контента, а также потоковой передачи по запросу и в реальном времени. Улучшая существующие решения или создавая новые, пользователь можете легко объединять службы мультимедиа и управлять ими для формирования рабочих процессов для любой потребности.
- Identity - служба идентификации обеспечивает управление удостоверениями и доступом к приложениям, с помощью службы Windows Azure Active Directory (бывший Access Control Service) можно обеспечить единый вход, повышенную безопасность и простое взаимодействие с уже развернутыми в Active Directory приложениями, а также выполнить интеграцию с другими провайдерами аутентификации (Live ID, Google, Facebook и т. п.);
Connectivity:
- Messaging:
- Service Bus - интеграционная шина предоставляет возможности ретрансляции и безопасного обмена сообщениями и позволяет создавать распределенные и слабосвязанные приложения в облаке, а также гибридные приложения, размещенные одновременно в частных и общедоступных облачных службах. Оперирует терминами Relay, Topics, Queues.
Networking:
- Virtual Network - платформа Windows Azure обладает расширенными возможностями сетевых подключений, позволяя интегрировать существующие приложения с облачными службами и управлять сетевым трафиком.
- Connect - виртуальная сеть обеспечивает простоту настройки сетевых подключений между службами Windows Azure и локальными ресурсами, в том числе серверами баз данных и контроллерами домена, обеспечивая возможности двустороннего доступа между ними на уровне одной сети;
- Traffic - диспетчер трафика обеспечивает балансировку нагрузки по входящему трафику между несколькими размещенными службами Windows Azure независимо от того, работают ли они в одном центре обработки данных или распределены по всему миру. Эффективное управление трафиком позволит вам повысить производительность, уровень доступности и отказоустойчивость своих приложений.
Marketplace - сайт Windows Azure Marketplace - это глобальный интернет-магазин приложений SaaS и лучших наборов данных. Представив свои приложения для Windows Azure на этом сайте, вы сможете продавать их по всему миру. Кроме того, вы можете подписаться в своих приложениях на целый ряд лучших наборов данных, представленных на этом сайте, либо распространять собственные наборы данных, извлекая прибыль.
HPC - параллельные вычисления или планировщик HPC позволяет легко разрабатывать на платформе Windows Azure параллельные приложения, требующие больших вычислительных мощностей, кроме того, это средство позволяет по требованию запускать в облаке виртуальные узлы, предоставляя таким образом доступ к вычислительным ресурсам, необходимым для обработки пиковых или непредсказуемых нагрузок. Это позволяет использовать малые локальные кластеры и подключаться к Windows Azure, когда требуются дополнительные ресурсы.
ИНТЕРОПЕРАБЕЛЬНОСТЬ
В число поддерживаемых языков программирования, не относящихся к платформе .NET, относятся Java, PHP, Ruby, Node.js, C. Для многих языков Microsoft предоставляет набор библиотек. Для сред разработки Microsoft Visual Studio и Eclipse существуют плагины, расширяющие их функциональность. Также на платформе можно использовать различные инструменты для разработки и выполнения приложений(например, MongoDB, Apache Hadoop.
Корпорация Microsoft в лице собственного отдела Microsoft Interoperability Strategy Group поддерживает и обновляет сайт Interoperability Bridges and Labs Center, на котором размещено большое количество материалов, посвящённых реализации интероперабельности платформы Windows Azure.
Как рассчитать стоимость
Облачные сервисы Windows Azure предоставляются в соответствии с бизнес-моделью "оплата по факту использования": стоимость облачного сервиса определяется потребленными ресурсами. Для выполнения приложения, как правило, необходимы три типа ресурсов - для вычислений, для хранения данных и для обмена данными. Стоимость можно рассчитать на сайте проекта.
Безопасность
Платформа Windows Azure является классическим примером PaaS-модели - Microsoft предоставляет безопасную среду выполнения, обеспечивает безопасность на уровне операционной системы и инфраструктуры. Таким образом, размещение приложений в "облаке" позволяет улучшить безопасность ваших приложений.
В ноябре 2011 года платформа Windows Azure и её система управления информационной безопасностью были признаны British Standards Institute как удовлетворяющие сертификации ISO 27001.
Доступ к подписке осуществляется с помощью безопасной системы Windows Live ID, которая является одной из самых старых и проверенных систем аутентификации в Интернет. Доступ к уже развернутым сервисам контролируется подпиской.
Развертывание приложений в Windows Azure можно осуществлять двумя способами - с портала Windows Azure и с помощью Service Management API (SMAPI). Аутентификация SMAPI реализована с помощью алгоритмов асимметричного шифрования.