Azure Fundamentals · Aula

Slots de Implantação e Troca

Crie slots de preparação para implantações azul-verde, aqueça uma nova versão no slot de preparação e troque-a para produção sem tempo de inatividade.

Aula 2 de 413 etapas

Slots de Implantação e Troca é uma aula grátis de Azure Fundamentals no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Azure Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Azure Fundamentals inclui 4 aulas no total.

O que são slots de implantação

Os slots de implantação são ambientes ativos e separados para um aplicativo Web do App Service, cada um com seu próprio nome de host (por exemplo, myapp-staging.azurewebsites.net). Os slots compartilham o mesmo plano e os mesmos recursos do App Service que o slot de produção, mas são executados de forma independente. Eles permitem implantações azul-verde: você valida uma nova versão em um slot de preparação e, em seguida, troca-o para a produção sem tempo de inatividade. Os slots estão disponíveis a partir do nível Standard.

Criar um slot de implantação

Adicione um novo slot de implantação ao seu aplicativo Web usando o portal do Azure ou a CLI. Cada slot recebe sua própria URL, configurações do aplicativo e cadeias de conexão. Você pode criar até 5 slots no Standard e até 20 slots no nível Premium. Os nomes comuns de slots incluem staging, canary, hotfix e integration, refletindo diferentes etapas do pipeline de lançamento.

# Create a staging deployment slot
az webapp deployment slot create \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging

# Deploy code to the staging slot
az webapp deploy \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --src-path app.zip

# The staging slot is live at:
# https://MyUniqueWebApp-staging.azurewebsites.net

Preparar o slot de preparação

Antes da troca, é essencial preparar o slot de preparação para que a nova versão seja totalmente inicializada. Uma instância do App Service que está iniciando atende às primeiras solicitações lentamente enquanto o ambiente de execução é inicializado, o que é inaceitável em produção. Habilite a troca automática ou envie manualmente solicitações HTTP de preparação ao slot de preparação. O App Service também é compatível com uma configuração applicationInitialization para definir caminhos de preparação que devem retornar 200 antes que o slot seja considerado pronto.

# web.config snippet for warm-up (IIS/Windows)
# <system.webServer>
#   <applicationInitialization>
#     <add initializationPage='/health' hostName='MyUniqueWebApp-staging.azurewebsites.net'/>
#   </applicationInitialization>
# </system.webServer>

# Or use a startup probe via the App Service health check
az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --generic-configurations '{"healthCheckPath": "/health"}'

Trocar slots

Uma troca intercambia atomicamente os slots de preparação e de produção. Durante uma troca, o App Service primeiro direciona o tráfego para as instâncias de preparação que executam o novo código, aguarda a inicialização delas e, em seguida, redireciona todo o tráfego de produção para as novas instâncias; as antigas instâncias de produção se tornam o novo slot de preparação. Isso torna a reversão simples: basta trocar novamente para desfazer a alteração.

# Swap staging into production
az webapp deployment slot swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --target-slot production

# Rollback: swap production back to staging
az webapp deployment slot swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot production \
  --target-slot staging

Configurações específicas e não específicas do slot

As configurações do aplicativo podem ser marcadas como específicas do slot ou não específicas do slot (intercambiáveis). As configurações não específicas do slot acompanham o slot de implantação durante uma troca — assim, a cadeia de conexão do banco de dados de preparação acompanha o código até a produção. As configurações específicas do slot permanecem no slot independentemente das trocas — a produção mantém sempre sua cadeia de conexão do banco de dados de produção. Marque as configurações como específicas do slot usando a caixa de seleção 'configuração do slot de implantação' ou a CLI.

# Mark a setting as sticky (slot-specific) -- it won't swap
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --slot-settings DATABASE_URL='postgresql://staging-db/...'

# Set a non-sticky setting (it WILL travel with a swap)
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --settings FEATURE_FLAG_NEW_UI=true

Divisão de tráfego para lançamentos canário

O App Service é compatível com a divisão de tráfego — direcionando uma porcentagem do tráfego de produção para um slot que não é de produção sem realizar uma troca completa. Isso permite lançamentos canário, nos quais você desloca gradualmente o tráfego de 5% para 10% e depois para 50%, à medida que ganha confiança na nova versão, monitorando as taxas de erro a cada etapa. Os usuários que chegam ao slot canário recebem um cookie persistente que os mantém na mesma versão para garantir a consistência da sessão.

# Route 10% of traffic to the staging slot (canary)
az webapp traffic-routing set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --distribution staging=10

# View current traffic distribution
az webapp traffic-routing show \
  --name MyUniqueWebApp \
  --resource-group MyRG

# Reset all traffic to production
az webapp traffic-routing clear \
  --name MyUniqueWebApp \
  --resource-group MyRG

Troca automática

