Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Note
À compter du 1er juin 2024, les applications App Service nouvellement créées peuvent générer un nom d’hôte par défaut unique qui utilise la convention d’affectation de noms <app-name>-<random-hash>.<region>.azurewebsites.net
. Les noms d’application existants restent inchangés. Par exemple :
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Pour plus d’informations, consultez Nom d’hôte par défaut unique pour les ressources App Service.
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. Cet article présente les trois principaux composants du déploiement sur App Service : les sources de déploiement, les pipelines de génération et les mécanismes de déploiement. Cet article présente également quelques-unes des meilleures pratiques et des conseils pour des piles de langage spécifiques.
Cette section décrit les trois principaux composants à déployer sur App Service.
Une source de déploiement correspond à l’emplacement de votre code d’application. Pour les applications de production, la source de déploiement est généralement un référentiel hébergé par un logiciel de gestion de version, comme GitHub, Bitbucket ou Azure Repos. Pour les scénarios de développement et de test, la source de déploiement peut être un projet sur votre ordinateur local.
Une fois que vous avez choisi une source de déploiement, l’étape suivante consiste à choisir un pipeline de build. Un pipeline de build lit votre code source à partir de la source de déploiement et exécute une série d’étapes pour obtenir l’application dans un état exécutable.
Les étapes peuvent inclure la compilation de code, la minification du code HTML et JavaScript, l’exécution de tests et la création de packages de composants. Les commandes spécifiques exécutées par le pipeline de build dépendent de votre pile de langage. Vous pouvez exécuter ces opérations sur un serveur de build, tel qu’Azure Pipelines ou localement.
Le mécanisme de déploiement est l’action utilisée pour placer votre application intégrée dans le répertoire /home/site/wwwroot de votre application web. Le répertoire /wwwroot est un emplacement de stockage monté partagé par toutes les instances de votre application web. Lorsque le mécanisme de déploiement place votre application dans ce répertoire, vos instances reçoivent une notification pour synchroniser les nouveaux fichiers.
App Service prend en charge les mécanismes de déploiement suivants :
Les outils de déploiement, tels qu’Azure Pipelines, Jenkins et les plug-ins d’éditeur utilisent un de ces mécanismes de déploiement.
Dans la mesure du possible, lorsque vous déployez une nouvelle build de production, utilisez des emplacements de déploiement. Lorsque vous utilisez un plan App Service Standard ou mieux, vous pouvez déployer votre application dans un environnement intermédiaire, valider vos modifications et effectuer des tests de vérification de build. Lorsque vous êtes prêt, échangez vos emplacements intermédiaires et de production. L’opération d’échange active les instances de worker nécessaires en fonction de votre échelle de production, ce qui élimine les temps d’arrêt.
Si votre projet a des branches désignées 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. Cette approche est appelée conception Gitflow. Cette conception permet à vos parties prenantes d’évaluer et de tester facilement la branche déployée.
Le déploiement continu ne doit jamais être activé pour votre emplacement de production. Au lieu de cela, votre branche de production (souvent la principale) doit être déployée sur un emplacement de non-production. Lorsque vous êtes prêt à mettre en production la branche de base, échangez-la dans l’emplacement de production. Un échange en production, au lieu d’un déploiement en production, vous permet d’éviter les temps d’arrêt et de restaurer les modifications en les échangeant à nouveau.
Pour les conteneurs personnalisés de Docker 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 de code. Vous devez envoyer (push) l’image à un registre de conteneurs et mettre à jour la balise d’image sur l’application web.
Pour chaque branche que vous souhaitez déployer sur un emplacement, configurez l’automatisation pour effectuer ces tâches à chaque validation de la branche.
Cet article contient des exemples pour les frameworks d’automatisation courants.
App Service est doté de la livraison continue intégrée pour les conteneurs via le centre de déploiement. Accédez à votre application dans le Portail Azure. Sous Déploiement, sélectionnez Centre de déploiement. Suivez les instructions pour sélectionner votre référentiel et votre branche. Cette approche permet de configurer un pipeline de build et de mise en production DevOps pour générer, baliser et déployer automatiquement votre conteneur lorsque de nouvelles validations sont envoyées (push) à la branche que vous avez sélectionnée.
Vous pouvez également automatiser le déploiement de vos conteneurs à l’aide de GitHub Actions. Le fichier de workflow génère et balise le conteneur avec l’ID de validation, l’envoie (push) à un registre de conteneurs et met à jour l’application web spécifiée avec la nouvelle balise d’image.
on:
push:
branches:
- <your-branch-name>
name: Linux_Container_Node_Workflow
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# checkout the repo
- name: 'Checkout GitHub Action'
uses: actions/checkout@main
- uses: azure/docker-login@v1
with:
login-server: contoso.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t contoso.azurecr.io/nodejssampleapp:${{ github.sha }}
docker push contoso.azurecr.io/nodejssampleapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'node-rnc'
publish-profile: ${{ secrets.azureWebAppPublishProfile }}
images: 'contoso.azurecr.io/nodejssampleapp:${{ github.sha }}'
Les étapes répertoriées ci-dessus s’appliquent à d’autres utilitaires d’automatisation tels que CircleCI ou Travis CI. Toutefois, vous devez utiliser Azure CLI pour mettre à jour les emplacements de déploiement avec de nouvelles balises d’image lors de la dernière étape. Pour utiliser Azure CLI dans votre script d’automatisation, générez un principal de service à l’aide de la commande suivante.
az ad sp create-for-rbac --name "myServicePrincipal" --role contributor \
--scopes /subscriptions/{subscription}/resourceGroups/{resource-group} \
--sdk-auth
Dans votre script, connectez-vous en utilisant az login --service-principal
et en fournissant les informations du principal. Vous pouvez ensuite utiliser az webapp config container set
pour définir le nom du conteneur, la balise, l’URL du registre et le mot de passe du registre. Pour plus d’informations, consultez Comment se connecter à Azure CLI sur Circle CI.
Gardez à l’esprit les considérations suivantes pour les implémentations Java, Node et .NET.
Utilisez l’API zipdeploy Kudu pour déployer des applications JAR. Utilisez wardeploy pour les applications WAR. Si vous utilisez Jenkins, vous pouvez utiliser ces API directement lors de votre phase de déploiement. Pour plus d’informations, consultez Déployer sur Azure App Service avec Jenkins.
Par défaut, Kudu exécute les étapes de génération de votre application Node (npm install
). Si vous utilisez un service de build tel qu’Azure DevOps, la build Kudu n’est pas nécessaire. Pour désactiver la build Kudu, créez un paramètre d’application SCM_DO_BUILD_DURING_DEPLOYMENT
, avec une valeur de false
.
Par défaut, Kudu exécute les étapes de génération de votre application .NET (dotnet build
). Si vous utilisez un service de build tel qu’Azure DevOps, la build Kudu n’est pas nécessaire. Pour désactiver la build Kudu, créez un paramètre d’application SCM_DO_BUILD_DURING_DEPLOYMENT
, avec une valeur de false
.
D’autres considérations incluent le cache local et le processeur ou la mémoire élevée.
Le contenu Azure App Service est stocké sur Stockage Azure est exposé de manière durable en tant que partage de contenu. Toutefois, certaines applications ont uniquement besoin d’un magasin de contenu en lecture seule très performant à partir duquel elles peuvent s’exécuter avec une haute disponibilité. Ces applications peuvent tirer parti de l’utilisation du cache local. Pour plus d’informations, consultez Vue d’ensemble du cache local Azure App Service.
Note
Le cache local n’est pas recommandé pour les sites de gestion de contenu tels que WordPress.
Pour éviter les temps d’arrêt, utilisez toujours le cache local avec des emplacements de déploiement. Pour plus d’informations sur l’utilisation conjointe de ces fonctionnalités, consultez Meilleures pratiques.
Si votre plan App Service utilise plus de 90 % de l’UC ou de la mémoire disponible, la machine virtuelle sous-jacente risque de rencontrer des problèmes lors du traitement de votre déploiement. Dans ce cas, mettez temporairement à l’échelle le nombre d’instances pour effectuer le déploiement. Une fois le déploiement terminé, vous pouvez rétablir le nombre d’instances à sa valeur précédente.
Pour plus d’informations, consultez Diagnostics App Service pour connaître les meilleures pratiques applicables spécifiques à votre ressource.
Accédez à votre application web dans le portail Azure.
Dans le volet de navigation de gauche, sélectionnez Diagnostiquer et résoudre les problèmes pour ouvrir Diagnostics App Service.
Choisissez Disponibilité et performances ou explorez d’autres options, telles que Analyse de l’utilisation élevée du processeur.
Affichez l’état actuel de votre application en ce qui concerne ces meilleures pratiques.
Vous pouvez également utiliser ce lien pour ouvrir directement Diagnostics App Service pour votre ressource : https://portal.azure.com/?websitesextension_ext=asd.featurePath%3Ddetectors%2FParentAvailabilityAndPerformance#@microsoft.onmicrosoft.com/resource/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/troubleshoot
.
Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantFormation
Module
Améliorer votre fiabilité avec des pratiques opérationnelles modernes : Déploiement - Training
Découvrez les pratiques de déploiement qui peuvent vous aider à atteindre durablement le niveau de fiabilité approprié dans vos systèmes, services et produits.
Certification
Microsoft Certified: Azure Developer Associate - Certifications
Générez des solutions de bout en bout dans Microsoft Azure pour créer des fonctions Azure Functions, implémenter et gérer des applications web, développer des solutions qui utilisent le Stockage Azure, et bien plus encore.