Чуть менее месяца назад — 29 января 2016 года, компания Microsoft выпустила первую публичную раннюю версию продукта под названием Azure Stack. Сегодня я расскажу о том, что это такое и почему этот продукт важен для облачной стратегии компании Microsoft.
Первый анонс Azure Stack был сделан на конференции Microsoft Ignite в Чикаго 4 мая 2015 года. Тогда этот анонс вызвал большой резонанс в СМИ и среди пользователей Microsoft Azure. Еще бы — многие потрясающие технологии, на которых работает Microsoft Azure, станут доступны всем желающим для развёртывания в своём собственном ЦОДе. Много лет крупные заказчики и сервис-провайдеры, операторы собственных ЦОДов, просили нас — дайте нам кусочек Azure, нам нравится технология, и мы хотим использовать её в своих ЦОДах. И вот, уже совсем скоро, данное желание станет реализуемым.
Azure Stack — это действительно «Azure in your datacenter». В отличие от Windows Azure Pack, который был похож на Azure снаружи, но был очень непохож внутри, тут общих черт значительно больше. Azure Stack использует ту же модель Azure Resource Manager (ARM), что и новый портал Azure. Общая часть кода между Azure Stack и Azure в разы больше, чем у Windows Azure Pack. Это значит, что сервис, разрабатываемый под модель ARM, можно будет развернуть как в Microsoft Azure, так и в Azure Stack — хоть у себя в серверной, хоть у сервис-провайдера в соседнем городе.
Используя одну и ту же модель ARM и одни и те же средства разработки, вы можете создавать универсальные сервисы по облачной модели Microsoft, а потом разворачивать их там, где вам требуется — у себя, у сервис-провайдера, или в Microsoft Azure. Виртуальные машины, развёрнутые в Azure, можно будет безболезненно перенести в ЦОД местного сервис-провайдера, использующего Azure Stack, и наоборот.
Нужно понимать, что Azure Stack Technical Preview 1 — это еще очень ранняя версия, которая абсолютно не подходит для развёртывания в продуктивной среде. Вы можете достаточно быстро развернуть решение на базе одного физического сервера на базе Windows Server 2016 Technical Preview 4 (про это на Хабре уже писали) и начать изучать возможности решения. Если вы уже разрабатывали под ARM и размещали решение в Microsoft Azure, вы можете проверить, будет ли это решение работать на Azure Stack.
Многие функиональные элементы в Azure Stack Technical Preview 1 пока не доступны, так что судить о финальной версии продукта пока рано. Более того, к моменту релиза Azure Stack, могут поменяться и компоненты внутри Microsoft Azure, поэтому и Azure Stack будет менятся вслед за ними, чтобы оставаться «Azure consistent».
Работа с Azure Stack Technical Preview 1
Прежде всего отмечу одно большое отличие Azure Stack от Windows Azure Pack. Здесь нет отдельных порталов для администратора сервиса и для потребителя сервиса. Здесь есть только один портал, и если пользователь является владельцем подписки «Default Provider Subscription» — то он является администратором сервиса и может делать всё.
По умолчанию пользователь, который был введёт при развёртывании Azure Stack TP1 является администратором сервиса. Чтобы добавить новых администраторов сервиса, нужно зайти в Subscriptions и добавить новые учётные записи из Azure AD с правами Owner в подписку «Default Provider Subscription».
В Azure Stack используется концепция ресурсных провайдеров («Resource Providers»), через которые осуществляется взаимодействие различных компонентов. Часть ресурсных провайдеров используется для предоставления сервисов конечным потребителям, а часть — внутренняя, её потребители не видят.
Все ресурсные провайдеры размещаются в локациях («Locations»). Это логическая сущность, предназначенная для разделения сервисов по различным сайтам (ЦОД в Москве, ЦОД в Санкт-Петербурге и т.п.). По умолчанию в TP1 автоматически создаётся локация «local» и все ресурсные провайдеры добавляются туда.
После установки Azure Stack TP1 доступно 4 ресурсных провайдера, на базе которых можно оказывать сервисы потребителям:
1) Compute Provider — провайдер для предоставления виртуальных машин на базе Hyper-V 2016
2) Storage Provider — провайдер для предоставления служб хранилища. В TP1 доступны Blob Storage (как Page blob для дисков ВМ, так и Block blob для данных) и Table Storage. В будущем добавятся Queue Storage и File Storage. Кнопки под них в интерфейсе уже есть, но сами сервисы пока не работают.
3) Network Provider — провайдер для предоставления сетевых служб. Виртуальные сети, сетевые балансировщики, внешние IP и т.п.
4) Subscriptions — провайдер, позволяющий потребителям создавать свои собственные тарифные планы и подписки. Функционал, предназначенных в первую очередь для реселлеров услуг сервис-провайдеров по модели «White label».
На GitHub так же доступны для скачивания дополнительные ресурсные провайдеры PaaS, устанавливаемые дополнительно:
1) SQL Server — провайдер для предоставления баз данных SQL Server
2) MySQL — провайдер для предоставления баз данных MySQL
3) Web Apps — первая часть переноса Azure App Service на Azure Stack, пока только в виде Web Apps.
В будущем планируется появление большого количества ресурсных провайдеров как от Microsoft (которые позволят переносить технологии из Microsoft Azure в Azure Stack), так и от сторонних фирм (которые добавят в портал Azure Stack уникальный функционал, не доступный в Microsoft Azure).
Администратор портала Azure Pack готовит сервисные предложения («Offers»), в которые может включаться один или несколько тарифных планов («Plans»). В рамках тарифного плана выбираются доступные сервисы и локации, из которых потребитель может заказать эти сервисы, а также задаются квоты на ресурсы.
Потребители сервиса добавляют себе подписки на предложения («Subscriptions»). Если предложение публичное (Public), то потребитель может подписаться на него самостоятельно. Если же предложение не публичное (Private), то на него потребителя может подписать администратор сервиса вручную. Схожая идеология планов и подписок используется и в Windows Azure Pack.
Пользователь, зайдя на портал Azure Stack впервые, и авторизовавшись с помощью учётной записи в Azure AD, должен добавить себе подписку. Для этого он нажимает на «Get a Subscription» и выбирает доступный публичный оффер.
Функционал ценообразования и биллинга пока не реализован в Technical Preview 1, так что сообщение «Unable to display pricing» — это нормально.
После добавления подписки, пользователь может нажать на кнопку "+ New" и увидит все доступные ему сервисы. По умолчанию из коробки этот список весьма скудный: Template Deployment (развёртывание ARM-сервиса из шаблона по JSON-описанию), Resource Group, Storage Account и виртуальная машина Windows Server 2012 R2. После добавления своих шаблонов (в том числе и Linux-шаблоны, уже появилась инструкция для CentOS) и PaaS-провайдеров, упомянутых выше, набор сервисов выглядит будет выглядеть уже интереснее.
Интерфейс создания новой виртуальной машины абсолютно такой же, как и на новом портале Azure.
Во время создания ВМ можем наблюдать, на каком этапе находится процесс.
После создания мы можем видеть те же самые действия и свойства, что и на новом портале Microsoft Azure. Напоминаю, что данные по потреблению ресурсов пока недоступны, поэтому мы видим «No available data» вместо графиков, это нормально.
Подключение к ВМ производится через RDP для Windows и SSH для Linux. Консольного доступа (как в Windows Azure Pack) тут нет, точно так же как и в Microsoft Azure.
В свойстах Storage Account мы можем видеть Blob, Table, Queue и File services.
В TP1 работают только блобы и таблицы. Очереди и файлы — в следующих версиях.
На этом пока всё. Если вас заинтересовал Microsoft Azure Stack — скачивайте Technical Preview 1, устанавливайте и тестируйте. Если возникнут вопросы — заходите в Azure Stack Wiki, там очень много полезных материалов.
Автор: Microsoft