Сегодня мне хотелось бы рассказать вам про еще один интересный функционал Virtual Machine Manager 2012 R2 — создание и работу с шаблонами сервисов. Давайте более подробно рассмотрим связанные с этой темой моменты.
Сервис и облако
Прежде всего давайте разберемся, что такое сервис в контексте облака и System Center в частности.
Сервис — это, по сути, одна или несколько ВМ, необходимых для исполнения приложения, которое и предоставляется как услуга (сервис). Однако сервисы бывают не только приложениями: например, сервис может быть инфраструктурного характера, т.е. это может быть та же самая ВМ, но которая эмулирует какое-либо аппаратное устройство — например виртуальный коммутатор Cisco Nexus 1000V. Сервис тоже представлен в виде ВМ, но выполняет функцию уровня инфраструктуры, в области коммуникации и обмена данными.
Однако, более классическим примером сервиса будет самый обычный веб-магазин — как правило, это трехуровневый сервис, который состоит из следующих уровней или тиров (tier): веб-сервер (интерфейс взаимодействия с пользователем), СУБД (место хранения данных) и уровень бизнес-логики (BI, непосредственно само приложение, его логика и функция).
Важно отметить, что облако должно обладать эластичностью — и с точки зрения структуры сервисов каждый отдельный уровень, тир должен уметь масштабироваться, т.е. изменять количество работающих ВМ на определенно взятом уровне и увеличивать/уменьшать их при условии, что они находятся за балансировщиком нагрузки или в кластере — за счет чего обеспечивается непрерывность при масштабировании сервиса.
Увеличить
Рисунок 1. Пример двухуровневого сервиса Microsoft Exchange 2013 CU2 с ролями Mailbox и Client Access.
Также стоит отметить, что шаблоны сервисов, в свою очередь, составляются из сочетания шаблонов виртуальных машин (по сути профиль виртуалки с ресурсами), шаблона ОС (настраиваются параметры развертывания гостевой ОС, включение в домен, установка ролей и фич и т.д.) и шаблона приложения (веб-приложение, скрипт-приложение, SQL-приложение и виртуализованное приложение App-V).
Шаблоны сервисов
Естественно, обеспечить процесс консистентного и повторяемого развертывания сервиса можно с помощью автоматизации за счет применения шаблонов. И вот тут возникает вопрос: «ОК, шаблоны — это круто! Но где их брать, какой их формат и есть ли что-нибудь готовенькое, что можно посмотреть?». Ну что же, давайте обо всем по порядку.
Сам по себе шаблон — это, по сути, XML-файл в формате OVF (Open Virtualization Format), то есть представляет собой открытый, вендор-нейтральный формат описания структуры шаблоны сервиса — количества ВМ, их характеристик и прочих необходимых объектов, которые импортируются в систему управления облаком — в нашем случае в System Center 2012 R2 VMM. Разобравшись с форматом описания, можно самостоятельно делать готовые шаблоны из многоуровневых компонентов для дальнейшего применения. Например, можно на уровне шаблона развернуть Active Directory или Exchange 2013 и Lync 2013 — ну и не забываем про SQL Server, SharePoint и сторонние решения — Oracle DB тоже можно развернуть из шаблона.
Увеличить
Рисунок 2. Пример XML-описания шаблона в формате OVF.
STEK — Service Template Example Kit
Я вижу, как у всех загорелись глаза при фразах об автоматическом развертывании AD или Exchange и прочих — ведь это реально может многим пригодится, особенно в мультитенантной (многоарендной) среде. И вот тут нам на помощь приходит STEK (Service Template Example Kit) — готовый набор шаблонов для самых распространенных приложений и сервисов (если быть точным — те, про которые я упомянул выше). Собственно, кликнув по ссылке, вы попадете на страницу с доступным списком шаблонов. Рекомендую ознакомится с этими шаблонами и попробовать развернуть соответствующие сервисы. После освоения вполне возможно самостоятельно описать сервис, который будет включать в себя последовательное развертывание контроллера домена и последующие развертывание сервисов типа Exchange или Lync, — мне лично этот процесс показался очень увлекательным и интересным, я научился разворачивать MS-сервисы автоматически, а также оперировать с описанием шаблонов в OVF — недурственно, я вам скажу, я прокачался!
Шаблон как инструмент управления жизненным циклом сервиса и приложения
Ну и напоследок остается рассказать про то, что у каждого шаблона есть своя версия, и с поддержкой версионности, т. е. изменения состава и структуры сервиса, его можно обновлять и публиковать исправленные/обновленные/доработанные версии вашего приложения без остановки работы пользователя с текущей версией сервиса. Обязательно при этом указывать версию приложения в возрастающем цифровом формате — на основе этой информации и происходит отслеживание версионности. Указывается она при создании/обновлении шаблона.
Рисунок 3. Версия шаблона отвечает за процесс обновления сервиса.
По сути, версия сервиса зависит от изменений, происходящих с самим приложением. Т.е. достаточно указать путь к новой версии приложения, его сборке или пакету, задать новую версию релиза и опубликовать сервис. Если сервис уже развернут у пользователя, то через какое-то время (относительно небольшое) он получит уведомление о наличии новой версии сервиса и сможет обновиться.
Рисунок 4. Типы приложений для развертывания на базе шаблона сервиса.
Ну и перед тем как в общем опубликовать сервис, я настоятельно вам рекомендую опробовать его работоспособность и попробовать его развернуть, нажав на клавишу «Configure Deployment» — тем самым вы точно убедитесь в том, что приложение или сервис разворачивается и работает как надо, а также что у него есть все необходимые условия и ресурсы для работы.
После этого вы можете его опубликовать и дать конечным пользователям возможность получать ваши приложения и сервисы в автоматическом режиме через портал самообслуживания. Это можно сделать с помощью применения портала самообслуживания App Controller 2012 R2, который также входит в пакет System Center.
Увеличить
Рисунок 5. Развертывание сервиса с помощью портала самообслуживания App Controller.