Виртуализация приложений с помощью Microsoft App-V для неопределившихся

Автор: vik_kr Дата: . Категория: Статьи

Виртуализация серверов давно и прочно вошла в нашу жизнь. Ее достоинства неоспоримы и широко используются в самых разных бизнес-областях. Однако, виртуализация приложений пока «новинка» на российском корпоративном рынке. Многие только присматриваются к этой технологии, уже успевшей хорошо зарекомендовать себя в мире. Почему многие крупнейшие зарубежные производители и финансовые организации переводят работу целых офисов на виртуализированные приложения? Ответ прост — потому что это выгодно.


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

Такой переход зачастую является сложным и болезненным процессом. Новые форматы файлов, новая схема взаимодействия с остальным ПО. Может оказаться, что часть оборудования поддерживает только старую версию и оперативно заменить его нельзя. Неизбежны накладки при вводе нового приложения в рабочую среду, иногда приходится даже откатываться на старую версию, чтобы избежать простоев бизнеса. Cпециалистам в нашей компании, обеспечивающим поддержку приложений заказчиков, эти проблемы знакомы не понаслышке. С помощью виртуализации, даже для такого большого и сложного пакета, как Microsoft Office, возможно существенно упростить процесс – разные версии запускать одновременно под одним пользователем, при необходимости легко изменять конфигурацию, добавляя или удаляя компоненты – и все это без длительных простоев.

image

Рассмотрим подробнее, как работает технология, а, заодно, перечислим основные преимущества виртуализации приложений.

— Приложения не устанавливаются на компьютер через инсталлятор.
В процессе «виртуализации» программа устанавливается на чистый образ ОС и в процессе установки все изменения в реестре и файловой системе записываются в специальный пакет. Этот пакет, представляющий собой, фактически, развернутое приложение, доставляется на компьютер пользователя и выполняется в своем изолированном окружении не оставляя следов в самой операционной системе. Это окружение называют «песочницей» (sandbox) или «пузырем» (virtual bubble). При этом запущенное в таком пузыре приложение «видит» обычные программы и может с ними взаимодействовать, а само остается «невидимым» для них.

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

— Возможность одновременного запуска разных версий одного приложения на одном компьютере.
Так как виртуальные приложения изолированы друг от друга, ничто не мешает виртуализировать разные версии одной программы и запускать их на одном компьютере под одной учетной записью. Обе будут работать. Такой сценарий довольно часто встречается, как мы упомянули ранее, при переходе со старой версии ПО на новую или в учебных классах и тестовых лабораториях.

— Возможность одновременного запуска одного приложения несколькими пользователями даже в случае, когда при обычной установке это приводит к ошибке разделения ресурсов.

— Отпадает необходимость предоставлять пользователям права локальных администраторов или повышенные права доступа к реестру для работы нестандартных приложений.
В изолированном виртуальном пузыре у приложения есть полный доступ ко всем файлам и разделам реестра (в ранних версиях App-V были ограничения, но в последних редакциях они устранены). Поэтому нет необходимости запускать виртуальное приложение с повышенными привилегиями, даже если раньше это требовалось. Таким образом повышается безопасность рабочей среды.

— Мгновенная доступность новых приложений нужным группам пользователей, управляемая через Active Directory.
В развернутой инфраструктуре App-V достаточно сопоставить группу пользователей виртуальному приложению, чтобы через заданный интервал времени его ярлыки появились у пользователей в меню «Пуск». Причем управление осуществляется через Web-интерфейс из любого браузера. Точно так же быстро приложение можно запретить запускать при необходимости. И все это не требует перезагрузки компьютера и простоя в ожидании установки.

— Существенное снижение времени на восстановление рабочей среды в случае сбоя.

— Упрощение управления образами рабочих систем.
Когда приложения виртуализированы, уже не требуется иметь образы ОС для разных групп пользователей, каждый со своим индивидуальным набором ПО. Иногда достаточно ограничиться одним «ванильным» образом, а приложения назначать с помощью групп Active Directory.

Здесь нельзя не упомянуть про еще один сценарий, крайне актуальный в настоящее время – миграцию с одной операционной системы на другую. Многие откладывают этот сложный процесс до последнего и опасения понятны. Проблемы совместимости, колоссальная нагрузка на ИТ-отдел, серьезные риски в случае простоя бизнеса. Наша компания уже завершила процесс миграции в инфраструктуре 8 крупных европейских заказчиков и мы можем с уверенностью сказать, что виртуализация приложений радикально сокращает сроки проекта. Однажды настроив приложения на работу как в 64-х битной, так и в 32-х битной среде, убедившись в их совместимости и работоспособности на разных платформах можно быстро настроить конечную пользовательскую рабочую среду любой сложности при смене ОС.

