Capa de aplicaciones con discos virtuales y PowerShell

Desacoplar sus aplicaciones del sistema operativo en el que se ejecutan a menudo puede ser un desafío, pero hay algunas formas de hacerlo. Aquí hay una solución que Mark Van Noy, quien administra la infraestructura de escritorio virtual en la Universidad de Colorado Boulder, ideó una solución para este problema. Mark contribuyó anteriormente a mi columna aquí en TechGenix con artículos sobre el uso de VMware Horizon para conectarse a computadoras remotas y el uso de Turbo.net, FlexApp y App-V como soluciones de virtualización de aplicaciones. Ahora escuchemos cómo Mark nos guía a través de su enfoque de capas de aplicaciones, que explica en detalle al final de su tutorial junto con las capturas de pantalla adjuntas y los scripts de PowerShell de muestra.

Capas de aplicaciones con VHD

Desacoplar las aplicaciones del sistema operativo sigue siendo un objetivo difícil de alcanzar para muchas organizaciones de TI. Varias ofertas comerciales prometen proporcionar capas de aplicación, en su mayoría utilizando métodos patentados. Estos métodos de capas permiten agregar aplicaciones individuales a un sistema operativo básico a voluntad o, en algunos casos, incluso administrar la operación en sí como una capa, de modo que no es necesario mantener un grupo de sistemas operativos para varios casos de uso. Con un poco de uso de tecnologías de contenedorización, que ciertamente siguen siendo propietarias, es posible utilizar la tecnología VHD de disco duro virtual integrada en Windows para adjuntar aplicaciones a un sistema operativo en tiempo de ejecución.

Lo primero que se necesita es un método para contener las aplicaciones. La simple instalación de aplicaciones que no sean las más simples en un VHD no funcionará porque las escrituras locales en el registro o los perfiles de usuario no se registran en el disco duro virtual. Algunos ejemplos de tecnologías para contener aplicaciones son App-V de Microsoft, ThinApp de VMware y Turbo.Net. Particularmente digno de mención es FlexApp de LiquidWare, ya que este producto se encarga de la contenedorización de las aplicaciones y la conexión de VHD de forma nativa como parte de su producto. Como utilicé Turbo.Net para crear un prototipo de esta solución, la usaré para todos los ejemplos futuros.

Ventajas de las aplicaciones de capas

Cualquier tecnología de capas de aplicaciones promete sacar las aplicaciones del sistema operativo para que sea necesario administrar menos imágenes de oro. Idealmente, Windows puede mantener y parchear una sola imagen dorada. El control de versiones es mucho más fácil con las capas, ya que una versión actualizada del software se publica automáticamente para los usuarios la próxima vez que inician sesión cuando el contenedor se actualiza en el VHD. La creación de capas también permite deduplicar el almacenamiento, ya que las aplicaciones se almacenan una vez en un VHD en lugar de ocupar espacio en la computadora física local. La mayoría de las soluciones VDI tienen estrategias de deduplicación integradas que ya se pueden usar con máquinas virtuales. Muchas de las soluciones comerciales existentes se crean teniendo en cuenta la VDI, que las vincula a las máquinas virtuales. Esto a menudo conduce a una situación en la que se deben implementar diferentes procesos para administrar los equipos de la infraestructura de escritorio virtual y los escritorios físicos. Mediante el uso de tecnologías de contenedorización de aplicaciones y la colocación de estos contenedores en archivos VHD, las capas de aplicaciones se pueden aplicar a cualquier computadora con Windows. Además, la solución permite administrar las imágenes en un proceso simple montando el VHD localmente y luego copiando o eliminando contenedores en el VHD para agregar, quitar o actualizar software.

Aplicaciones de capas

Aplicaciones de capas

Cómo superponer aplicaciones con Turbo.net

