Compartir vía


Consideraciones sobre automatización de la plataforma y DevOps para Azure Virtual Desktop

Azure Virtual Desktop es un servicio administrado que proporciona un plano de control de Microsoft para el entorno de virtualización de escritorio.

Este artículo se centra en las tareas operativas que necesita para ejecutar un entorno de Azure Virtual Desktop. Puede aplicar cada recomendación de este artículo individualmente. No es necesario implementar todas las recomendaciones para que la automatización valga la pena.

Consideraciones de diseño

Revise las siguientes consideraciones al planear y diseñar el entorno de Azure Virtual Desktop.

Integración con DevOps

La automatización no tiene que significar la integración con DevOps, pero la integración ofrece muchas ventajas. La automatización del proceso de creación de la imagen dorada es digna de inversión por varias razones.

  • Al usar una canalización de DevOps, puede administrar mejor el flujo de automatización.
  • Puede recibir informes y alertas sobre las implementaciones de un pipeline de DevOps.
  • Puede configurar la canalización para que se integre con marcos de pruebas y crear puertas de aprobación para las fases del proceso de automatización.
  • Puede iniciar canalizaciones desde muchos eventos predefinidos, como la versión de una nueva imagen de galería, aplicación o mediante una programación establecida.
  • Al automatizar la creación del grupo de hosts, es fácil mover los metadatos del grupo de hosts a nuevas ubicaciones geográficas cuando estén disponibles nuevas ubicaciones.

Infraestructura como código

A medida que avanza hacia la adopción de prácticas de DevOps, tiene que elegir una herramienta para implementar los recursos de Azure. Hay dos categorías diferentes de herramientas de IaC. La opción preferida es una herramienta IaC declarativa.

Azure proporciona opciones nativas con ARM templates y Azure Bicep.

También puede encontrar herramientas de IaC de terceros, como Terraform de HashiCorp.

Agrupado frente a personal

A medida que su organización expande su entorno, la mayoría de la carga de trabajo se encuentra en una configuración agrupada en lugar de una configuración personal.

Las configuraciones personales suelen ser más costosas de ejecutarse que las configuraciones agrupadas. Son adecuados para usuarios específicos de cargas de trabajo, como los desarrolladores que normalmente requieren permisos elevados. Si ejecuta grupos de hosts en modo personal, intente mantener las máquinas como mantiene sus escritorios físicos para reducir la cantidad de herramientas necesarias en su entorno.

Las configuraciones agrupadas son las más populares para la virtualización de escritorio, por lo que se centran en este artículo. Los entornos agrupados deben actualizarse de forma diferente a los entornos tradicionales. Actualice las máquinas virtuales (VM) de una imagen gold con la cadencia correcta para su organización (normalmente cada 1 a 3 meses). Si su organización está altamente automatizada, es posible que pueda aumentar la cadencia a semanal o incluso nocturnamente si es necesario.

Creación de imágenes

Al ampliar el entorno de Azure Virtual Desktop, se crea un grupo de hosts a partir de la imagen dorada, que idealmente se crea a través de un proceso automatizado.

También puede usar una lista de comprobación de compilación para escalar. Si tiene un entorno grande, el proceso de lista de comprobación solo debe formar parte de la configuración inicial de desarrollo y pruebas. Cuanto más automatice la creación de la imagen gold, más seguro podrá estar en la precisión de la compilación y la estabilidad del entorno.

No recomendamos usar la imagen existente para crear una máquina virtual que actualice con nuevas aplicaciones y cambios de configuración, y luego capturarla para usarla como su "nueva" imagen dorada. Mantener este escenario implica un riesgo significativo y es un factor importante en los entornos de virtualización de escritorio que se convierten en estáticos y frágiles.

Hay muchas herramientas de automatización para crear imágenes doradas, incluido el proceso Packer que se describe más adelante en este artículo. Use el conjunto de herramientas más adecuado para su organización. Independientemente de las herramientas que elija, automatice la mayor parte de la creación de imágenes doradas posible para que pueda mantener más fácilmente el estado del entorno de Azure Virtual Desktop.

Instalación de la aplicación

Las aplicaciones se pueden poner a disposición de los usuarios de dos maneras: instaladas en la imagen o entregadas dinámicamente por usuario.

Las aplicaciones instaladas en la imagen deben ser universales para los usuarios y una parte del proceso de creación de imágenes automatizada. Las aplicaciones instaladas por imágenes pueden incluir productos de seguridad y el conjunto de aplicaciones de Microsoft 365.

