Share via


Considerações sobre DevOps e automação de plataforma para Área de Trabalho Virtual do Azure

A Área de Trabalho Virtual do Azure é um serviço gerenciado que fornece um painel de controle da Microsoft para seu ambiente de virtualização de área de trabalho.

Este artigo se concentra nas tarefas operacionais necessárias para executar um ambiente de Área de Trabalho Virtual do Azure. Você pode aplicar cada recomendação neste artigo individualmente. Você não precisa implementar todas as recomendações para que a automação valha a pena.

Considerações sobre o design

Analise as considerações a seguir ao planejar e projetar seu ambiente de Área de Trabalho Virtual do Azure.

Integrar com o DevOps

Automação não significa necessariamente integração com o DevOps, mas a integração oferece muitas vantagens. Automatizar o processo de compilação para a imagem áurea vale o investimento por vários motivos:

  • Ao usar um pipeline do DevOps, você pode gerenciar melhor o fluxo de automação.
  • Você pode receber relatórios e alertas sobre implantações de um pipeline do DevOps.
  • Você pode configurar o pipeline para integração com estruturas de teste e criar portões de aprovação para estágios no processo de automação.
  • Você pode iniciar pipelines em muitos eventos predefinidos, como o lançamento de uma nova imagem da galeria ou de um aplicativo ou segundo um agendamento definido.
  • Quando você automatiza a criação do pool de host, é fácil mover os metadados do pool de host para novos locais geográficos, quando novos locais são disponibilizados.

Infraestrutura como código

À medida que você avança para adotar as práticas do DevOps, precisa escolher uma ferramenta para implantar os recursos do Azure. Existem duas categorias diferentes de ferramentas de IaC. A opção preferencial é uma ferramenta de IaC declarativa.

O Azure fornece opções nativas com os modelos do ARM e o Azure Bicep.

Você também pode encontrar ferramentas de IaC de terceiros, como o Terraform da HashiCorp.

Em pool versus pessoal

À medida que a organização escala os ambientes horizontalmente, a maior parte da carga de trabalho se enquadra na configuração em pool, em vez de uma configuração pessoal.

As configurações pessoais geralmente são mais caras de serem executadas do que as configurações em pool. Elas são adequadas para usuários de carga de trabalho específicos, como desenvolvedores que geralmente exigem permissões elevadas. Se você executar pools de host no modo pessoal, tente manter os computadores como você mantém as áreas de trabalho físicas, para reduzir a quantidade de ferramentas necessárias no ambiente.

As configurações em pool são as mais populares para virtualização de área de trabalho, por isso este artigo se concentra nelas. Os ambientes em pool precisam ser atualizados de forma diferente dos ambientes tradicionais. Atualize as VMs (máquinas virtuais) de uma imagem áurea na cadência correta para a organização (geralmente a cada um a três meses). Se a organização for altamente automatizada, você pode aumentar a cadência para semanal ou até mesmo noturna, se necessário.

Criação de imagem

Ao escalar verticalmente o ambiente de Área de Trabalho Virtual do Azure, você cria um pool de host com base na imagem áurea, que você cria, de preferência, por meio de um processo automatizado.

Você também pode usar uma lista de verificação de compilação para escalar verticalmente. Se você tiver um ambiente grande, o processo de lista de verificação só deverá fazer parte da configuração inicial de desenvolvimento/teste. Quanto mais você automatizar a criação da imagem áurea, mais confiante você pode ser em relação à precisão da compilação e da estabilidade do ambiente.

Não recomendamos usar a imagem existente para criar uma VM que você atualizará com novos aplicativos e alterações de configuração e depois capturará para uso como a "nova" imagem áurea. A manutenção desse cenário envolve riscos significativos e é um fator importante para que os ambientes de virtualização da área de trabalho se tornem estáticos e frágeis.

Existem muitas ferramentas de automação para criar imagens áureas, incluindo o processo do Packer que descrevemos mais adiante neste artigo. Use o conjunto de ferramentas mais apropriado para a sua organização. Independentemente de quais ferramentas você escolher, automatize o máximo possível a criação de imagem áurea para que você possa manter mais facilmente a integridade do ambiente de Área de Trabalho Virtual do Azure.

Instalação do aplicativo

Os aplicativos podem ser disponibilizados para os usuários de duas maneiras: instalados na imagem ou fornecidos dinamicamente por usuário.

Os aplicativos instalados na imagem devem ser universais para os usuários e uma parte do processo de criação de imagem automatizada. Os aplicativos instalados por imagem podem incluir produtos de segurança e o pacote Microsoft 365.