Primero, se debe crear un VHD vacío. Haga clic en Inicio e ingrese "diskmgmt.msc" para acceder a Administración de discos en un cliente de Windows 10. En Administración de discos, haga clic en Acción y seleccione Crear VHD. Elija una ubicación adecuada para el VHD. Puede ser una ruta local o un recurso compartido de red. Asegúrese de elegir VHD en lugar de VHDX para el tipo de disco virtual. En este momento, el cmdlet de PowerShell necesario para implementar un VHDX solo está disponible si Hyper-V también está instalado en el sistema. Esta es probablemente la razón por la que la tecnología MSIX App Attach de Microsoft para Azure Virtual Desktops requiere que se instale Hyper-V, lo que normalmente sería una instalación bastante extraña en una máquina virtual. Una vez que se ha creado el VHD, debe inicializarse y formatearse como cualquier nuevo disco duro físico.

Una vez que se haya creado y formateado el VHD, aparecerá como cualquier otro disco duro. Tenga en cuenta que los VHD tienen un icono azul claro en lugar del gris estándar. A un VHD formateado se le asigna una letra de unidad de forma predeterminada. En su lugar, se podría especificar un punto de montaje específico para que sea fácil de administrar. Al hacer doble clic en un archivo VHD, se montará automáticamente el VHD para que los archivos se puedan mover hacia y desde el VHD como cualquier otro disco duro.

Aplicaciones de capas

El siguiente paso es copiar los Turbo Containers (archivos .svm en lenguaje Turbo) en el VHD vacío. No se necesita mucho. Arrastrar y soltar, Ctrl-C con Ctrl-V, Robocopy, Get-Item o hacer clic con el botón derecho están bien.

Aplicaciones de capas

El paso final para poner en marcha la creación de capas es asegurarse de que Turbo Client esté instalado y que los scripts apropiados estén configurados para ejecutarse. Tenga en cuenta que los scripts de muestra de PowerShell que se enumeran al final de este artículo asumen que Turbo se ha instalado para todos los usuarios. Si Turbo está instalado para un solo usuario, la ruta ejecutable está en la ruta% LOCALAPPDATA% \ cmd del usuario y no en Archivos de programa (x86). La secuencia de comandos de implementación de VHD debe ejecutarse con privilegios elevados, lo que se puede hacer ejecutando el adjunto de VHD como una tarea programada que se ejecuta como una cuenta de administrador en lugar de un SISTEMA. Aunque se requieren privilegios de administrador para recopilar información de VHD, la secuencia de comandos Agregar aplicaciones funciona correctamente cuando se asigna a un objeto de directiva de grupo para el inicio de sesión del usuario. Además, si está utilizando Turbo, asegúrese de que los SVMs Spoonbrew / Clean, Spoonbrew / Base y xvm estén instalados, ya que son el pegamento que permite que los Turbo Containers funcionen. Sin él, los enlaces de la aplicación aparecerán en el menú Inicio, pero las aplicaciones no se iniciarán. (Los scripts de PowerShell que se muestran en las siguientes imágenes se enumeran al final del artículo para copiar y pegar fácilmente).

El rendimiento siempre es una preocupación en todo lo que hacemos en TI. Podemos mejorar el rendimiento de las aplicaciones registradas en el inicio de sesión utilizando un caché turbo común para todos los usuarios en lugar de tener el caché de cada usuario en su computadora local. Para hacer esto, creé otro VHD vacío y lo monté en% LOCALAPPDATA% \ Cache durante la inicialización en lugar de obtener una letra de unidad al montar. Este VHD de caché se proporciona al inicio al igual que el VHD de la aplicación, y un script de inicio de sesión le indica al cliente turbo que apunte a% LOCALAPPDATA% \ Cache en lugar del% PROGRAMDATA% \ Turbo \ Containers \ Repo predeterminado. Las instalaciones posteriores al registrar aplicaciones fueron hasta un 50% más rápidas después de implementar una caché compartida.

Nota sobre Ivanti User Workspace Manager

La prueba de concepto original para el uso de niveles de disco virtual con Turbo Containers fue administrada en su totalidad por Ivantis User Workspace Manager. En particular, se utilizó el componente de política del Environment Manager. Esta solución brindó facilidad de configuración con administración basada en eventos, mayor granularidad al proceso de inicio de sesión sobre cuándo ejecutar la implementación y scripts de VHD, y amplias herramientas para administrar la implementación de VHD. La eliminación de User Workspace Manager del proceso requirió algunos intentos para encontrar una solución. Por ejemplo, UWM procesará automáticamente la altura requerida para montar un VHD de modo que el paso en el área de usuario en UWM se pueda configurar en lugar de aumentar la altura de toda la computadora. Hay otras herramientas que hacen cosas similares como el producto ProfileUnity de Liquidware. Hemos estado usando User Workspace Manager desde que se llamó AppSense, por lo que estamos muy familiarizados con el producto, pero eso de ninguna manera sugiere que User Workspace Manager sea un requisito.