Las aplicaciones entregadas dinámicamente por usuario deben incluir todo lo demás que requiere un enfoque más flexible. Las aplicaciones entregadas dinámicamente pueden incluir aplicaciones restringidas a un grupo específico y aplicaciones que no son compatibles con otras aplicaciones.

Despliegue de idioma

A medida que los entornos de Azure Virtual Desktop empiezan a escalar horizontalmente, es posible que tenga que localizar imágenes en el idioma nativo para sus usuarios. Puede empezar desde el idioma local si lo prefiere, o puede agregar más idiomas durante la compilación de la imagen. Tenga en cuenta este requisito al seleccionar la imagen base. La imagen de la galería de Windows 10 optimizada previamente, por ejemplo, con y sin Microsoft 365, solo se proporciona en inglés de Estados Unidos (en-US).

Nota:

Si usas la sesión múltiple de Windows 10 Enterprise, no puedes compilarla con un lenguaje diferente. En este caso, debe adaptar la imagen de la galería proporcionada. Para adaptar la imagen de la galería de en-US existente, instale los idiomas adicionales antes de instalar otras aplicaciones.

Ubicaciones de implementación

Azure Virtual Desktop ofrece más libertad en torno a la ubicación geográfica de los grupos de hosts que los entornos de escritorio tradicionales. Esta libertad existe porque todas las ubicaciones de Azure admiten Azure Virtual Desktop. Evite crear máquinas virtuales a partir de una imagen en una amplia red de área extensa (WAN) haciendo que la imagen gold esté disponible en cada una de las mismas ubicaciones que los usuarios.

Actualizaciones de imágenes gold del grupo de hosts

Hay dos maneras de actualizar la imagen dorada en la que se basan las VMs de un grupo de hosts determinado.

Método uno:

  • Implemente un segundo grupo de hosts y, a continuación, transfiera a los usuarios al nuevo grupo cuando esté listo.
  • Haga que el grupo de hosts antiguo esté disponible en caso de que se necesite un retroceso.
  • Puede quitar el grupo de hosts anterior una vez que la organización esté satisfecho de que el nuevo grupo de hosts funciona correctamente.

Método dos:

  • Establezca las máquinas virtuales existentes en el modo de vaciado dentro del grupo de hosts.
  • Implemente nuevas VMs desde la imagen dorada actualizada en ese mismo grupo de hosts.
  • Tenga cuidado de no alcanzar restricciones de recursos o límites de API al duplicar el número de máquinas virtuales de un único grupo de hosts.

Recomendaciones de diseño

Revise las siguientes recomendaciones al diseñar el entorno de Azure Virtual Desktop de su organización.

Administración de código fuente

Se recomienda usar Git para administrar el código fuente y mantener una estrategia de bifurcación sencilla. Al usar Git para su entorno:

  • Mantenga privado el repositorio de Git y el proyecto de Azure DevOps a menos que la directiva de la empresa especifique que los repositorios deben ser públicos.
  • Inicia tu repositorio con un archivo LÉAME para que puedas comenzar a completar información acerca de tu proyecto.
  • Modifique los permisos del proyecto para permitir que otros miembros del equipo accedan.
  • Adopte un proceso básico de elementos de trabajo para desarrollar el pipeline y simplificar sus cargas de trabajo.
  • Como mínimo, debe mantener dos repositorios: un repositorio para administrar las compilaciones de imágenes gold y otro repositorio para administrar las implementaciones de Azure Virtual Desktop.

Tuberías

El sistema de implementación de pipeline viene determinado por el sistema de administración de código fuente que elijas.

Si su organización se ha estandarizado en Azure DevOps, use Azure Pipelines. Si su organización ha estandarizado en GitHub, use Acciones de GitHub. Cualquiera de las opciones proporciona la capacidad de implementar un agente autohospedado dentro de la red, que tiene varias ventajas, entre las que se incluyen:

  • Asignación de tiempos de construcción más largos
  • Capacidad de acceder a los recursos dentro de la red

Configure las canalizaciones de implementación para que se puedan desencadenar automáticamente para su despliegue en un grupo de hosts de validación, pero no se desplieguen automáticamente en el grupo de hosts de producción sin una aprobación explícita.

Variables y Azure Key Vault

Use grupos de variables al trabajar en Azure Pipelines.

  • Los grupos de variables permiten tener parámetros repetibles en las canalizaciones, como secretos y ubicaciones de archivos.
  • Las variables dentro de los grupos de variables se pueden almacenar como pares clave-valor, pero el método recomendado es Vincular un grupo de variables a una instancia de Azure Key Vault para extraer secretos para su uso en la canalización de implementación.

