воскресенье, 22 мая 2011 г.

Виртуализация приложений с помощью Microsoft Application Virtualization (App-V)

Эта статья рассказывает про виртуализацию приложений с помощью Microsoft Application Virtualization (далее App-V). Цель статьи- познакомить читателей с принципами виртуализации приложений и использованием виртуальных приложений на примере App-V.

Содержание статьи:
image

Часть 1. Введение.

Назначение.

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

Возможности.

Основные возможности App-V:
• Позволяет запускать приложения без установки их на ОС
• Позволяет изолировать приложения друг от друга
• Позволяет изолировать приложения от ОС
• Позволяет запускать несколько версий приложения одновременно
• Позволяет централизованно управлять приложениями
• Позволяет отслеживать использование приложений
• Позволяет создавать msi- файлы приложений
• Позволяет контролировать лицензии на приложения
• Позволяет получить статистику использования приложений

Преимущества.

При использовании виртуальных приложений можно получить следующие преимущества:
• Увеличивается уровень управляемости приложений
• Упрощается процесс развертывания приложений
• Сокращается время развертывания приложений
• Упрощается переход на новые версии ОС и приложений
• Сокращаются расходы на развертывание, поддержку и переход на новые версии приложений
• Приложения могут предоставляться как услуги (SaaS)

Ограничения App-V.

К сожалению не все приложения можно сделать виртуальными. Существует ряд ограничений. Например, невозможно, либо официально не поддерживается:
• Виртуализация приложений, которые устанавливают драйверы
• Виртуализация приложений, которые начинают работу до загрузки ОС
• Виртуализация приложений, которые работают только на определенных аппаратных конфигурациях
• Виртуализация приложений, которые используют COM+
• Виртуализация антивирусного ПО
• Виртуализация обновлений ПО

Происхождение App-V.

App-V не является собственной разработкой компании Microsoft. Это продукт компании Softricity, которая была поглощена Microsoft летом 2006 года. До поглощения App-V назывался SoftGrid.

Получение.

App-V не продается отдельно, и является частью Microsoft Desktop Optimization Pack (далее MDOP). MDOP- это набор программного обеспечения для оптимизации управления и развертывания клиентских ОС и приложений. MDOP доступен для клиентов Microsoft, заключивших договор Software Assurance.Подробнее о получении App-V и MDOP можно узнать на сайте MDOP: www.microsoft.com/windows/enterprise/products/mdop.aspx
Так же App-V можно скачать из TechNet'а.

Часть 2. Архитектура.

Общая архитектура.

Ниже приведена схема инфраструктуры App-V (схема взята с официального сайта App-V, и немного изменена мной).
image
Терминология и компоненты.

На схеме цифрами обозначены:
1- Application Virtualization Sequencer — клиентский компьютер с установленным приложением App-V Sequencer, который непосредственно делает из реальных приложений виртуальные
2- Application Virtualization Management Server — сервер с установленной серверной частью App-V, которая отвечает за управление всей инфраструктурой App-V: обработку клиентских запросов, доставку и хранение виртуальных приложений, отслеживание лицензий, генерацию отчетов, и т.д.
3- Application Virtualization Streaming Server — то же, что Management Server, только без возможности управления, может только обрабатывать клиентские запросы, хранить и доставлять приложения
4- Application Virtualization Management Console — консоль управления, ставится на рабочее место администратора App-V. С помощью этой консоли можно управлять работой App-V.
5- Рабочие станции и сервера, на которых установлена клиентская часть App-V, которая позволяет пользоваться виртуальными приложениями. Клиентскую часть можно поставить на сервера и компьютеры под управлением Windows XP/Server 2003/Vista/Server 2008 (начиная с версии App-V 4.5 клиентская часть не может ставиться на ОС Windows 2000, в версии App-V 4.1 такое еще было возможно). Для серверных систем существует клиент, совместимый с ролью терминального сервера, т.е. пользователи терминального сервера могут запускать виртуальные приложения в сессии Remote Desktop.

Так же Application Virtualization Management Server использует SQL Server для хранения настроек и другой информации, и IIS для обработки запросов на подключение с помощью консоли администратора.

Общая логика работы системы такова (будем считать, что все компоненты App-V установлены, и работают исправно):
1. После создания виртуального приложения (подробнее об этом далее), оно копируется на Management Server в общую папку (не обязательно копировать приложение именно на Management Server, но будем считать, что нам захотелось скопировать именно туда)
2. Далее с помощью консоли управления администратор импортирует виртуальное приложение на сервер, и с помощью групп Active Directory раздает права пользователям на его запуск
3. У пользователей, которые имеют право на запуск приложения, его иконка появляется на рабочем столе, на панели быстрого запуска, в меню Пуск, и т.д. (зависит от того, как настроил администратор)
4. После того, как пользователь запускает виртуальное приложение, оно, с помощью клиента App-V, скачивается с сервера, запускается внутри изолированной виртуальной среды, и кешируется локально
5. Когда в следующий раз пользователь запустит виртуальное приложение, оно не будет скачиваться с сервера, т.к. оно уже есть в локальном кеше