Os aplicativos entregues dinamicamente por usuário devem incluir tudo o que requer uma abordagem mais flexível. Os aplicativos entregues dinamicamente podem incluir aplicativos restritos a um grupo específico e aplicativos que não são compatíveis com outros aplicativos.

Implantação de idioma

À medida que seus ambientes de Área de Trabalho Virtual do Azure começam a ser expandidos, talvez seja necessário localizar imagens no idioma nativo para seus usuários. Você pode começar no idioma local, caso prefira, ou pode adicionar mais idiomas à imagem na compilação. Considere esse requisito ao selecionar a imagem base. A imagem da galeria do Windows 10 pré-otimizada, por exemplo, com e sem o Microsoft 365, é fornecida apenas em inglês dos Estados Unidos (en-US).

Observação

Se você estiver usando o Windows 10 Enterprise para múltiplas sessões, não será possível compilar usando um idioma diferente. Nesse caso, você precisará adaptar a imagem da galeria fornecida. Para adaptar a imagem existente da galeria em en-US, instale os idiomas adicionais antes de instalar outros aplicativos.

Locais de implantação

A Área de Trabalho Virtual do Azure oferece mais liberdade com relação ao posicionamento geográfico dos pools de host do que um ambiente de área de trabalho tradicional. Essa liberdade existe porque todos os locais do Azure têm suporte da Área de Trabalho Virtual do Azure. Evite criar VMs a partir de uma imagem em uma WAN (rede de longa distância), disponibilizando a imagem áurea em cada um dos mesmos locais que os usuários.

Atualizações da imagem de ouro do pool de host

Há duas maneiras de atualizar a imagem áurea em que se baseiam as VMs em um pool de host específico.

Método um:

  • Implante um segundo pool de host e passe os usuários para o novo pool de host quando estiver pronto.
  • Disponibilize o pool de host antigo, caso uma reversão seja necessária.
  • Você pode remover o pool de host antigo, depois que a organização concluir que o novo pool de host está funcionando corretamente.

Método dois:

  • Defina as VMs existentes para o modo esvaziar no pool de host.
  • Implante as novas VMs da imagem áurea atualizada no mesmo pool de host.
  • Tome cuidado para não atingir restrições de recursos ou limitações de API ao duplicar o número de VMs em um único pool de host.

Recomendações sobre design

Analise as recomendações a seguir ao projetar o ambiente de Área de Trabalho Virtual do Azure da sua organização.

Gerenciamento de código-fonte

É recomendável usar o Git para gerenciar o código-fonte e manter uma estratégia de ramificação simples. Ao usar o Git para o ambiente:

  • Mantenha o repositório do Git e o projeto do Azure DevOps privados, a menos que a política da empresa especifique que os repositórios sejam públicos.
  • Inicialize o repositório com um arquivo LEIAME para que você possa começar a preencher informações sobre o projeto.
  • Ajuste as permissões do projeto para permitir que o acesso de outros membros da equipe.
  • Adote um processo básico de item de trabalho para desenvolver o pipeline e manter as cargas de trabalho alinhadas.
  • No mínimo, você deve manter dois repositórios: um repositório para gerenciar as compilações de imagem áurea e outro repositório para gerenciar as implantações de Área de Trabalho Virtual do Azure.

Pipelines

O sistema de implantação de pipeline é determinado pelo sistema de gerenciamento de código-fonte que você escolher.

Se sua organização tiver padronizado no Azure DevOps, use o Azure Pipelines. Se sua organização tiver padronizado no GitHub, use o GitHub Actions. Qualquer uma das opções fornece a capacidade de implantar um agente auto-hospedado na rede, o que tem vários benefícios, incluindo:

  • Subsídio para tempos de compilação mais longos
  • Capacidade de acessar recursos na rede

Feche os pipelines de implantação de modo que possam ser disparados automaticamente, para implantação em um pool de hosts de validação, mas não possam ser enviados automaticamente para o pool de host de produção sem aprovação explícita.

Variáveis e o Azure Key Vault

Use grupos de variáveis ao trabalhar no Azure Pipelines.

  • Os grupos de variáveis permitem que você tenha parâmetros repetíveis nos pipelines, como segredos e locais de arquivo.
  • As variáveis nos grupos de variáveis podem ser armazenadas como pares chave/valor, mas o método recomendado é Vincular um grupo de variáveis a um Azure Key Vault, para extrair segredos para uso no pipeline de implantação.

Criar imagens de Área de Trabalho Virtual do Azure

