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

A Área de Trabalho Virtual do Azure é um serviço gerenciado que fornece um plano 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 de design

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

Integração com DevOps

Automação não precisa significar integração com DevOps, mas a integração oferece muitas vantagens. Automatizar o processo de construção da sua imagem dourada vale o investimento por várias razões:

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

Infraestrutura como Código

À medida que avança para a adoção de práticas de DevOps, tem de escolher uma ferramenta para implementar os seus recursos do Azure. Existem duas categorias diferentes de ferramentas IaC. A opção preferida é uma ferramenta IaC declarativa.

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

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

Agrupado vs. pessoal

À medida que sua organização expande seu ambiente, a maior parte da carga de trabalho fica sob uma configuração em pool em vez de uma configuração pessoal .

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

As configurações em pool são as mais populares para virtualização de desktop, e é por isso que elas são o foco deste artigo. Os ambientes agrupados têm de ser atualizados de forma diferente dos ambientes tradicionais. Atualize suas máquinas virtuais (VMs) a partir de uma imagem dourada na cadência correta para sua organização (geralmente a cada 1-3 meses). Se a sua organização for altamente automatizada, você poderá aumentar a cadência para semanal ou até mesmo noturna, se necessário.

Criação de imagens

Ao dimensionar seu ambiente de Área de Trabalho Virtual do Azure, você cria um pool de hosts a partir de sua imagem dourada, que idealmente é criada por meio de um processo automatizado.

Você também pode usar uma lista de verificação de compilação para aumentar a escala. Se você tiver um ambiente grande, o processo de lista de verificação deve ser apenas parte de sua configuração inicial de desenvolvimento/teste. Quanto mais você automatizar sua criação de imagem dourada, mais confiante poderá estar na precisão de sua construção e estabilidade do ambiente.

Não recomendamos usar sua imagem existente para criar uma VM que você atualiza com novos aplicativos e alterações de configuração e, em seguida, captura para uso como sua "nova" imagem dourada. A manutenção desse cenário envolve riscos significativos e é um fator importante para que os ambientes de virtualização de desktop se tornem estáticos e frágeis.

Existem muitas ferramentas de automação para criar imagens douradas, incluindo o processo Packer que descrevemos mais adiante neste artigo. Use o conjunto de ferramentas mais apropriado para sua organização. Independentemente das ferramentas escolhidas, automatize o máximo possível da criação de imagens douradas para que possa manter mais facilmente a integridade do ambiente de Ambiente de Trabalho Virtual do Azure.

Instalação de aplicações

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

As aplicações instaladas na imagem devem ser universais para os seus utilizadores e fazer parte do seu processo automatizado de criação de imagens. 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 todo o resto que exija uma abordagem mais flexível. Os aplicativos fornecidos 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 idiomas

À 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 a partir do idioma local, se preferir, ou pode adicionar mais idiomas à sua imagem na compilação. Considere esse requisito ao selecionar sua imagem base. A imagem pré-otimizada da galeria do Windows 10, por exemplo, com e sem o Microsoft 365, é fornecida apenas em inglês dos Estados Unidos (en-US).

Nota

Se você estiver usando o Windows 10 Enterprise com várias sessões, não poderá criá-lo usando um idioma diferente. Neste caso, você deve adaptar a imagem da galeria fornecida. Para adaptar a imagem da galeria en-US existente, instale os idiomas adicionais antes de instalar outros aplicativos.

Locais de implantação

A Área de Trabalho Virtual do Azure oferece mais liberdade em torno do posicionamento geográfico de seus pools de hosts do que os ambientes de área de trabalho tradicionais. Essa liberdade existe porque todos os locais do Azure oferecem suporte à Área de Trabalho Virtual do Azure. Evite criar VMs a partir de uma imagem em uma rede de longa distância (WAN) disponibilizando sua imagem dourada em cada um dos mesmos locais que seus usuários.

Atualizações de imagem dourada do pool de hosts

Há duas maneiras de atualizar a imagem dourada em que suas VMs em um pool de hosts específico se baseiam.

Método um:

  • Implante um segundo pool de hosts e, em seguida, corte os usuários para o novo pool de hosts quando estiver pronto.
  • Disponibilize o pool de hosts antigo para se uma reversão for necessária.
  • Você pode remover o pool de hosts antigo quando sua organização estiver satisfeita de que o novo pool de hosts está funcionando corretamente.

Método dois:

  • Defina suas VMs existentes para o modo de drenagem no pool de hosts.
  • Implante novas VMs a partir da imagem dourada atualizada nesse mesmo pool de hosts.
  • Tome cuidado para não atingir restrições de recursos ou limites de limitação de API quando você dobrar o número de VMs em um único pool de hosts.

Recomendações de 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

Recomendamos o uso do Git para gerenciar o código-fonte e manter uma estratégia de ramificação simples. Ao usar o Git para seu ambiente:

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

Pipelines

Seu sistema de implantação de pipeline é ditado pelo sistema de gerenciamento de código-fonte escolhido.

Se sua organização padronizou o Azure DevOps, use o Azure Pipelines. Se sua organização padronizou no GitHub, use as Ações do GitHub. Qualquer uma das opções oferece a capacidade de implantar um agente auto-hospedado em sua rede, o que tem vários benefícios, incluindo:

  • Tolerância para tempos de construção mais longos
  • Capacidade de aceder a recursos dentro da sua rede

Cancele seus pipelines de implantação para que eles possam ser acionados automaticamente para implantação em um pool de hosts de validação, mas não automaticamente enviados para o pool de hosts de produção sem aprovação explícita.