Теперь перечислим, что нужно для того, чтобы развернуть у себя структуру поддержки виртуальных приложений на примере Microsoft Application Virtualization (App-V) 5.0.

Лицензирование: если у вас уже есть клиентские лицензии служб удаленных рабочих столов (RDS), то вы уже можете использовать App-V. Также, лицензии App-V входят в пакет Microsoft Desktop Optimization Pack (MDOP). Это набор технологий для настольных систем, доступный участникам программы Software Assurance в виде подписки.

Определившись с лицензиями, посмотрим, как это работает.
 

  1. Приложения необходимо специальным образом запаковать. Для этого используется программа App-V Sequencer, а процесс упаковки называется сиквенсингом.
  2. Подготовленные приложения надо разместить на сетевой папке и предоставить пользователям доступ на чтение.
  3. Установить на пользовательские устройства (или на терминальный сервер) приложение App-V Client. Оно необходимо для скачивания виртуальных пакетов с сетевого диска и их запуска.



image

Остановимся на каждом пункте подробнее.

Для подготовки виртуального пакета потребуется типовой чистый образ системы, используемый в вашей инфраструктуре. На него установим приложение App-V Sequencer. В идеале следует устанавливать Sequencer на компьютере, работающем как виртуальная машина и создать «снимок» сразу после установки. Это позволяет легко вернуть компьютер, где запускается Sequencer, в «чистое» состояние перед виртуализацией следующего приложения.

Запущенный Sequencer работает в режиме помощника, предлагая вначале задать имя пакета, выбрать каталог, в который будет производиться установка, затем отслеживает и сохраняет изменения в реестре и файловой системе, производимые при установке приложения.

image

В версии App-V 5.0 не требуется создание отдельного диска для виртуальных приложений, установка производится в каталог по умолчанию. Однако первичный каталог виртуального приложения (PVAD) в данном окне может быть выбран по-разному. Этот может быть или установочная директория программы, или один из ее подкаталогов, или даже некоторая несуществующая папка. В зависимости от этого выбора меняется организация файлов внутри виртуального пакета. В данной статье мы не будем подробно останавливаться на этом моменте, но, из нашего опыта, хотелось бы обратить внимание, что иногда правильный выбор PVAD на первом этапе способен избавить от множества проблем функциональности в дальнейшем, особенно для старых приложений.

Если при установке потребуется перезагрузка – можно ее выполнить, изменения будут записаны и процесс корректно продолжится с прерванного момента. Будут правильно обработаны параллельные (SxS) сборки библиотек (например, Microsoft Visual C++), устанавливать их предварительно в образ системы теперь не требуется.

image

Готовый пакет представляет собой набор файлов:

image

report.xml файл – файл отчета, в котором сохраняются все предупреждения и ошибки, возникшие в процессе сиквенсинга. Его можно использовать для диагностики и решения проблем.

.msi файл – файл установщика Windows, созданный сиквенсером для установки виртуального пакета через групповые политики или с помощью систем развертывания.

.appv файл – файл собственно виртуального приложения. В версии App-V 5.0 этот файл создается в открытом формате zip и его можно открыть любым архиватором при необходимости. Ограничений на размер файла, в отличие от предыдущих версий, нет. К сожалению, вносить изменения напрямую без использования сиквенсера нельзя.

Deployment configuration file, User configuration file – конфигурационные файлы в формате XML, определяют параметры развертывания на конечных компьютерах. В них можно вносить изменения без запуска сиквенсера в любом текстовом редакторе. Это существенно упрощает тонкую настройку приложения. Здесь, в частности, задаются параметры ярлыков, файловые ассоциации, переменные окружения, меняются ключи реестра.

Для некоторых программ не удается обеспечить точное соответствие функциональности виртуального пакета локально установленной версии только с помощью сиквенсера. В этом случае придется добавить скрипт, выполняющий недостающие операции. Файлы пользовательских скриптов добавляются в пакет, а их вызов настраивается в конфигурационных файлах XML. Например, так:
 

<PublishPackage>
        <Path>powershell.exe </Path>
        <Arguments>.\Scripts\InstallDriver.ps1 </Arguments>
        <Wait RollbackOnError="true" Timeout="120"/>
      </PublishPackage>



Как видим из синтаксиса, скрипт можно писать на любом языке, на котором вам удобнее работать. Наши инженеры используют, в основном, Powershell, VBS и batch для написания скриптов.