Creación de imágenes de Azure Virtual Desktop

Use el servicio Azure Image Builder (AIB) para automatizar los procesos de compilación, actualización, sysprep y distribución de las imágenes gold. Este servicio puede usar una imagen base compatible de Azure Marketplace para cada compilación para asegurarse de que tiene las actualizaciones más recientes.

Nota:

Azure Image Builder está disponible actualmente en regiones seleccionadas, pero puede distribuir imágenes fuera de estas regiones.

Como parte del proceso de compilación de imágenes doradas, tenga en cuenta todas las aplicaciones que necesita instalar y determine si se pueden instalar a través de scripts. Asegúrese de tener scriptados en PowerShell los comandos de instalación de aplicaciones y registrados en su repositorio de Git. Si no puede descargar instaladores de aplicaciones a través de Internet pública, considere la posibilidad de colocar las aplicaciones en Azure Blob Storage. Si los procesos de instalación de la aplicación necesitan secretos, considere la posibilidad de colocarlos en Azure Key Vault.

Para empezar a trabajar con Azure Image Builder, consulte Creación de una imagen de Azure Virtual Desktop mediante Azure VM Image Builder y PowerShell.

Para invocar Azure Image Builder mediante canalizaciones de CI/CD, use la tarea DevOps del servicio Azure Image Builder para Azure Pipelines o la acción Compilar imagen de máquina virtual de Azure para acciones de GitHub.

HashiCorp Packer es una alternativa de código abierto. Ofrece las mismas funcionalidades que Azure Image Builder (que se basa en HashiCorp Packer), incluida la capacidad de distribuir a una instancia de Azure Compute Gallery.

Para obtener más información sobre Packer, consulte el sitio web de Packer.

El método Packer tiene los siguientes requisitos previos:

  • Las licencias de Azure DevOps deben usar el conjunto completo de herramientas de Packer.
  • Debe asignar a un usuario el rol adecuado en microsoft Entra ID.
  • Debe conceder acceso de colaborador a las entidades de servicio a la suscripción.
  • Debe tener un Azure Key Vault para almacenar secretos, otorgándole a la entidad de servicio permisos de administración de secretos en la directiva de acceso.

Al trabajar con Packer en la canalización de implementación:

  • Instale las herramientas de Packer en el agente de compilación que usará en la canalización de implementación.
  • Cree una fase de validación en tu pipeline para validar que la construcción funciona.
  • Después de la validación, clone la fase de validación y establezca el modo de implementación en Incremental.

Otras consideraciones para el almacenamiento de archivos Packer:

  • Almacene los archivos de Packer y aprovisione en una ubicación centralizada a la que Azure Pipelines pueda acceder. Se recomienda usar recursos compartidos de archivos de Azure para almacenar estos archivos de forma segura.
  • Almacene las credenciales de acceso para Azure Files en Key Vault. Puede extraer las credenciales de acceso de Key Vault durante el proceso de construcción usando variables de canalización.
  • Además, almacene el nombre de archivo de Packer y la clave de cuenta en el almacén de claves vinculado al grupo de variables de Azure DevOps. Las canalizaciones acceden a estas credenciales para descargar archivos de Packer en la máquina virtual que se usa para crear la imagen.
  • Almacene la ruta de acceso UNC como una variable en el grupo de variables de Azure DevOps.

Almacenamiento de imágenes de Azure Virtual Desktop

El servicio Azure Compute Gallery es la manera más sencilla de estructurar y organizar tus imágenes maestras. Proporciona:

  • Replicación global de imágenes en diferentes regiones de Azure.
    • Asegúrese de que ha implementado imágenes en las regiones en las que se implementan los hosts de sesión (VM) de Azure Virtual Desktop.
  • Control de versiones y agrupación de imágenes para facilitar su administración. El control de versiones y la agrupación son útiles para revertir los grupos de hosts de Azure Virtual Desktop a versiones anteriores de la imagen.
  • Imágenes de alta disponibilidad en cuentas de almacenamiento con redundancia de zona (ZRS) en regiones que admiten zonas de disponibilidad. ZRS ofrece mejor resistencia frente a fallos zonales.
  • Uso compartido de imágenes de Azure Virtual Desktop entre suscripciones e incluso entre inquilinos de Microsoft Entra, mediante el control de acceso basado en rol (RBAC).
  • Escalado de implementación con réplicas de imagen en cada región.

Para más información, consulte Introducción al servicio Azure Compute Gallery.

