Déployer sur App Service

Effectué

Chaque équipe de développement a des exigences uniques qui peuvent compliquer l’implémentation d’un pipeline de déploiement efficace sur un service cloud. App Service prend en charge le déploiement automatisé et manuel.

Déploiement automatisé

Le déploiement automatisé, ou déploiement continu, est un processus utilisé pour pousser de nouvelles fonctionnalités et des correctifs de bogues selon un modèle rapide et répétitif, avec un effet minimal sur les utilisateurs finaux.

Azure prend en charge le déploiement automatisé directement à partir de plusieurs sources. Les options suivantes sont disponibles :

  • Azure DevOps Services : vous pouvez pousser (push) votre code vers Azure DevOps Services, générer votre code dans le cloud, exécuter les tests, générer une version à partir du code et, enfin, pousser votre code vers une application web Azure.
  • GitHub : Azure prend en charge le déploiement automatisé directement à partir de GitHub. Quand vous connectez votre dépôt GitHub à Azure pour le déploiement automatisé, les changements que vous poussez sur votre branche de production sur GitHub sont déployés automatiquement pour vous.
  • Bitbucket : de façon similaire à GitHub, vous pouvez configurer un déploiement automatisé avec Bitbucket.

Déploiement manuel

Il existe quelques options pour envoyer (push) votre code manuellement sur Azure :

  • Git : Les applications web App Service proposent une URL Git que vous pouvez ajouter en tant que dépôt distant. En poussant le code sur le dépôt distant, vous déployez votre application.
  • CLI : webapp up est une fonctionnalité de l’interface de ligne de commande az qui permet d’empaqueter votre application et de la déployer. Contrairement à d’autres méthodes de déploiement, az webapp up peut créer une application web App Service pour vous si ce n’est pas déjà fait.
  • Déploiement ZIP : utilisez curl ou un utilitaire HTTP similaire pour envoyer un fichier zip de vos fichiers d’application à App Service.
  • FTP/S : FTP ou FTPS est un moyen traditionnel d’envoyer (push) votre code à de nombreux environnements d’hébergement, notamment App Service.

Utiliser des emplacements de déploiement

Dans la mesure du possible, utilisez des emplacements de déploiement lors du déploiement d’un nouveau build de production. Lorsque vous utilisez un niveau de plan App Service standard ou supérieur, vous pouvez déployer votre application dans un environnement intermédiaire, puis échanger vos emplacements de préproduction et de production. L’opération d’échange préchauffe les instances de worker nécessaires pour correspondre à votre échelle de production, ce qui élimine les temps d’arrêt.

Déployer du code en continu

Si votre projet a désigné des branches pour le test, l’assurance qualité et la mise en lots, chacune de ces branches doit être déployée en continu vers un emplacement de préproduction. Cela permet à vos parties prenantes d’évaluer et de tester facilement la branche déployée.

Déployer des conteneurs en continu

Pour les conteneurs personnalisés d’Azure Container Registry ou d’autres registres de conteneurs, déployez l’image dans un emplacement de préproduction et échangez en production pour éviter les temps d’arrêt. L’automatisation est plus complexe que le déploiement du code, car vous devez envoyer (push) l’image vers un registre de conteneurs et mettre à jour la balise d’image sur l’application web.

  • Générez et balisez l’image : Dans le cadre du pipeline de build, balisez l’image avec l’ID de validation git, l’horodateur ou d’autres informations identifiables. Il est préférable de ne pas utiliser la balise « latest » par défaut. Sinon, il est difficile de retracer le code actuellement déployé, ce qui rend le débogage beaucoup plus compliqué.
  • Envoyez (push) l’image balisée : Une fois l’image générée et balisée, le pipeline envoie (push) l’image à notre registre de conteneurs. À l’étape suivante, l’emplacement de déploiement extraira l’image balisée du registre de conteneurs.
  • Mettez à jour l’emplacement de déploiement avec la nouvelle balise d’image : Lorsque cette propriété est mise à jour, le site redémarre automatiquement et extrait la nouvelle image conteneur.