A troca automática troca automaticamente um slot de preparação para a produção sempre que um novo código é implantado nele. Ela é ideal para pipelines de CI/CD nos quais você deseja que toda implantação bem-sucedida entre imediatamente em produção. A troca automática aguarda as solicitações HTTP do slot de preparação retornarem 200 antes de concluí-la. Habilite-a por slot no portal ou na CLI — mas use-a com cautela, pois não há uma etapa de aprovação manual entre a implantação e a produção.

# Enable Auto Swap for the staging slot
az webapp deployment slot auto-swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --auto-swap-slot production

# Disable Auto Swap
az webapp deployment slot auto-swap \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --slot staging \
  --disable

Práticas recomendadas para slots de implantação

Siga estas práticas recomendadas para slots de implantação: sempre valide no ambiente de preparação antes de trocar para a produção; use configurações específicas do slot para manter as conexões do banco de dados de produção isoladas das de preparação; execute testes básicos na URL do slot de preparação após a implantação; configure caminhos de verificação de integridade para garantir que o App Service não conclua a troca se a nova versão não estiver saudável; e marque suas implantações para que você possa rastrear qual confirmação está ativa em cada slot.

Slots em pipelines de CI/CD

Em um pipeline de CI/CD típico, a etapa de compilação compila e testa o código, a etapa de implantação envia o artefato para o slot de preparação, uma etapa de testes de integração executa testes automatizados na URL de preparação e a etapa de troca troca a preparação para a produção — opcionalmente condicionada a uma aprovação manual. Esse padrão é compatível nativamente tanto com Azure Pipelines quanto com GitHub Actions, usando a ação de implantação do App Service.

# GitHub Actions step: deploy to staging slot
# - name: Deploy to Staging Slot
#   uses: azure/webapps-deploy@v2
#   with:
#     app-name: MyUniqueWebApp
#     slot-name: staging
#     publish-profile: ${{ secrets.AZURE_STAGING_PUBLISH_PROFILE }}
#
# - name: Swap to Production
#   uses: azure/CLI@v1
#   with:
#     inlineScript: |
#       az webapp deployment slot swap \
#         --name MyUniqueWebApp \
#         --resource-group MyRG \
#         --slot staging

Monitorar a integridade da troca

Durante e após uma troca de slot, monitore as principais métricas no Azure Monitor para confirmar que a nova versão está saudável. Observe picos em erros HTTP 5xx, tempo médio de resposta e utilização de CPU/memória. Configure alertas de métricas que sejam acionados se as taxas de erro excederem um limite — isso fornecerá um sinal para trocar rapidamente de volta. A detecção inteligente do Application Insights pode alertá-lo automaticamente sobre anomalias após uma implantação.

# Create an alert rule for HTTP 5xx errors post-swap
az monitor metrics alert create \
  --name 'HighErrorRate' \
  --resource-group MyRG \
  --scopes '/subscriptions/.../providers/Microsoft.Web/sites/MyUniqueWebApp' \
  --condition 'avg Http5xx > 10' \
  --window-size 5m \
  --evaluation-frequency 1m \
  --action-group MyActionGroup

Slots versus vários aplicativos

Os slots de implantação são preferíveis à manutenção de aplicativos do App Service totalmente separados para preparação e produção, pois compartilham o mesmo plano (sem custo adicional), oferecem troca com reversão em um clique, são compatíveis com divisão de tráfego e são gerenciados no mesmo recurso do App Service. Use aplicativos separados somente quando a preparação precisar de SKUs de plano fundamentalmente diferentes, requisitos de isolamento ou cobrança completamente separada.

Verificação rápida

Teste sua compreensão dos conceitos do Microsoft Azure Fundamentals (AZ-900) apresentados nesta lição.

Recapitulação da lição

Nesta lição, você aprendeu que os slots de implantação fornecem ambientes isolados que permitem implantações azul-verde; as configurações específicas do slot mantêm configurações específicas do ambiente (como URLs de banco de dados) associadas ao slot, e não ao código; e a divisão de tráfego permite lançamentos canário ao direcionar uma porcentagem do tráfego de produção para uma nova versão. Em seguida, exploraremos o dimensionamento automático e os domínios personalizados.

Grátis para começar

Aprenda Azure Fundamentals com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Slots de Implantação e Troca” é grátis?

Sim — o texto completo de “Slots de Implantação e Troca” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Azure Fundamentals, atualize para CoddyKit PRO. O curso de Azure Fundamentals inclui 4 aulas no total.

O que vou aprender em “Slots de Implantação e Troca”?

Crie slots de preparação para implantações azul-verde, aqueça uma nova versão no slot de preparação e troque-a para produção sem tempo de inatividade. Você pratica Azure Fundamentals com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Azure Fundamentals?

Nenhuma experiência prévia é necessária. Azure Fundamentals no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Slots de Implantação e Troca”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Azure Fundamentals?

Sim. Cada aula de Azure Fundamentals inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criando um Plano do App Service e uma Aplicação Web
  2. Slots de Implantação e Troca
  3. Escalonamento Automático e Domínios Personalizados
  4. Autenticação e Rede do App Service
← Voltar para Azure Fundamentals