Estou planejando enviar um novo aplicativo Web para um Serviço Web App do Azure (antigo Site do Azure). Eu gostaria de usar os slots de implantação para poder testar minha implantação antes de colocá-la em produção. Tudo bem, desde que não haja mudança no esquema do banco de dados. Mas se houver uma alteração de esquema, não posso ter duas versões de software operando na mesma versão de banco de dados. Como estou usando EF Migrations, o envio para o slot de teste resultaria instantaneamente em uma atualização do banco de dados para a versão mais recente.
Portanto, minha pergunta é: existe algum uso de slots de implantação quando uma migração de banco de dados é necessária?
Como é feito para grandes provedores de SaaS. Eles estão executando uma migração de banco de dados instantaneamente com a nova versão? Isso certamente causaria algum tempo de inatividade.
Só consigo pensar em soluções bastante complexas para esse problema, existe algo simples?
Respostas:
São possíveis lançamentos de tempo de inatividade zero usando slots do Serviço de Aplicativo do Azure e um único banco de dados compartilhado pelo Staging and Production - mas você precisa garantir que todas as alterações no banco de dados sejam compatíveis com versões anteriores, para que as versões atuais e novas do aplicativo Web possam ser executadas simultaneamente em os slots de teste e produção.
Algumas regras que garantem que isso funcione:
Quando você precisar fazer alterações destrutivas, como renomear ou soltar colunas, precisará de 2 versões para fazer isso:
Embora isso pareça um pouco complicado, na prática você provavelmente não fará alterações destrutivas com muita frequência.
fonte
você olhou para os itens de configuração específicos do slot? Em WebApp / Configurações / Configurações do aplicativo, você pode especificar configurações para o aplicativo Web, mas também definir se ele se aplica apenas a esse slot.
Portanto, você pode ter uma cadeia de conexão específica ao slot para o slot temporário e aplicar a migração também na troca de slots.
fonte