Режимы работы.

Режим работы инфраструктуры App-V, который описывался выше, называется полным (Full). Так же существуют легкий (Lightweight) и автономный (Standalone) режимы. Их схемы приводятся ниже (схемы взяты с официального сайта App-V).

Легкий (Lightweight) режим:
image
Этот режим работы используется в основном в региональных отделениях компаний. Из- за отсутствия Management Server'а отсутствует некоторая функциональность App-V, например, отслеживание лицензий и использования ПО, однако присутствует основной функционал- приложения доставляются пользователям по сети.

Автономный (Standalone) режим:
image
В этом режиме вынуждены работать пользователи, которые не могут получить доступ к Management Server'у (например, пользователи, находящиеся в другом офисе компании). Приложения доставляются в виде MSI-файла с помощью CD или USB- диска.

Подробнее про режимы работы инфраструктуры App-V можно узнать здесь www.microsoft.com/systemcenter/appv/infrastructure.mspx

Безопасность.

Уровень безопасности ОС, которые установлены на серверах, входящих в инфраструктуру App-V, поднимается стандартными средствами, такими, как, например, Security Configuration Wizard. Подробные руководства можно найти на сайте Microsoft ( technet.microsoft.com/en-us/security/bb977553.aspx ). Доступ пользователей к виртуальным приложениям контролируется с помощью групп безопасности Active Directory. Подробнее про безопасность можно узнать в документе App-V Security Best Practices, который можно найти здесь download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-4102c05a6d44/AppV_Security_Best_Practices.docx

Интеграция.

App-V можно интегрировать с другим ПО Microsoft, например с System Center Configuration Manager 2007 R2 (далее SCCM). В случае интеграции App-V с SCCM, инфраструктура App-V выглядит примерно так (схема взята с официального сайта App-V):
image
Интеграция с SCCM дает ряд преимуществ- например, можно распространять виртуальные приложения с помощью точек распространения приложений SCCM, улучшается контроль за распространением приложений в больших инфраструктурах, и т.д.
Подробнее про использование App-V совместно с SCCM можно почитать здесь www.microsoft.com/systemcenter/appv/configmgr.mspx и здесь download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-4102c05a6d44/App-V_and_ConfigMgr_Whitepaper_Final.docx

Часть 3. Внедрение.

Требования.

Минимальные системные требования к App-V Management Server (такие же для Streaming Server):
Процессор- Intel Pentium III, 1 ГГц.
Оперативная память- 512 Мб.
Место на диске- 200 Мб (это только для серверной части, разумеется, для каждого виртуального приложения так же понадобится место).
Операционная система- Windows Server 2003 Standard (SP1 или выше), Windows Server 2003 Enterprise (SP1 или выше), или Windows Server 2008.

Минимальные системные требования к App-V Sequencer:
Процессор- Intel Pentium III, 850 МГц
Оперативная память- 256 Мб, 500 Мб файл подкачки.
Жесткий диск- два физических жестких диска, по 20 Гб каждый (на первом устанавливается ОС, на втором- приложение, которое надо виртуализировать).
Операционная система- Windows XP Professional (SP2 или SP3), Windows Server 2003, Windows Vista, Windows Server 2008 с установленными терминальными службами.

Минимальные системные требования к App-V Desktop Client:
Процессор и оперативная память- зависит от ОС, которую планируется использовать.
Жесткий диск- 30 Мб для установки и 4 Гб для кеша.
Операционная система- Windows XP Professional (SP2 или SP3) 32-битная, Windows Vista RTM/SP1 (Business, Enterprise, или Ultimate) 32-битная.

Минимальные системные требования к App-V Terminal Services Client:
Процессор и оперативная память- зависит от ОС, которую планируется использовать.
Жесткий диск- 20 Мб для установки и 2 Гб для кеша.
Операционная система- Windows Server 2003 (Standard, Enterprise, или Datacenter, SP1 или выше) 32-битная, Windows Server 2008 (Standard, Enterprise, Datacenter) 32-битная.

64- битные системы App-V не поддерживаются. Поддержка 64- битных систем будет в следующей версии App-V.

Планирование.

Планирование App-V- достаточно непростое дело. Нет смысла описывать все этапы планирования в обзорной статье, детально они описаны в документе «Microsoft Application Virtualization 4.5» серии Infrastructure Planning and Design (эта серия документов описывает планирование и внедрение различных программных продуктов Microsoft). Скачать данный документ можно здесь www.microsoft.com/downloads/details.aspx?familyid=ad3921fb-8224-4681-9064-075fdf042b0c&displaylang=en

Часть 4. Эксплуатация.

Администрирование.

Администрирование App-V осуществляется с помощью App-V Management Console (по сути- это обычная MMC- консоль). Вот как выглядит интерфейс администрирования:

