Microsoft Azure — облачная платформа компании Microsoft. Предоставляет возможность разработки, выполнения приложений и хранения данных на серверах, расположенных в распределённых дата-центрах.

Облако Azure было анонсировано в октябре 2008 года под кодовым названием «Project Red Dog». Релиз состоялся 1 февраля 2010 года под названием «Windows Azure». В 2014 году платформа была переименована в Microsoft Azure.

Обзор Microsoft Azure реализует облачные модели платформы как сервиса (PaaS) и инфраструктуры как сервиса (IaaS). Возможно использование как сторонних, так и сервисов Microsoft в качестве модели ПО как сервиса (SaaS). Работоспособность платформы Microsoft Azure обеспечивает глобальная сеть распределенных дата-центров Microsoft.

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

Модель предоставления инфраструктуры (IaaS) реализует возможность аренды таких ресурсов, как серверы, устройства хранения данных и сетевое оборудование. Управление всей инфраструктурой осуществляется поставщиком, потребитель управляет только операционной системой и установленными приложениями.

Для виртуальных машин доступны образы следующих операционных систем: Windows Server, CoreOS, Ubuntu Server, Red Hat, Clear Linux OS, Debian, SUSE Linux Enterprise Server, Oracle Linux.

Практически все сервисы Microsoft Azure имеют интерфейс взаимодействия API, построенный на основе ограничений для распределённых систем REST, что позволяет разработчикам использовать облачные сервисы с любой операционной системы, устройства и платформы.

Кроме того, пользователи могут создавать и управлять собственными сервисами, пользуясь визуальным веб-интерфейсом портала Azure. Портал позволяет настраивать сервисы, редактировать права доступа, отслеживать состояние ресурсов и управлять биллингом.

Поддерживаемые языки и платформы разработки Для поддерживаемых языков программирования Microsoft предоставляет наборы библиотек. На данный момент поддерживаются следующие языки программирования и программные платформы:

.NET Облачная платформа Azure поддерживает платформу разработки .NET, также созданную и поддерживаемую компанией Microsoft. Эти технологии можно использовать совместно для создания и размещения веб-приложений, создания бессерверных функций Azure, подключения и создания запросов к базам данных SQL, управления ресурсами API SQL в Azure Cosmos DB, развертывания приложений в Service Fabric и др.

Java Язык программирования Java интегрирован с Azure. Он подходит для создания и развертывания веб-приложений, работы с базами данных, взаимодействия с сервисной шиной, интернетом вещей, когнитивными сервисами и др. Для настройки среды разработки и использования Azure с Java разработчик должен иметь учетную запись в облаке, Azure Cloud Shell или Azure CLI 2.0, Java 8 и Maven 3.

Node.js (JavaScript) Язык JavaScript и его серверная платформа Node.js интегрированы с Azure. В рамках совместной работы платформ доступны разработка и размещение приложений, решения для хранения данных, поддержание безопасности инфраструктуры, мониторинг и ведение журнала, обмен сообщениями, интернет вещей, когнитивные сервисы, создание парадигмы DevOps и др.

Python Язык программирования Python поддерживается облаком Azure. В рамках платформы его можно использовать для создания и развертывания приложений, работы с данными с использованием Cosmos DB, Redis, SQL Azure, PostgreSQL и MySQL, создания алгоритмов искусственного интеллекта и машинного обучения, обеспечения безопасности инфраструктуры и др.

PHP Язык PHP на данный момент поддерживает наименьший функционал в облаке Azure по сравнению с другими интегрированными языками. Разработчики могут создать и развернуть веб-приложение PHP в Azure.

Go Среди других возможностей, с помощью языка программирования Go можно развертывать виртуальные машины, передавать объекты в хранилище BLOB, подключаться к базам данных SQL Azure, PostgreSQL и MySQL.

Сервисы В Microsoft Azure представлено более 600 сервисов, некоторые из которых перечислены ниже.

Инфраструктурные сервисы

Вычисления Сервис Virtual Machines позволяет пользователям запускать виртуальные машины общего назначения под управлением Microsoft Windows, Linux, а также преднастроенные образы популярных сервисных пакетов. Служба Приложений позволяет разработчикам публиковать веб-сайты и управлять ими. Сервис хостинга веб-сайтов позволяет разработчикам создавать сайты с использованием .NET, PHP, Node.js или Python и разворачивать их с использованием FTP, Git, Mercurial, Team Foundation Server или загружать через пользовательский портал. WebJobs или, другими словами, приложения, которые могут быть развернуты в среде App Service для реализации фоновой обработки. Эту обработку можно запускать по расписанию, по требованию или выполнять непрерывно. Службы Blob, Table и Queue могут использоваться для связи между WebApps и WebJobs и для отслеживания состояния.

Хранилище Сервисы хранения (Storage Services) предоставляют REST и SDK API для хранения данных в облаке и доступа к ним. Table Service позволяет программам хранить структурированный текст в секционированных коллекциях сущностей, доступ к которым осуществляется по ключу секционирования и первичному ключу. Это нереляционная база данных NoSQL. Blob Service позволяет программам хранить неструктурированный текст и двоичные данные в виде BLOB-объектов, к которым можно получить доступ по HTTP(S). Сервис BLOB-объектов также предоставляет механизмы обеспечения безопасности для контроля доступа к данным. Служба очередей (Queue Service) позволяет программам обмениваться сообщениями асинхронно с использованием очередей. Файловая служба (File Service) позволяет хранить и получать доступ к данным в облаке с помощью API REST или протокола SMB.