После того, как пакет подготовлен, скопируем его на сетевую папку, предоставим пользователям доступ на чтение.
Далее требуется установить на пользовательские компьютеры App-V Client и… всё!
В самом простом случае более ничего не требуется. Виртуальные пакеты можно распространять несколькими способами:
 

  • через инсталлятор .msi, созданный на этапе сиквенсинга. Например, с помощью групповых политик;
  • с помощью имеющейся в вашей организации системы распространения (Microsoft SCCM,Altiris) ;
  • с помощью Powershell 3.0. Вообще, продукт Microsoft App-V 5.0 очень тесно интегрирован со средой Powershell и это очень удобно. Любые задачи, связанные с распространением и обслуживанием пакетов, можно автоматизировать с помощью скриптов.



image

Итак, в простейшем случае, для использования Microsoft App-V потребуется только Sequencer на машине ИТ-инженера для подготовки пакетов и App-V Client на машине пользователя для их запуска. Однако, всеми преимуществами можно будет воспользоваться только при полном развертывании инфраструктуры App-V.

Для этого необходимо установить следующие компоненты:
 

  • Management Server (Сервер управления). Предоставляет основные функции управления для инфраструктуры App-V 5.0;
  • Publishing Server (Сервер публикаций). Предоставляет функции размещения и потоковой передачи для виртуальных приложений;
  • SQL база данных управления.


Дополнительно можно установить также сервер отчетов и SQL базу для него.

Все роли устанавливаются одним файлом (APPV_SERVER_SETUP.EXE):

image

Microsoft предоставляет отдельные SQL скрипты для создания баз данных на случай, если в вашей организации за них ответственна отдельная команда администраторов. На этапе установки также указывается группа AD, которой будут предоставлены полномочия для управления средой App-V 5.0.

После установки необходимо сконфигурировать пользовательские App-V клиенты. Указать адрес сервера публикаций и параметры обновления информации об изменениях пакетов. Выполнить это можно с помощью Powershell.

В дальнейшем, доступ к консоли и управление осуществляется с помощью браузера:

image

Добавим пакет, указав сетевой путь:

image

Назначим группу пользователей AD и опубликуем пакет:

image

После этого через некоторое время у пользователя появятся ярлыки приложения и соответствующие ассоциации файлов. ПО готово к использованию.

По умолчанию, когда приложение App-V публикуется для пользователя, файлы пакета копируются в папку %PROGRAMDATA%. Однако, клиент можно переключить в режим использования хранилища общего содержимого (Shared Content Store). В Powershell команда будет выглядеть так:
 

Set-AppvClientConfiguration -SharedContentStoreMode 1



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

Если несколько программ должны взаимодействовать друг с другом – их можно объединять в группы в разделе «Connection Groups». В этом случае их виртуальные среды объединяются, файлы и реестр становятся доступны всем членам группы. Потребуется некоторый опыт, чтобы правильно формировать такие группы, выявлять зависимости программ и задавать их приоритет. Иногда отдельные компоненты мы рекомендуем не виртуализировать, а устанавливать непосредственно в образ системы. Это могут быть драйверы ODBC или настройки подключений к базам данных.

Здесь может сложиться впечатление, что виртуализация – спасительное решение на все случаи жизни. Увы, как и у любой технологии у нее есть свои ограничения. В частности, с помощью Microsoft App-V не могут быть виртуализированы драйвера или службы, которые запускаются при старте системы, (см. Руководство по виртуализации в Microsoft Application Virtualization 5.0). Как и всякая технология, App-V развивается и многие ограничения уже преодолены. Например, более не является проблемой виртуализация контекстного меню приложения в проводнике и различных ActiveX расширений. Кстати, это развитие в случае App-V порой также является вызовом. Сервиспаки и исправления помимо решения проблем привносят существенное изменение функционала и являются, фактически, новой версией технологии. Однако, имея за плечами более тысячи вуртуализированных приложений, мы помогаем нашим заказчикам в кратчайшие сроки внедрить в рабочей среде новые функции, не нарушив бизнес-процессов.

Итак, мы рассмотрели преимущества виртуализации приложений. Коротко, на примере Microsoft App-V, познакомились с основными этапами создания и публикации виртуальных пакетов. Конечно, это далеко не единственный инструмент виртуализации. Нельзя не упомянуть Citrix XenApp, VMware ThinApp, Novell Zenworks. Выбор зависит от потребностей вашего бизнеса. Но основываясь на опыте поддержки наших клиентов, реализовавших переход к виртуальной среде, мы можем сформулировать стратегию перехода так: если приложение можно виртуализировать – его нужно виртуализировать. Плюсы неоспоримы.