Use o serviço AIB (Construtor de Imagens do Azure) para automatizar os processos de compilação, atualização, sysprep e distribuição para as imagens áureas. Esse serviço pode usar uma imagem base com suporte do Azure Marketplace para cada compilação, para garantir que você tenha as atualizações mais recentes.

Observação

No momento, o Construtor de Imagens do Azure está disponível nas regiões selecionadas, mas você pode distribuir imagens fora dessas regiões.

Como parte do processo de compilação de imagens áureas, considere todos os aplicativos que você precisa instalar e determine se eles podem ser instalados por meio de scripts. Verifique se você tem comandos de instalação de aplicativo com script no PowerShell e confirmados no repositório Git. Se você não conseguir baixar os instaladores de aplicativo pela Internet pública, coloque os aplicativos no Armazenamento de Blobs do Azure. Se os processos de instalação do aplicativo precisarem de segredos, coloque-os no Azure Key Vault.

Para começar a usar o Construtor de Imagens do Azure, confira Criar uma imagem de Área de Trabalho Virtual do Azure usando o Construtor de Imagens de VM do Azure e o PowerShell

Para invocar o Construtor de Imagens do Azure usando os pipelines de CI/CD, use a Tarefa do DevOps de Serviço do Construtor de Imagens do Azure para Pipelines do Azure ou a Compilação da Ação de Imagem da Máquina Virtual do Azure para GitHub Actions.

O HashiCorp Packer é uma alternativa de código aberto. Ele oferece os mesmos recursos que o Construtor de Imagens do Azure (que é criado com base no HashiCorp Packer), incluindo a capacidade de distribuir para uma Galeria de Computação do Azure.

Para obter mais informações sobre o Packer, confira o site do Packer.

O método do Packer tem os seguintes pré-requisitos:

  • O licenciamento do Azure DevOps deve usar o conjunto completo de ferramentas do Packer.
  • Você deve atribuir a um usuário a função de Administrador Global no Microsoft Entra ID.
  • Você deve conceder a uma entidade de serviço o acesso de colaborador à assinatura.
  • Você deve ter um Azure Key Vault para armazenar segredos, proporcionando à entidade de serviço o gerenciamento de segredos na política de acesso.

Ao trabalhar com o Packer no pipeline de implantação:

  • Instale as ferramentas do Packer no agente de build que você usará no pipeline de implantação.
  • Crie uma fase de validação no pipeline para validar se a compilação funciona.
  • Após a validação, clone a fase de validação e defina o modo de implantação como Incremental.

Outras considerações para o armazenamento de arquivos do Packer:

  • Armazene os arquivos e as provisões do Packer em um local centralizado que o Azure Pipelines possa acessar. Recomendamos usar compartilhamentos de arquivos do Azure para armazenar esses arquivos com segurança.
  • Armazene as credenciais de acesso dos Arquivos do Azure no Key Vault. Você pode receber as credenciais de acesso do Key Vault na compilação usando as variáveis do pipeline.
  • Além disso, armazene a chave de conta e o nome de arquivo do Packer no cofre de chaves vinculado ao grupo de variáveis no Azure DevOps. Os pipelines acessam essas credenciais para baixar os arquivos do Packer para a VM usada para criar a imagem.
  • Armazene o caminho UNC como variável no grupo de variáveis do Azure DevOps.

Armazenar imagens de Área de Trabalho Virtual do Azure

O serviço de Galeria de Computação do Azure é a maneira mais simples de criar a estrutura e a organização em torno das imagens áreas. Ele fornece:

  • Replicação global das imagens para diferentes regiões do Azure.
    • Verifique se você implantou imagens nas regiões em que os hosts de sessão (VMs) da Área de Trabalho Virtual do Azure são implantados.
  • Agrupamento e controle de versão de imagem para facilitar o gerenciamento. O controle de versão e o agrupamento são úteis para reverter os pools de host de Área de Trabalho Virtual do Azure para as versões de imagem anteriores.
  • Imagens altamente disponíveis com contas de ZRS (armazenamento com redundância de zona) em regiões que dão suporte a Zonas de Disponibilidade. O ZRS oferece maior resiliência contra falhas em zonas.
  • Compartilhamento de imagens da Área de Trabalho Virtual do Azure entre assinaturas e até mesmo entre locatários do Microsoft Entra, por meio do RBAC (controle de acesso baseado em função).
  • Dimensionamento de implantações com réplicas de imagem em cada região.

Para obter mais informações, confira Visão geral do serviço de Galeria de Computação do Azure.