Variáveis e 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 em seus pipelines, como segredos e locais de arquivos.
  • As variáveis dentro de grupos de variáveis podem ser armazenadas como pares chave/valor, mas o método recomendado é Vincular um grupo de variáveis a um Cofre de Chaves do Azure para obter segredos para uso em seu pipeline de implantação.

Criar imagens da Área de Trabalho Virtual do Azure

Use o serviço Azure Image Builder (AIB) para automatizar os processos de compilação, atualização, sysprep e distribuição para suas imagens douradas. Este serviço pode utilizar uma imagem base suportada do Azure Marketplace para cada compilação para garantir que tem as atualizações mais recentes.

Nota

O Azure Image Builder está atualmente disponível em regiões selecionadas, mas você pode distribuir imagens fora dessas regiões.

Como parte do seu processo de construção de imagem dourada, 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 do aplicativo com script no PowerShell e comprometidos com seu repositório Git. Se não conseguir transferir instaladores de aplicações através da Internet pública, considere colocar as aplicações no Armazenamento de Blobs do Azure. Se os processos de instalação do aplicativo precisarem de segredos, considere colocá-los no Cofre de Chaves do Azure.

Para começar a usar o Azure Image Builder, consulte Criar uma imagem da Área de Trabalho Virtual do Azure usando o Azure VM Image Builder e o PowerShell

Para invocar o Azure Image Builder usando pipelines de CI/CD, use a Tarefa de DevOps do Serviço do Azure Image Builder para Pipelines do Azure ou a Ação Criar Imagem de Máquina Virtual do Azure para Ações do GitHub.

HashiCorp Packer é uma alternativa de código aberto. Ele oferece os mesmos recursos do Azure Image Builder (que é criado sobre o HashiCorp Packer), incluindo a capacidade de distribuir para uma Galeria de Computação do Azure.

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

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

  • O licenciamento do Azure DevOps deve usar o conjunto completo de ferramentas Packer.
  • Você deve atribuir a um usuário a função apropriada no Microsoft Entra ID.
  • Você deve conceder a um colaborador da entidade de serviço acesso à assinatura.
  • Você deve ter um Cofre da Chave do Azure para armazenar segredos, fornecendo ao gerenciamento de segredo da entidade de serviço na política de acesso.

Ao trabalhar com o Packer em seu pipeline de implantação:

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

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

  • Armazene seus arquivos Packer e provisões 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 credenciais de acesso para Arquivos do Azure no Cofre de Chaves. Você pode extrair as credenciais de acesso do Cofre da Chave na compilação usando variáveis de pipeline.
  • Além disso, armazene o nome do arquivo Packer e a chave da conta no cofre de chaves vinculado ao grupo de variáveis no Azure DevOps. Os pipelines acessam essas credenciais para baixar arquivos Packer para a VM usada para criar a imagem.
  • Armazene o caminho UNC como uma variável no grupo de variáveis do Azure DevOps.

Armazenar imagens da Área de Trabalho Virtual do Azure

O serviço Galeria de Computação do Azure é a maneira mais simples de criar estrutura e organização em torno de suas imagens douradas. Fornece:

  • Replicação global de imagens para diferentes regiões do Azure.
    • Certifique-se de ter implantado imagens nas regiões nas quais os hosts de sessão (VMs) da Área de Trabalho Virtual do Azure são implantados.
  • Controle de versão e agrupamento de imagens para facilitar o gerenciamento. O controle de versão e o agrupamento são úteis para reverter pools de hosts da Área de Trabalho Virtual do Azure para versões de imagem anteriores.
  • Imagens altamente disponíveis com contas ZRS (armazenamento com redundância de zona) em regiões que suportam zonas de disponibilidade. O ZRS oferece uma melhor resiliência em relação a falhas zonais.
  • 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ção com réplicas de imagem em cada região.

Para obter mais informações, consulte a visão geral do serviço Galeria de Computação do Azure.

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

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

Implantar idiomas em imagens da Área de Trabalho Virtual do Azure

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

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

Para obter mais informações sobre como instalar pacotes de idiomas em várias sessões do Windows 10 Enterprise, consulte Instalar pacotes de idiomas em VMs do Windows 10 na Área de Trabalho Virtual do Azure.

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

Abaixo está uma estratégia recomendada de atualização do pool de hosts:

  • Configure um pipeline de CI/CD para criar e distribuir imagens douradas para a Galeria de Computação do Azure.
  • Designe um pool de hosts de validação e implante novos hosts de sessão no pool de hosts de validação usando pipelines de CI/CD.
  • Teste sua automação usando um pool de hosts de validação.
  • Marque seus hosts de sessão com um número de compilação 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 em sua assinatura.
  • Após o teste bem-sucedido no pool de validação, coloque os hosts de sessão existentes no modo de drenagem - as VMs marcadas serão fáceis de identificar.
  • Implante novos hosts de sessão e permita que os usuários se conectem.
  • Após o teste bem-sucedido na produção, comece a desalocar hosts de sessão antigos para não incorrer em mais encargos de computação e, eventualmente, excluir para não incorrer em mais cobranças de disco gerenciado.
  • Os hosts de sessões excluídos só serão removidos do Azure. Os objetos de computador permanecerão em seu 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 integração contínua e entrega contínua (CI/CD). Essa é uma abordagem nativa da nuvem e oferece uma implantação menos perturbadora de novos hosts de sessão sem tempo de inatividade. É importante notar que você deve considerar o aumento nas contagens de máquinas virtuais à medida que elimina imagens antigas e coloca novas imagens online.

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

Quando você implanta seus hosts de sessão com um modelo ARM ou Terraform, recomendamos usar a ID de recurso da imagem criada em sua 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 Galeria de Computação do Azure para as regiões do Azure onde você está implantando seus pools de hosts da Área de Trabalho Virtual do Azure.

Próximos passos

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