Instalación de aplicaciones en imágenes de Azure Virtual Desktop

  • Para las aplicaciones universales instaladas en la imagen dorada, use el método Packer descrito anteriormente en este artículo.
  • App Attach es el método compatible para entregar aplicaciones dinámicamente a los usuarios en Azure Virtual Desktop. La asociación de aplicaciones permite que las aplicaciones se contenedoricen o se presenten a través de un disco virtual y se adjunten al inicio de sesión del usuario, lo que reduce el tamaño y la complejidad de la imagen base. Este enfoque mejora la flexibilidad, simplifica las actualizaciones y admite prácticas modernas de DevOps.
  • Use canalizaciones de CI/CD para automatizar el empaquetado y la entrega de aplicaciones usadas con App Attach. Para obtener instrucciones sobre el empaquetado, consulte la información general de CI/CD para el empaquetado de aplicaciones.

Implementación de idiomas en imágenes de Azure Virtual Desktop

Microsoft tiene procesos para instalar paquetes de idioma de forma manual o automática. Se recomienda mantener la menor sobrecarga de administración posible y automatizar el proceso de instalación del idioma.

El proceso implica descargar un script de PowerShell en la máquina virtual que será convertida en tu imagen. Puede encontrar scripts de automatización de ejemplo en la documentación de Microsoft. Si sigue la recomendación para pipelines de Packer, puede incluir este proceso como una tarea de compilación de software adicional.

Para obtener más información sobre cómo instalar paquetes de idioma en sesiones múltiples de Windows 10 Enterprise, consulte Instalación de paquetes de idioma en máquinas virtuales Windows 10 en Azure Virtual Desktop.

Use un enfoque de infraestructura como código (IaC) para la implementación y personalización de los recursos de Azure Virtual Desktop. Se deben usar siempre que sea posible para garantizar la coherencia en las implementaciones. Las plantillas de ARM se pueden usar para implementar recursos de Azure Virtual Desktop como parte de una tarea de canalización de CI/CD. También puede usarlos al usar Azure Portal, Azure PowerShell o la CLI de Azure.

A continuación se muestra una estrategia de actualización del grupo de hosts recomendada:

  • Configure una canalización de CI/CD para compilar y distribuir imágenes gold en Azure Compute Gallery.
  • Designe un grupo de hosts de validación e implemente nuevos hosts de sesión en ese grupo mediante canalizaciones de CI/CD.
  • Pruebe su automatización usando un grupo de hosts de validación.
  • Etiquete los hosts de sesión con un número de compilación o una versión de imagen para identificar la versión de la imagen que están ejecutando.
  • Antes de realizar la implementación, compruebe para asegurarse de que tiene suficiente cuota de computación dentro de su suscripción.
  • Tras realizar pruebas exitosas en el grupo de validación, activa el modo de drenaje en los hosts de sesión existentes; las máquinas virtuales etiquetadas serán fáciles de identificar.
  • Implemente nuevos hosts de sesión y permita a los usuarios conectarse.
  • Después de realizar pruebas exitosas en producción, comience a desasignar los hosts de sesión antiguos para no incurrir en más cargos de computación y, finalmente, eliminarlos para no incurrir en más cargos de disco administrado.
  • Los anfitriones de sesión eliminados solo se eliminarán de Azure. Los objetos de equipo permanecerán en AD, por lo que estos objetos de equipo deberán eliminarse manualmente o a través del script.

En el ejemplo anterior se muestra un método de automatización de imágenes mediante Azure DevOps y una canalización de integración continua y entrega continua (CI/CD). Se trata de un enfoque nativo de la nube y ofrece un lanzamiento menos disruptivo de nuevos hosts de sesión sin tiempo de inactividad. Es importante tener en cuenta que debe considerar el aumento en el número de máquinas virtuales a medida que se van retirando las imágenes antiguas y se ponen nuevas imágenes en línea.

Como se mencionó anteriormente, Azure Compute Gallery es un servicio que le ayuda a crear la estructura y la organización en torno a las imágenes. Estas imágenes pueden ser referenciadas por los hosts de sesión de Azure Virtual Desktop en sus implementaciones de IaC. El servicio permite el control de versiones, la agrupación y la replicación de imágenes.

Al implementar los hosts de sesión con una plantilla de ARM o Terraform, recomendamos usar el identificador de recurso de la imagen que creó en la galería como identificador de origen de imagen personalizada de máquina virtual. La imagen que está utilizando debe replicarse mediante el servicio Azure Compute Gallery en las regiones de Azure donde va a implementar sus grupos de hosts de Azure Virtual Desktop.

Pasos siguientes

Aprenda a implementar Azure Virtual Desktop mediante el acelerador de zonas de aterrizaje para escenarios de escala empresarial.