Fala meu povo!
No dia 20/02/2018 participei do evento Descomplicando o Azure, promovido pela Azure Brasil – Comunidade técnica. Tive a oportunidade de falar sobre Deployment Slots.
Deployment Slot – O que é isso?
O conceito é simples. Em um cenário geral, representado pela imagem abaixo, existe um controle de versão ambientes de desenvolvimento (DEV) e testes (Teste). Desenvolve-se, testa e se tudo estiver OK, publica-se em produção. Esta publicação é feita, geralmente, em uma janela de submissão de forma a oferecer o menor impacto possível aos usuários da aplicação. Um indivíduo ou uma equipe tem a responsabilidade de submeter a nova versão do sistema manualmente ou de forma automatizada, vai depender de cada um, da empresa, etc.

Distribuição de aplicações
Conforme apresentado, existem basicamente dois ambientes: DEV e TESTE. Cada um desses servidores pode ser denominado como sendo um Deployment Slot. Ou seja, um servidor similar a outro, mas que produz um faseamento da publicação de uma nova versão da aplicação, com a estratégia de manter a estabilidade da mesma. Uma publicação não é replicada para outra fase a não ser caso não tenha sido executada com sucesso na fase anterior.
Sendo assim, um Deployment Slot é uma espécie de fase de publicação que provê uma similaridade de ambientes para uma aplicação.
Motivação
Publicar aplicações de forma segura reduzindo o Down Time da aplicação deve ser uma de nossas preocupações, como desenvolvedores, arquitetos, equipe, caso contrário alguns problemas poderão ser bem preocupantes:
- Baixa confiabilidade de execuções bem sucedidas – a equalização de ambientes “locais” é difícil por várias questões, como custo,acompanhar as atualizações das soluções de cloud entre outros quesitos.
- Problemas de perda de requisições de usuários – dependendo da sua aplicação, a perda de requisições de usuários deve ser mínima.
- Time para reação a problemas encontrados em produção (Rollback) – se acontece um erro em produção, quanto tempo é necessário para voltar para uma versão estável?
- etc
Em busca de uma melhora e na confiabilidade das promoções de novas versões das minhas aplicações, descobri o recurso de Deployment Slots em App Services no Azure.
Azure – App Services / Deployment Slots
O Azure nos apoia nesta necessidades onde as aplicações podem ser publicadas em Deployment Slots e sua configuração é simples. Pode-se automatizar pelo Azure, Visual Studio Team Services. Mas o que importa é que existe esta opção e que realmente traz um certo conforto para submissão de versões.
No vídeo abaixo, explico (descomplico), na íntegra, mais detalhes sobre a solução:
Referências
Este foi apenas um tópico sobre muitas funcionalidades que o Azure nos oferece. Você poderá acompanhar os outros vídeos voltados para esta ótima plataforma no canal do Youtube:
Azure Brasil – Comunidade Técnica
Para saber mais detalhes sobre os Deployment Slots, acesse os links abaixo:
https://docs.microsoft.com/pt-br/azure/app-service/web-sites-staged-publishing
https://blogs.msdn.microsoft.com/mvpawardprogram/2017/05/16/deploy-app-azure-app-service/
Agradecimento
Agradeço mais uma vez à Azure Brasil pela grande oportunidade.
Azure Brasil – Youtube
Azure Brasil – Facebook
Valeu e até a próxima!