image
Подробнее про администрирование App-V можно узнать в документации ( technet.microsoft.com/en-us/appvirtualization/cc843994.aspx ).

Виртуализация приложений.

Виртуализация (или секвенирование, sequencing) приложений- это процесс превращения обычного приложения в виртуальное. Само слово «sequencing» можно перевести как «определение основной структуры».

Кратко этот процесс можно описать так:
1. На свежеустановленную ОС устанавливается App-V Sequencer, и включается режим наблюдения за установкой приложений
2. Далее устанавливается необходимое приложения. Во время установки Sequencer наблюдает за установкой, и отслеживает какие изменения установщик приложения вносит в систему (переписывает новые файлы, добавляет ключи реестра, устанавливает новые службы, и т.д.)
3. После окончания установки приложения Sequencer создает виртуальное приложение на основе своих наблюдений за ходом установки приложения.
Процесс виртуализации приложений очень похож на процесс перепаковки MSI- файлов. Подробнее про процесс виртуализации приложений можно узнать из документа Microsoft Application Virtualization 4.5 Sequencing Guide (http://download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-4102c05a6d44/App-45_Sequencing_Guide_Final.docx)

Само виртуальное приложение состоит из нескольких файлов и одной папки:

image
Папка «Имя_приложения» Icons- содержит иконку для запуска приложения, которая появится у пользователя на рабочем столе и на панели быстрого запуска.
Файл «Имя_приложения».osd- содержит настройки приложения и информацию о нем.
Файл «Имя_приложения».sft- содержит в себе непосредственно виртуальное приложение
Файл «Имя_приложения».sprj- файл проекта
Файл «Имя_приложения»_manifest.xml- содержит в себе еще немного информации про приложение

Распространение приложений.

После создания виртуального приложения, его надо переписать на App-V Management Server в общую папку, с помощью консоли управления подключить к серверу App-V и настроить разрешения. После этих несложных действий пользователи смогут использовать виртуальные приложения.

Использование приложений.

Если на компьютере пользователя стоит клиент App-V, и у него имеется разрешение на запуск каких- либо виртуальных приложений, то при входе в Windows ярлыки этих приложений появятся на рабочем столе (и в других местах, если это настроил администратор). После запуска виртуального приложения оно скачивается с сервера, кэшируется локально, и запускается. При этом приложение может взаимодействовать с файловой системой локального компьютера, реестром, сетью, и ведет себя так, как будто оно установлено локально. Для управления клиентом App-V существует специальная MMC- оснастка, с помощью которой при наличии соответствующих прав можно удалить виртуальное приложение из кэша, указать другой сервер App-V, и т.д.

Часть 5. Заключение.

Конкуренты.

Microsoft App-V это не единственный продукт, реализующий виртуализацию приложений, и доставку их пользователям. Существует продукт VMware ThinApp, предлагающий примерно такую же функциональность (кстати, ThinApp- это не собственная разработка VMware, а разработка компании Thinstall, которая была поглощена VMware в прошлом году). К сожалению я не эксперт в продуктах VMware, и не могу объективно определить насколько ThinApp лучше (или хуже) App-V. Более подробная информация про VMware ThinApp находится здесь vmware.com/products/thinapp/
Над виртуализацией приложений работает и компания Citrix ( www.citrix.com/English/ps2/products/product.asp?contentID=186 )

Примеры внедрения.

Примеры внедрения App-V можно найти здесь www.microsoft.com/casestudies/search.aspx?ProTaxID=3369
К сожалению в нашей стране нет (известных мне) компаний, которые уже внедрили в свою инфраструктуру App-V, однако есть несколько крупных компаний, которые тестируют этот продукт.

Личный опыт.

Я достаточно давно работаю с App-V, и могу сказать, что этот продукт подходит для промышленной эксплуатации. Последнюю версию App-V, 4.5, я тестировал примерно 2 месяца в своей лабе, и не заметил каких- либо существенных недостатков, наоборот, много багов исправлено, появились дополнительные возможности.
В общем продукт хороший, пользоваться можно :-)

Полезные ссылки.

• Официальный сайт App-V: www.microsoft.com/systemcenter/appv/default.mspx
• Раздел TechNet про App-V technet.microsoft.com/en-us/appvirtualization/default.aspx
• Блог команды разработчиков App-V: blogs.technet.com/softgrid/
• Независимый блог про App-V: www.softgridblog.com/
• Сайт, на котором можно найти уже готовые виртуальные приложения: www.instantapp.net/
• Форум пользователей App-V www.softgridguru.com/

Оригинал http://habrahabr.ru/blogs/personal/50502/

3 комментария:

  1. лучше видео посмотреть
    http://www.techdays.ru/videos/1325.html

    ОтветитьУдалить
  2. Здравствуйте. Очень хорошая статья. А позволяет ли APP-V виртуализировать Internet Explorer 6?
    Спасибо

    ОтветитьУдалить
    Ответы
    1. Не задавался вопросом, а смысл? браузер, мягко говорят, протух)

      Удалить