Já abordamos o funcionamento dos Agents e a diferença entre Microsoft-hosted e Self-hosted agents no processo de Release Management do VSTS em outro post.

Hoje vamos falar sobre Deployment Groups e a facilidade na criação de grupos lógicos  de servidores para realizar o deploy de sua aplicação, baseado em Agents instalados. Com estes grupos, podemos orquestrar deployments em vários servidores e executar atualizações contínuas com alta disponibilidade.

Permite trabalhar com servidores on-premise ou máquinas virtuais na Azure ou qualquer outra Cloud. Também realiza a execução paralela de tarefas de deployment. Outro ponto é a especificação de segurança, permitindo criar usuários e gerenciar as permissões apropriadas de acordo com o grupo. O log de cada servidor é armazenado para rastrear o processo.

Passo 1: Acesse o VSTS, na guia Build and release, e Deployment Groups. Escolha o nome do grupo e tipo do registro (Windows ou Linux). Copie o script e execute no servidor utilizando a console do PowerShell.

deployment-groups-inicial

Passo 2: Após a execução do comando, veja que as máquinas e respectivos status são relacionados na aba Targets.

targets-deployment-groups

Ao clicar em cada máquina criada, veja mais detalhes sobre os deployments realizados e Capabilities (configurações dos Agents, das máquinas, etc.).

deployment-groups-capabilities

Passo 3: Associar o Deployment Group nas tarefas de release management. Escolha a opção Add Deployment Group Phase (e não Agent Phase). Faça as configurações necessárias para o seu deployment, considerando o nome do Deployment Group criado anteriormente e o artefato do seu projeto.

deployment-process

Entre os principais benefícios para quem já utiliza Deployment Groups:

  • Deploying para múltiplas regiões e data-centers
  • Atualizações em aplicações para múltiplos usuários (multi tenant deployment)
  • Gestão de carga de trabalho transitória em Cloud
  • Executar blue/green deployments com gerenciamento de tráfego e load balancer
  • Com deployment em escala variando de um servidor único até 600+ servidor em um deployment group