J'essaie de comprendre l'utilisation des emplacements de déploiement pour héberger mon application Web à l'aide du service Azure App. Je suis particulièrement confondu avec les moyens idéaux de gérer la base de données pendant que l'échange est effectué. Tout en maintenant deux versions de base de données, il ajoute une solution, il ajoute la complexité de maintenir des données sur plusieurs bases de données pour les rendre cohérents. Quelles sont les moyens recommandés de traiter avec le schéma de base de données et les migrations tout en utilisant des déploiements bleu / verts et en particulier des emplacements de déploiement? P>
3 Réponses :
Idéalement, vous ferez la scène / la production partagerait la même base de données. Ce ne serait donc pas un problème. P>
mais si vous avez plus de logements, vous feriez mieux de travailler avec différentes bases de données et gérer les migrations pendant la phase de déverrouillage p>
Les machines à sous sont une fonctionnalité spécifiquement pour les services App et non pour DBS, si vous souhaitez utiliser un DB spécifique avec une fente spécifique, vous pouvez configurer la fente comme ceci: https://docs.microsoft.com/fr- US / Azure / App-Service / Déployant-Stalage-Slots P>
Maintenant, lorsque vous utilisez des machines à sous et l'ébranler, il swaps également des configurations d'applications \ Paramètres et dans les paramètres de l'application, vous pouvez disposer de deux chaînes de connexions DB, mais chacune avec son propre nom de logement et son paramètre activé. Vous pouvez voir qu'il a été affiché dans cet exemple ici aussi: https://docs.microsoft.com/en-us/azure/app-service/deploy-Sting-slots#swap-two-slots P>
Nous avons travaillé à travers diverses solutions à ce problème pendant quelques années. Il n'y a pas de jeu d'outils qui fournit une balle magique pour tous les cas. Il y a quelques solutions: p>
S'il est possible d'exécuter un script de migration sur une base de données terminée en une seconde ou deux, et vous pouvez avoir un script de repli facile, vous pouvez exécuter le script simultanément avec le swap. Cela peut également être automatisé. Mais c'est une situation de stress plus élevée et non une personne que je recommanderais. Cela peut même être fait avec des migrations EF. P>
Puisque nous traitons de quelques centaines de Go de données qui ne peuvent pas descendre, nous venons de faire une règle que la base de données doit fonctionner avec les deux versions de notre application. Ce n'est pas aussi terrible ni impossible que cela sonne. Par exemple, les nouvelles tables et champs nets peuvent être ajoutées avant même d'effectuer le swap. Nous testons la restauration entre versions dans le cadre de notre QA. Si certains champs doivent être abandonnés, nous attendons une fois que la nouvelle version a été déployée et enfoncée, puis exécutez un autre script pour effectuer les gouttes après nous sommes sûrs que nous n'aurons pas besoin de rentabilisation. Nous allons créer de nouvelles procédures stockées lorsque l'on doit être mis à niveau afin que la nouvelle version soit sa propre. Exemple: sp_foo et sp_foo2. P>
Nous avons eu beaucoup de succès avec cette stratégie. P>