Aplicaciones de capas

Algunos pensamientos finales

Entonces, ¿deberían usarse capas de aplicación? Para ser honesto, probablemente no con Turbo. Turbo tiene su propia función de suscripción incorporada que hace lo mismo básico con menos trabajo. Las suscripciones extraen todas las aplicaciones de un espacio de trabajo específico. Suponiendo que el cliente Turbo ya está instalado para todos los usuarios, una secuencia de comandos de inicio de sesión simple como "Turbo Subscribe Marketing" (sin las comillas) superpondría todas las aplicaciones en el espacio de trabajo de Marketing sin tener que trabajar con archivos VHD.

Algunos escenarios en los que las capas de VHD todavía tienen sentido son las computadoras de estilo quiosco donde los perfiles de usuario no persisten entre los inicios de sesión, las sucursales con almacenamiento disponible rápidamente y conexiones relativamente lentas a los servidores turbo, y las organizaciones con algún tipo de contenedorización de aplicaciones que no tiene la función de suscripción equivalente de Turbo. Un buen ejemplo de esto es App-V. El uso de contenedores de App-V en archivos VHD combinados con scripts de inicio e inicio de sesión esencialmente proporciona la funcionalidad de MSIX App Attach sin las limitaciones de que solo se pueden usar en Azure Virtual Desktops y necesitan instalar Hyper-V en equipos cliente que de otra manera son no disponible utilizará Hyper-V. Ciertamente, hay más escenarios en los que esta tecnología podría ser una bendición. Tenga en cuenta que siempre hay un retraso antes de que Network Attached Storage monte los VHD y presente las aplicaciones.

Scripts de muestra de PowerShell

Ejecutar TurboSVM.ps1

# Conéctese a la unidad $ imagePath = '\\ Your.fileshare.here \ VHD \ Turbo-Test-Layer.vhd' $ unidad = Get-DiskImage -StorageType VHD -ImagePath $ imagePath # Determine la letra de la unidad montada $ letra = (($ unidad | Obtener-Disco | Obtener-Partición | Obtener-Volumen) .DriveLetter) + ': \' # Enumere todas las SVM disponibles en la unidad montada $ svm = Get-ChildItem -path $ letra # Recorra cada SVM y agregue los accesos directos apropiados foreach ($ entrada en $ svm) { & "C: \ Archivos de programa (x86) \ Turbo \ Cmd \ turbo.exe" import svm --name $ entry.BaseName $ entry.FullName & "C: \ Archivos de programa (x86) \ Turbo \ Cmd \ turbo.exe" installi --skip-installed --of Offen $ entry.BaseName }

Montaje-VHD.ps1

$ imagePath = '\\ your.fileshare.here \ VHD \ Turbo-Test-Layer.vhd' $ vhd = Mount-DiskImage -StorageType VHD -Acceso ReadOnly -ImagePath $ imagePath

Set-TurboCache.ps1

$ letra = $ env: LOCALAPPDATA + '\ Cache' # Comando de configuración específico para establecer la configuración turbo para usar el VHD como caché. & "C: \ Archivos de programa (x86) \ Turbo \ Cmd \ turbo.exe" config --gci-expiration = 0 --gci-interval = 0 --image-cache-size = 0 --image-path = $ carta # Asegúrese de que las VM principales estén en la caché; de lo contrario, no se iniciará ningún paquete; crítico. & "C: \ Archivos de programa (x86) \ Turbo \ Cmd \ turbo.exe" Extraiga Spoonbrew / clean, Spoonbrew / base, / xvm

Imagen destacada: Shutterstock

Las capas posteriores a la aplicación con discos virtuales y PowerShell aparecieron por primera vez en TechGenix.

Comentarios