Déployer automatiquement vos applications ASPNET MVC dans Azure avec Team Foundation Service
07 Dec 2012 in ASP.NET MVC | Microsoft AzureTeam Foundation Service (anciennement TFS Preview) est la version hébergée de Team Foundation Server. Pour en savoir plus sur ce service proposé par Microsoft, je vous invite à lire cet article et cet article sur le blog d’cet article !
Une des fonctionnalité très sympa lorsque l’on développe des applications destinées à être hébergées dans Windows Azure, est la possibilité d’associer automatiquement un projet d’équipe Team Foundation Service à un Cloud Service Azure. Cela permet de faire en sorte qu’à chaque check-in depuis Visual Studio, le code soit compilé et automatiquement déployé dans Azure.
Pour associer un projet d’équipe à un service de compute Azure, il faut se connecter sur l’interface de management Windows Azure puis se rendre sur le tableau de bord du service en question :
Cliquez sur Configurer la publication TFS. La popup qui s’ouvre vous permet soit d’utiliser un compte TFService déjà existant, soit de créer un compte sur visualstudio.com :
Saisissez le nom de votre compte de service si vous en avez déjà un. Si ce n’est pas le cas, cliquez sur Créez un compte TFS maintenant. La popup qui s’ouvre vous permet de créer un compte TFS Service :
Créez votre compte. Pour les utilisateur existant, cliquez sur le lien Autorisez maintenant.
Une fenêtre s’ouvre alors pour vous demander d’autoriser votre service Windows Azure à accéder à TFS, un peu comme cela pourrait être pour n’importe quel membre de l’équipe :
Si vous êtes d’accord, acceptez Vous pouvez à présent choisir le projet d’équipe à associer :
Patientez pendant la liaison du projet d’équipe à votre service Windows Azure :
Une fois ceci fait, ouvrez Visual Studio et connectez- vous à votre projet d’équipe. Dans le Team Explorer, affichez les définitions Builds configurées. Comme vous pouvez le constater, une nouvelle Build est présente. Elle porte le nom de votre service Cloud Azure, suffixé par _CD
pour Continuous Deployment :
Si vous ouvrez la définition de la build, vous pourrez voir que celle ci est configurée pour être exécuté à chaque check-in (Continuous Integration), dans l’onglet Trigger. Si vous allez dans l’onglet Process, vous constaterez que le process template utilisé est un spécifique à Windows Azure : AzureContinuousDeployment.11.xaml. En ouvrant le workflow de build, et en fouillant un peu dans les différentes activités, vous finirez par trouver la partie qui concerne le déploiement dans Azure :
Concrètement, vous n’avez rien à modifier pour que ça marche
Afin d’avoir la main sur le profil de publication qui doit être utilisé par la build lors du déploiement, vous devez en créer un (ou utiliser un existant, si vous en avez déjà un). Pour se faire, faites un clic droit sur votre projet Cloud dans Visual Studio et cliquez sur Publish…
Dans la fenêtre qui s’ouvre, choisissez votre souscription Azure :
Configurez ensuite les paramètres en choisissez votre Cloud Service, l’environnement sur lequel vous souhaitez déployer (Production / Staging), la build configuration et la service configuration à utiliser :
Sur la page de résumé, enregistrez le profile, mais ne cliquez pas sur Publish, cliquez sur Cancel pour quitter :
Visual Studio a créé un fichier XML qui représente ce profil, dans le dossier Profiles
du projet Windows Azure. Retournez dans la définition de la build, dans l’onglet Process et déroulez la section** 5. Publishing – Azure Cloud Service. **Modifiez le paramètre Alternate Publish Profile pour le faire pointer sur le fichier de profil que vous venez de créer :
Enregistrez les paramètres, et lancez la build. Le tour est joué.
Note : pour le moment le SDK 1.8 de Windows Azure n’est pas pris en charge par l’agent de build hosté sur Team Foundation Service, mais cela devrait arriver. En attendant, il est possible d’indiquer que la build doit s’exécuter sur un agent de build configuré on-premise, par vos soins.
Enjoy
Julien