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.
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.netPreparar 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 stagingConfiguraçõ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=trueDivisã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 MyRGTroca 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 \
--disablePrá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 stagingMonitorar 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 MyActionGroupSlots 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.
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
- Criando um Plano do App Service e uma Aplicação Web
- Slots de Implantação e Troca
- Escalonamento Automático e Domínios Personalizados
- Autenticação e Rede do App Service