Работа в сети Виртуальная сеть — это стандартный строительный блок для частной сети в Azure. Виртуальная сеть позволяет ресурсам Azure различных типов (например, виртуальным машинам Azure) обмениваться данными друг с другом через локальные сети и через Интернет. Load Balancer позволяет масштабировать приложения и обеспечивать доступность служб. Также поддерживает входящие и исходящие сценарии, обеспечивает низкую задержку и высокую пропускную способность. Шлюз приложений — это подсистема балансировки нагрузки веб-трафика, предназначенная для управления трафиком веб-приложений. VPN-шлюз — это тип шлюза виртуальной сети, используемый для отправки зашифрованного трафика между виртуальной сетью Azure и локальным расположением через общедоступный Интернет. Azure DNS — служба размещения доменов DNS, осуществляющей разрешение имен.

Платформенные сервисы

Мобильные сервисы Сервис Mobile Engagement дает возможность собирать данные поведения пользователей в реальном времени. Он также предоставляет возможность отправки push-уведомлений на мобильные устройства. Сервис HockeyApp может использоваться для разработки, распространения и тестирования мобильных приложений.

Управление данными Сервис поиска Azure (Azure Search) обеспечивает текстовый поиск и подмножество структурированных фильтров OData с использованием API REST или SDK. Cosmos DB — это служба базы данных NoSQL, которая реализует подмножество оператора SQL SELECT в документах JSON. Redis Cache — это управляемая реализация Redis. StorSimple управляет хранилищем и распределяет нагрузку между локальными устройствами и облачным хранилищем. SQL Database, ранее известная как SQL Azure Database, предназначена для создания, масштабирования и расширения приложений в облаке с использованием технологии Microsoft SQL Server. Она также интегрируется с Active Directory, Microsoft System Center и Hadoop. Azure SQL Data Warehouse — это облачное корпоративное хранилище данных (EDW), использующее массовую параллельную обработку (MPP) для быстрого выполнения сложных запросов с петабайтами данных. Azure Data Factory — это служба интеграции данных, которая позволяет создавать рабочие процессы в облаке для организации и автоматизации перемещения и преобразования данных. Azure Data Lake — это масштабируемая служба хранения и анализа данных для задач, связанных с большими данными, которые требуют от разработчиков массового выполнения параллельных запросов. Azure HDInsight — это служба, связанная с большими данными, которая развертывает Hortonworks Hadoop в Microsoft Azure и поддерживает создание кластеров Hadoop с использованием Linux с Ubuntu. Azure Stream Analytics — это серверный масштабируемый движок обработки событий, который позволяет пользователям разрабатывать и запускать аналитику в реальном времени для нескольких потоков данных из таких источников, как устройства, датчики, веб-сайты, социальные сети и другие приложения.

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

Центры событий (Event Hubs), которые обеспечивают массовую передачу событий и телеметрии в облако. Например, центр событий может использоваться для отслеживания данных с мобильных телефонов, таких как данные GPS, в режиме реального времени. Очереди (Queues), которые добавляют возможность однонаправленных коммуникаций. Приложение-отправитель будет направлять сообщение в очередь сервисной шины, а получатель будет читать его из очереди. Хотя в очереди может быть несколько считывателей, только один обрабатывает одно сообщение. Разделы (Topics), которые обеспечивают однонаправленную связь с использованием шаблона подписки. Это похоже на очередь, однако каждый подписчик получит копию сообщения, отправленного в раздел. При желании подписчик может отфильтровывать сообщения на основе определенных критериев. Ретрансляторы (Relays), которые обеспечивают двунаправленную связь. В отличие от очередей и разделов, ретранслятор не хранит идущие сообщения в своей собственной памяти. Вместо этого он просто передает их в целевое приложение.

Медиа-сервисы Служба кодирования — сервис, который предоставляет несколько видов кодировщиков, служащих для кодирования мультимедиа в облаке. Индексатор видео — облачное приложение, которое позволяет извлекать аналитические сведения из видеоматериалов с помощью описанных видео- и аудиомоделей. Потоковая трансляция — продукт, который позволяет проводить прямые трансляции в прямом эфире и по запросу. Система защиты содержимого позволяет защитить данные мультимедиа, покидающие компьютер, на этапах их хранения, обработки и доставки, а также доставлять в режиме реального времени и по требованию содержимое с динамическим шифрованием. Сеть кэширующих серверов (CDN) — глобальная сеть доставки содержимого Azure (CDN) для аудио, видео, приложений, изображений и других статических файлов. Его можно использовать для кэширования статических ресурсов веб-сайтов, географически расположенных ближе к пользователям, для повышения производительности. Сеть может управляться HTTP-API на основе REST. Проигрыватель мультимедиа Azure.

Машинное обучение Сервис Microsoft Azure Machine Learning (Azure ML) является частью Cortana Intelligence Suite и служит для предиктивной аналитики и взаимодействия с данными с использованием естественного языка и речи. Сервис реализован с использованием Кортаны. Cognitive Services (ранее Project Oxford) — это набор API, SDK и сервисов, доступных для разработчиков, позволяющих создавать приложения с использованием интеллектуальных алгоритмов и машинного обучения.

IoT Azure IoT Hub позволяет подключать, отслеживать и управлять ресурсами IoT.