Instalação de aplicativos em imagens da Área de Trabalho Virtual do Azure

  • Para aplicativos universais instalados na imagem áurea, use o método do Packer descrito anteriormente neste artigo.
  • Atualmente, o App-V é o método com suporte da Microsoft para streaming de aplicativos por usuário.
  • Use o mascaramento de aplicativos do FSLogix para ocultar ou revelar aplicativos ou plug-ins quando esses aplicativos não funcionarem bem com o App-V.
  • Sempre que possível, use a anexação de aplicativo MSIX para entregar aplicativos dinamicamente aos usuários e reduzir o tamanho geral da imagem áurea. Você também pode usar pipelines de CI/CD para automatizar o processo de empacotamento de aplicativos no formato MSIX. Para saber mais, confira a visão geral.

Implantar idiomas nas imagens de Área de Trabalho Virtual do Azure

A Microsoft tem processos para instalar pacotes de idiomas manual ou automaticamente. Recomendamos manter o mínimo de sobrecarga de administração possível e automatizar o processo de instalação de idiomas.

O processo envolve o download de um script do PowerShell na VM que será convertido na imagem. Você pode encontrar os scripts de automação de exemplo na documentação da Microsoft. Se você estiver seguindo a recomendação para pipelines do Packer, poderá incluir esse processo como uma tarefa de build extra.

Para obter mais informações sobre como instalar pacotes de idiomas no Windows 10 Enterprise para múltiplas sessões, confira Instalar pacotes de idiomas em VMs do Windows 10 na Área de Trabalho Virtual do Azure.

O uma abordagem IaC (Infraestrutura como Código) para a implantação e a personalização dos recursos de Área de Trabalho Virtual do Azure. Eles devem ser usados sempre que possível para garantir a consistência nas implantações. Os modelos do ARM podem ser usados para implantar recursos da Área de Trabalho Virtual do Azure como parte de uma tarefa do pipeline de CI/CD. Você também pode usá-los ao usar o portal do Azure, o Azure PowerShell ou a CLI do Azure.

Veja abaixo uma estratégia recomendada para atualização do pool de host:

  • Configure um pipeline de CI/CD para criar e distribuir imagens áureas para a Galeria de Computação do Azure.
  • Designe um pool de host de validação e implante novos hosts da sessão no pool de host de validação usando pipelines de CI/CD.
  • Teste a automação usando um pool de host de validação.
  • Marque os hosts da sessão com um número de build ou uma versão de imagem para identificar a versão da imagem que eles estão executando.
  • Antes de implantar, valide (ou verifique) para garantir que você tenha cota de computação suficiente na assinatura.
  • Após o teste bem-sucedido no pool de validação, coloque os hosts da sessão existentes no modo esvaziar – as VMs marcadas serão fáceis de identificar.
  • Implante os novos hosts da sessão e permita que os usuários se conectem.
  • Após os testes bem-sucedidos na produção, comece a desalocar os antigos hosts da sessão para não incorrer em mais encargos de computação e eventualmente exclua-os para não incorrer em mais encargos de disco gerenciado.
  • Os hosts da sessões excluídos serão removidos apenas do Azure. Os objetos de computador permanecerão no AD. Portanto, esses objetos de computador precisarão ser excluídos manualmente ou por meio de script.

O exemplo acima mostra um método de automação de imagem usando o Azure DevOps e um pipeline de CI/CD (integração contínua e entrega contínua). Essa é uma abordagem nativa de nuvem e oferece uma distribuição menos prejudicial dos novos hosts da sessão, sem tempo de inatividade. É importante observar que você deve considerar o aumento nas contagens de máquinas virtuais, à medida que elimina as antigas imagens e coloca as novas imagens online.

Conforme mencionado acima, a Galeria de Computação do Azure é um serviço que o ajuda a criar estrutura e organização em torno das imagens. Essas imagens podem ser referenciadas em suas implantações de IaC dos hosts de sessão da Área de Trabalho Virtual do Azure. O serviço permite o controle de versão, o agrupamento e a replicação de imagens.

Ao implantar os hosts da sessão com um modelo do ARM ou o Terraform, é recomendável usar a ID do recurso da imagem que você criou na galeria como a ID de origem da imagem personalizada da VM. A imagem que você está usando deve ser replicada por meio do serviço da Galeria de Computação do Azure para as regiões do Azure em que você está implantando os pools de host de Área de Trabalho Virtual do Azure.

Próximas etapas

Saiba como implantar a Área de Trabalho Virtual do Azure usando o acelerador de zona de aterrissagem para cenários de escala empresarial.