Accéder au contenu principal

Azure App Service : Un guide complet pour les praticiens des données

Ce guide vous montre comment déployer, gérer et optimiser les applications à l'aide d'Azure App Service, avec des conseils pratiques en matière de sécurité, d'évolutivité et de réduction des coûts.
Actualisé 20 mai 2025  · 15 min de lecture

Le déploiement efficace des applications est devenu aussi important que leur développement. En tant que spécialiste des données, j'ai souvent constaté qu'alors que nous passons beaucoup de temps à perfectionner nos modèles et nos applications, le processus de déploiement peut parfois être considéré comme une réflexion après coup. C'est là qu'intervient Azure App Service, une plateforme qui simplifie le processus de déploiement tout en offrant des fonctionnalités robustes en matière d'évolutivité, de sécurité et de surveillance.

Dans ce tutoriel complet, je vous guiderai dans la configuration, le déploiement et la mise à l'échelle d'applications sur Azure App Service.

Que vous soyez un praticien junior des données cherchant à déployer votre première application ou un professionnel chevronné cherchant à optimiser votre infrastructure cloud, ce guide vous fournira des étapes pratiques et des bonnes pratiques.

Qu'est-ce que Azure App Service ?

Azure App Service est l'offre de Microsoft Platform as a Service (PaaS) qui vous permet de créer et d'héberger des applications web sans avoir à gérer l'infrastructure sous-jacente. Il est conçu pour prendre en charge plusieurs langages de programmation et frameworks, notamment Python, Java, Node.js, .NET, etc.

Avant de plonger dans le processus d'installation, nous allons comprendre ce qui rend Azure App Service particulièrement utile pour les praticiens des données :

  • Déploiement simplifié: Concentrez-vous sur votre code plutôt que sur la gestion de l'infrastructure.
  • Prise en charge de plusieurs langues: Déployez des applications écrites en Python, R (via des conteneurs), ou tout autre langage pris en charge.
  • Intégration avec les services de données: Connectez-vous facilement à Azure SQL, Cosmos DB ou à d'autres magasins de données.
  • Évolutivité: Augmentez ou diminuez la capacité en fonction de la demande, ce qui est particulièrement utile pour la mise à disposition de modèles d'apprentissage automatique.
  • Authentification intégrée: Sécurisez vos applications sans avoir à écrire un code d'authentification complexe.
  • Intégration CI/CD: Automatisez les déploiements à partir de GitHub, Azure DevOps ou d'autres référentiels.

En tant que data scientist ou ingénieur, vous vous demandez peut-être en quoi App Service diffère des autres offres Azure comme Azure Functions ou Azure Kubernetes Service. La principale différence réside dans le fait que App Service offre un juste milieu : plus deflexibilité que les options sans serveur, mais moins de complexité que les plates-formes d'orchestration de conteneurs.

> Pour une vue d'ensemble de l'écosystème et des services Azure, explorez ce cours d'introduction à Microsoft Azure. ce cours d'introduction à Microsoft Azure.

Configuration d'Azure App Service

Maintenant que nous avons compris ce qu'est Azure App Service, mettons les mains dans le cambouis et configurons notre premier App Service. Le processus comprend deux étapes principales : la création d'un plan App Service et la création d'une application web dans le cadre de ce plan.

Création d'un plan Azure App Service

Un plan App Service définit les ressources informatiques, la région et le niveau de tarification pour vos applications. Considérez-le comme la ferme de serveurs où vos applications seront exécutées. Plusieurs applications peuvent partager un seul plan App Service, ce qui le rend rentable pour l'exécution de plusieurs petites applications.

Voici comment créer un plan App Service :

  1. Connectez-vous au portail Azure
  2. Cliquez sur "Créer une ressource" dans le menu de gauche.
  3. Recherchez "App Service Plan" et sélectionnez-le.
  4. Cliquez sur "Créer"
  5. Complétez les informations suivantes :
    • Abonnement: Sélectionnez votre abonnement Azure
    • Groupe de ressources: Créez un nouveau groupe ou sélectionnez un groupe existant
    • Nom: Donnez à votre plan un nom descriptif (par exemple, "data-apps-plan").
    • Système d'exploitation: Choisissez entre Windows et Linux (je recommande Linux pour la plupart des charges de travail en science des données).
    • Région: Sélectionnez une région proche de vos utilisateurs ou de vos sources de données
    • Niveau de tarification: Sélectionnez le niveau approprié en fonction de vos besoins

Création d'un plan App Service dans le portail Azure.

En ce qui concerne les tarifs, Azure App Service propose plusieurs options :

Niveau

Caractéristiques

Meilleur pour

Gratuit

1GB de stockage, infrastructure partagée, 60 minutes/jour de calcul

Développement et essais

Partagé

1GB de stockage, 240 minutes/jour de calcul

Applications à faible trafic, développement

De base

10GB de stockage, VMs dédiées, domaines personnalisés

Charges de travail de production avec un trafic modéré

Standard

Stockage de 50 Go, mise à l'échelle automatique, emplacements de mise à l'échelle

Applications de production à fort trafic

Prime

250 Go de stockage, performances accrues, plus d'options de mise à l'échelle

Applications d'entreprise, besoins de haute performance

Pour les applications de données, je recommande généralement de starter avec au moins un niveau de base en production, car le traitement des données nécessite souvent plus de ressources qu'un simple service web. Si vous servez des modèles d'apprentissage automatique qui nécessitent beaucoup de calcul, envisagez le niveau Standard pour ses capacités de mise à l'échelle automatique.

Vous pouvez également créer un plan App Service à l'aide de l'interface de commande Azure :

# Create a resource group first if needed
az group create --name MyResourceGroup --location "East US"

# Create an App Service plan
az appservice plan create --name MyAppServicePlan --resource-group MyResourceGroup --sku B1 --is-linux

Création d'une application web App Service

Une fois que vous avez un plan App Service, vous pouvez créer une application web dans ce plan. L'application web est l'instance d'application réelle qui exécutera votre code.

Suivez les étapes suivantes pour créer une application web :

  1. Dans le portail Azure, cliquez sur "Créer une ressource"
  2. Recherchez "Web App" et sélectionnez-le
  3. Cliquez sur "Créer"
  4. Complétez les informations suivantes :
    • Abonnement : Sélectionnez votre abonnement Azure
    • Groupe de ressources : Utilisez le même groupe que votre plan App Service
    • Nom : Ce sera une partie de l'URL de votre application (par exemple, myapp.azurewebsites.net).
    • Publier : Choisissez Code ou Docker Container (pour ce tutoriel, nous choisirons Code).
    • Pile d'exécution : Sélectionnez le langage/framework de votre application (par exemple, Python 3.9)
    • Système d'exploitation : Correspondre au système d'exploitation de votre plan App Service
    • Région : Elle doit correspondre à la région de votre plan App Service.
    • App Service plan : Sélectionnez le plan que vous avez créé précédemment

Création d'une App Service Web App dans le portail Azure.

  1. Cliquez sur "Examiner + créer", puis sur "Créer" une fois la validation effectuée.

Si vous utilisez l'interface de programmation Azure, vous pouvez créer une application web en une seule commande :

# Create a Python web app
az webapp create --resource-group MyResourceGroup --plan MyAppServicePlan --name MyWebApp --runtime "PYTHON:3.9"

Après avoir créé votre application web, Azure fournira les ressources nécessaires. Une fois l'opération terminée, vous pouvez naviguer vers votre nouvelle application web en cliquant sur "Go to resource" ou en la trouvant dans votre groupe de ressources.

À ce stade, vous devriez voir une page par défaut lorsque vous visitez l'URL de votre application (https://your-app-name.azurewebsites.net). Cela confirme que votre application est en cours d'exécution, bien qu'elle ne contienne pas encore votre code - nous aborderons le déploiement dans la section suivante.

Configurer les paramètres de base de l'application

Avant de passer au déploiement, mettons en place une configuration de base pour notre application. Pour les applications de données, vous pouvez avoir besoin de variables d'environnement spécifiques pour les connexions aux bases de données ou les clés d'API.

Pour configurer les paramètres de l'application :

  1. Naviguez vers votre application web dans le portail Azure
  2. Dans la barre latérale gauche, sous "Paramètres", sélectionnez "Variables d'environnement"
  3. Dans l'onglet "Paramètres de l'application", cliquez sur "Ajouter"
  4. Ajoutez des paires clé-valeur pour vos variables d'environnement
  5. Cliquez sur "Enregistrer" lorsque vous avez terminé

Configurer les paramètres de base d'App Service dans le portail Azure.

Vous pouvez également les définir à l'aide de l'interface de gestion Azure :

# Set an environment variable
az webapp config appsettings set --resource-group MyResourceGroup --name MyWebApp --settings DB_CONNECTION_STRING="your-connection-string"

Ces paramètres seront disponibles en tant que variables d'environnement pour votre application, ce qui constitue un moyen sûr de stocker la configuration sans la coder en dur dans votre code source.

Déployer votre première application

Maintenant que nous avons mis en place notre infrastructure Azure App Service, il est temps de déployer notre application. Azure App Service propose plusieurs méthodes de déploiement, ce qui vous donne une certaine flexibilité en fonction de votre flux de travail et de vos préférences. Dans cette section, nous verrons comment déployer des applications à l'aide du contrôle des sources (GitHub ou Azure Repos), du FTP et des dépôts Git locaux.

En tant que praticien des données, cette étape est cruciale car elle permet de combler le fossé entre votre environnement de développement local et une application prête à la production qui peut servir vos modèles ou vos pipelines de traitement de données.

> Pour ceux qui ne connaissent pas les principes de déploiement, ce cours DevOps offre une introduction claire aux concepts et aux outils de base.

Déploiement depuis GitHub ou Azure Repos

L'une des caractéristiques les plus puissantes d'Azure App Service est sa capacité intégrée de déploiement continu (CD). En connectant votre App Service à un dépôt GitHub ou Azure DevOps, vous pouvez déployer automatiquement des modifications chaque fois que du code est poussé vers une branche spécifique.

Cette approche est particulièrement précieuse pour les équipes chargées des données qui travaillent sur des projets collaboratifs, car elle permet d'améliorer la qualité des données :

  • S'assurer que tous les membres de l'équipe déploient dans le même environnement.
  • Création d'une piste d'audit des déploiements
  • Réduction des erreurs de déploiement manuel
  • Soutien aux tests automatisés dans le cadre du pipeline de déploiement

> Si vous êtes novice en matière de contrôle de version, le cursus GitHub Foundations peut vous aider à vous familiariser avec les principes de base. Vous pouvez également explorer Azure DevOps comme une alternative robuste pour gérer vos pipelines de déploiement et le contrôle des versions.

Voici comment mettre en place un déploiement continu à partir de GitHub :

  1. Naviguez vers votre App Service dans le portail Azure
  2. Dans la barre latérale de gauche, sélectionnez "Deployment Center"
  3. Sélectionnez "GitHub" comme source.
  4. Authentifiez-vous avec votre compte GitHub si vous y êtes invité.
  5. Choisissez votre organisation, votre dépôt et votre branche
  6. Cliquez sur "Enregistrer"

Deployment Center dans le portail Azure.

Azure créera un fichier de flux de travail GitHub dans votre dépôt qui construira et déploiera automatiquement votre application chaque fois que des changements seront apportés à la branche sélectionnée. Ce flux de travail utilise les actions GitHub pour gérer le processus CI/CD.

> Pour automatiser davantage les déploiements, envisagez de combiner les Makefiles avec les Actions GitHub pour rationaliser les flux de travail CI/CD.

Pour les applications Python, le flux de travail comprend généralement des étapes pour :

  • Mise en place de Python
  • Installez les dépendances à partir de requirements.txt
  • Exécutez les tests
  • Déployer vers Azure App Service

Vous pouvez également mettre en place un déploiement continu à l'aide de l'interface CLI d'Azure :

# Set up GitHub continuous deployment
az webapp deployment source config --name MyWebApp --resource-group MyResourceGroup --repo-url https://github.com/username/repo --branch main --git-token <your-github-token>

Configuration des paramètres de déploiement

Pour affiner votre déploiement, vous pouvez configurer des paramètres supplémentaires dans le fichier de flux de travail GitHub ou dans le portail Azure :

  1. Naviguez jusqu'à votre service d'application
  2. Sélectionnez "Deployment Center"
  3. Cliquez sur "Paramètres"
  4. Ici, vous pouvez configurer :
    • Le fournisseur de build (Kudu ou GitHub Actions)
    • Flux de construction et de déploiement
    • Paramètres d'accès au référentiel

Pour les applications de science des données, vous pouvez avoir besoin d'ajouter des étapes de construction personnalisées qui installent des paquets scientifiques ou exécutent des scripts d'apprentissage de modèles. Ceux-ci peuvent être ajoutés directement au fichier de flux de travail dans votre référentiel.

Déploiement par FTP ou Git local

Bien que le déploiement continu à partir de GitHub ou d'Azure Repos soit recommandé pour les environnements d'équipe, vous pouvez parfois avoir besoin de méthodes de déploiement plus directes. Azure App Service prend en charge à la fois FTP et Git local pour ces scénarios.

Déploiement FTP

Le déploiement FTP est un moyen simple de télécharger les fichiers de votre application directement vers Azure App Service. Cette méthode est utile pour les mises à jour rapides ou lorsque vous avez affaire à des applications qui ne nécessitent pas de processus de construction complexes.

Pour déployer via FTP :

  1. Dans votre App Service, allez dans le "Deployment Center".
  2. Sélectionnez "FTP" et notez le point de terminaison FTP, le nom d'utilisateur et le mot de passe.
  3. Utilisez n'importe quel client FTP (comme FileZilla) pour vous connecter à votre App Service.
  4. Téléchargez vos fichiers d'application dans le répertoire /site/wwwroot/

Pour les applications Python, assurez-vous que votre fichier requirements.txt est inclus dans le téléchargement. Azure App Service installera automatiquement les paquets nécessaires.

Déploiement local de Git

Le déploiement Git local vous permet de pousser le code de votre dépôt Git local directement vers Azure. Cette méthode vous permet de mieux contrôler le processus de déploiement tout en tirant parti des fonctionnalités de contrôle de version de Git.

Pour mettre en place un déploiement local de Git :

  1. Dans votre App Service, allez dans le "Deployment Center".
  2. Sélectionnez "Local Git"
  3. Cliquez sur "Enregistrer"
  4. Allez dans "Deployment Credentials" pour configurer ou consulter vos informations d'identification.
  5. Ajoutez la version distante d'Azure Git à votre dépôt local :
# Add the Azure remote
git remote add azure https://username@your-app-name.scm.azurewebsites.net/your-app-name.git

# Push your code to Azure
git push azure main

Lorsque vous envoyez du code à Azure, la plateforme construit et déploie automatiquement votre application.

Suivi de l'état du déploiement

Quelle que soit la méthode de déploiement choisie, il est important de surveiller le processus de déploiement afin de détecter rapidement tout problème. Azure propose plusieurs moyens de suivre l'état des déploiements :

  1. Dans le portail Azure, accédez à votre App Service
  2. Sélectionnez "Deployment Center"
  3. Consultez l'onglet "Logs" pour voir les logs de déploiement détaillés.
  4. Pour les déploiements GitHub, vous pouvez également consulter l'onglet Actions dans votre dépôt GitHub.

Contrôle de l'état du déploiement dans le centre de déploiement du portail Azure.

Si un déploiement échoue, les journaux fournissent des informations sur ce qui n'a pas fonctionné. Les problèmes les plus fréquents sont les suivants :

  • Dépendances manquantes dans requirements.txt
  • Erreurs de syntaxe dans votre code
  • Problèmes de configuration dans votre application
  • Limitations de la mémoire pendant la construction

Pour résoudre les problèmes de déploiement :

  1. Examinez attentivement les journaux de déploiement
  2. Vérifiez si votre application s'exécute localement
  3. Assurez-vous que toutes les dépendances sont répertoriées dans votre fichier requirements.txt.
  4. Vérifiez que le point d'entrée de votre application correspond à ce qui est attendu par Azure.

Pour les applications de science des données, les échecs de déploiement sont souvent dus à l'installation de gros paquets ou à des opérations gourmandes en mémoire lors du démarrage. Si vous rencontrez ces problèmes, réfléchissez :

  • Décomposer les grandes dépendances en éléments plus petits
  • Utiliser des alternatives légères pour les déploiements en production
  • Pré-entraînement des modèles et stockage en tant qu'artefacts plutôt que formation lors du déploiement

Obtenez la certification Azure AZ-900

Préparez-vous à l'examen PL-300 d'Azure et bénéficiez d'une remise de 50% sur le prix de l'examen.
Certifiez vos compétences Azure

Configuration d'Azure App Service

Une fois votre application déployée, l'étape suivante consiste à configurer divers aspects de votre Azure App Service afin de garantir un fonctionnement optimal et sécurisé. Dans cette section, nous aborderons les domaines personnalisés, l'authentification et les paramètres de l'application.

Configuration des domaines personnalisés

Par défaut, votre App Service est accessible via une URL comme your-app-name.azurewebsites.net. Pour les applications de production, vous voudrez probablement utiliser votre propre nom de domaine. Voici comment configurer un domaine personnalisé :

  1. Achetez un domaine auprès d'un bureau d'enregistrement si vous n'en avez pas déjà un.
  2. Dans votre App Service, allez dans "Domaines personnalisés" dans la barre latérale gauche.
  3. Cliquez sur "Ajouter un domaine personnalisé"
  4. Entrez votre nom de domaine (par exemple, myapp.example.com)
  5. Suivez les instructions pour vérifier la propriété du domaine
    • Vous devez ajouter un enregistrement TXT ou CNAME à vos paramètres DNS.

Configurer des domaines personnalisés dans le portail App Service.

Pour les domaines apex (comme example.com sans le www), vous devrez créer un enregistrement A pointant vers l'adresse IP de votre service d'application. Vous trouverez cette adresse IP dans la page de configuration du domaine personnalisé.

Vous pouvez également gérer des domaines personnalisés à l'aide de la CLI Azure :

# Add a custom domain
az webapp config hostname add --webapp-name MyWebApp --resource-group MyResourceGroup --hostname www.example.com

Liaison des certificats SSL

Pour les applications sécurisées, en particulier celles qui traitent des données sensibles, il est essentiel d'activer le protocole HTTPS. Azure App Service facilite cette tâche en fournissant des certificats gérés gratuitement ou en vous permettant de télécharger les vôtres.

Pour ajouter un certificat SSL :

  1. Dans votre App Service, allez dans "TLS/SSL settings" (paramètres TLS/SSL)
  2. Sélectionnez "Certificats de clé privée"
  3. Choisissez l'une des options suivantes :
    • Créez un certificat gratuit géré par App Service
    • Importer un certificat App Service
    • Télécharger un certificat PFX
  4. Une fois le certificat ajouté, allez dans "Bindings"
  5. Ajouter une liaison SSL pour votre domaine personnalisé

Pour les applications de données qui traitent des informations sensibles, je recommande d'activer le mode HTTPS uniquement afin de garantir que tout le trafic est crypté :

  1. Dans "Paramètres TLS/SSL", allez dans la section "HTTPS uniquement".
  2. Basculez l'interrupteur sur "On"
  3. Cliquez sur "Enregistrer"

Configuration de l'authentification et de l'autorisation

De nombreuses applications de données nécessitent une authentification de l'utilisateur pour contrôler l'accès aux données ou aux fonctionnalités sensibles. Azure App Service propose des options d'authentification intégrées qui peuvent vous éviter d'implémenter la logique d'authentification dans votre code.

Pour configurer l'authentification :

  1. Dans votre App Service, allez à "Authentification" dans la barre latérale gauche.
  2. Cliquez sur "Ajouter un fournisseur d'identité"
  3. Choisissez votre fournisseur d'identité :
    • Microsoft (Azure AD)
    • Google
    • Facebook
    • Twitter
    • GitHub
    • OpenID Connect
  4. Configurer les paramètres du fournisseur
  5. Configurer les URL de redirection et les configurations des magasins de jetons

Configuration de l'authentification et de l'autorisation pour Azure App Service.

Pour les applications de données d'entreprise, Azure Active Directory est souvent le choix préféré car il s'intègre aux identités d'entreprise existantes et prend en charge des fonctions telles que l'accès conditionnel et l'authentification multifactorielle.

Vous pouvez également configurer des restrictions d'autorisation pour contrôler qui peut accéder à votre application :

  1. Dans les paramètres d'authentification, sélectionnez "Modifier" en regard de votre fournisseur d'identité.
  2. Sous "Restreindre l'accès", choisissez l'une des options suivantes :
    • Autoriser les demandes non authentifiées
    • Exiger l'authentification
    • Autoriser les demandes anonymes (pas d'action)
  3. Configurez les URL de redirection externes autorisées si nécessaire.

Paramètres de l'application et chaînes de connexion

Nous avons brièvement abordé la question des paramètres de l'application précédemment, mais nous allons voir plus en détail comment vous pouvez les utiliser pour configurer efficacement votre application de données.

Les paramètres de l'application dans Azure App Service servent de variables d'environnement pour votre application. Ils sont particulièrement utiles pour :

  • Chaînes de connexion à la base de données
  • Clés API
  • Drapeaux caractéristiques
  • Configurations spécifiques à l'environnement

Pour ajouter ou modifier les paramètres de l'application :

  1. Dans votre App Service, allez dans "Configuration" dans la barre latérale gauche.
  2. Sélectionnez l'onglet "Paramètres de l'application".
  3. Cliquez sur "Nouveau paramètre d'application" pour ajouter une paire clé-valeur.
  4. Pour les valeurs sensibles, vous pouvez faire basculer l'option "deployment slot setting" afin d'éviter qu'elles ne soient échangées lors des permutations d'emplacements.

Configuration des variables d'environnement dans Azure App Service

Pour les applications de données, les paramètres courants sont les suivants

  • Chaînes de connexion à la base de données
  • Clés d'accès au compte de stockage
  • Points finaux du modèle d'apprentissage automatique
  • Indicateurs de fonctionnalités pour les tests A/B

Vous pouvez également configurer les chaînes de connexion séparément, ce qui est utile pour les connexions aux bases de données :

  1. Dans la page Configuration, sélectionnez l'onglet "Chaînes de connexion".
  2. Cliquez sur "Nouvelle chaîne de connexion"
  3. Indiquez un nom, une valeur et un type (SQL Server, MySQL, PostgreSQL, etc.).

Les chaînes de connexion sont également disponibles pour votre application en tant que variables d'environnement, mais avec une convention de dénomination différente en fonction de votre langue/cadre de travail.

Pour récupérer des paramètres dans votre application Python :

import os

# Retrieve an application setting
api_key = os.environ.get('API_KEY')

# Retrieve a connection string (Python)
connection_string = os.environ.get('SQLCONNSTR_MyDatabase')

Utilisation des références du coffre-fort de clés

Pour les informations très sensibles telles que les identifiants de base de données ou les clés d'API, Azure Key Vault offre une couche de sécurité supplémentaire. Vous pouvez référencer les secrets de Key Vault directement dans les paramètres de votre application :

  1. Créez un coffre-fort de clés Azure et ajoutez vos secrets
  2. Assurez-vous que votre service d'application dispose d'une identité gérée
  3. Accorder à l'identité l'accès à la chambre forte
  4. Dans les paramètres de votre application, faites référence au secret en utilisant le format : @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)

Cette approche sépare les informations sensibles de la configuration de votre application et permet une gestion centralisée des secrets.

Mise à l'échelle et gestion d'Azure App Service

Maintenant que votre application est déployée et configurée, il faut s'assurer qu'elle fonctionne bien, qu'elle reste fiable et qu'elle s'adapte à l'évolution de la charge de travail. 

La mise à l'échelle et la gestion correcte de votre Azure App Service sont particulièrement importantes pour les applications de données, qui ont souvent des besoins en ressources variables et peuvent traiter des informations sensibles.

Mise à l'échelle des plans d'App Service

L'un des principaux avantages des plateformes cloud telles qu'Azure est la possibilité d'augmenter ou de réduire les ressources en fonction de la demande. Pour les applications de données, cela est particulièrement utile car les charges de travail varient souvent de manière significative, entre des périodes de traitement intensif des données et des périodes plus calmes avec un trafic minimal.

Azure App Service propose deux méthodes principales de mise à l'échelle :

Mise à l'échelle verticale (mise à l'échelle vers le haut/vers le bas)

La mise à l'échelle verticale consiste à modifier la taille de votre plan d'App Service afin de fournir plus ou moins d'unité centrale, de mémoire et d'espace disque. Ceci est utile lorsque les performances de votre application sont limitées par les ressources d'une seule instance.

Pour une mise à l'échelle verticale :

  1. Dans votre plan d'App Service, sélectionnez "Scale up (App Service plan)" dans la barre latérale gauche.
  2. Choisissez un niveau de prix ou une taille d'instance différents en fonction de vos besoins.
  3. Cliquez sur "Appliquer"

Mise à l'échelle d'un plan Azure App Service.

Pour les applications de données, envisagez une mise à l'échelle verticale lorsque :

  • Votre application subit une pression de la mémoire en raison d'opérations de traitement de données volumineuses.
  • Vous atteignez les limites de l'unité centrale pendant l'inférence du modèle
  • Vous avez besoin d'un espace de stockage supplémentaire pour la mise en cache des données ou les fichiers temporaires.

Mise à l'échelle horizontale (Scale out/in)

La mise à l'échelle horizontale modifie le nombre d'instances de machines virtuelles qui exécutent votre application. Cette approche est idéale pour répartir la charge et améliorer la disponibilité.

Pour une mise à l'échelle horizontale :

  1. Dans votre plan de service applicatif, sélectionnez "Scale out (App Service plan)" dans la barre latérale gauche.
  2. Définissez le nombre d'instances manuellement ou configurez des règles de mise à l'échelle automatique.
  3. Cliquez sur "Enregistrer"

Pour une mise à l'échelle manuelle, il suffit d'ajuster le nombre d'instances au nombre souhaité. Cependant, la mise à l'échelle automatique offre plus de flexibilité en ajustant automatiquement les ressources sur la base de mesures.

Mise en place de règles de mise à l'échelle automatique

La mise à l'échelle automatique est particulièrement utile pour les applications de données dont la charge de travail est variable. Par exemple, un modèle d'apprentissage automatique servant d'API peut connaître un trafic plus important pendant les heures de bureau et un trafic plus faible pendant la nuit.

Pour configurer la mise à l'échelle automatique :

  1. Dans la section "Mise à l'échelle", sélectionnez "Activer la mise à l'échelle automatique"
  2. Définissez une condition d'échelle avec les éléments suivants :
    • Un nombre d'instances par défaut
    • Règles de mise à l'échelle (quand ajouter des instances)
    • Règles de mise à l'échelle (quand supprimer des instances)
    • Règles optionnelles basées sur le calendrier

Mise à l'échelle et plan Azure App Service

Voici un exemple d'une règle courante de mise à l'échelle automatique :

  • Décomposition: Ajouter une instance lorsque le pourcentage de CPU > 70% pendant 10 minutes
  • Échelle dans: Supprimez une instance lorsque le pourcentage de CPU est inférieur à 30 % pendant 10 minutes.

Vous pouvez également créer des règles plus sophistiquées basées sur :

  • Utilisation de la mémoire
  • Longueur de la file d'attente des données
  • Mesures personnalisées provenant d'Application Insights

Pour les charges de travail de science des données, envisagez ces stratégies de mise à l'échelle automatique :

  • Si votre application utilise des modèles d'apprentissage automatique, dimensionnez-la en fonction de la longueur de la file d'attente des requêtes afin de garantir que la latence de prédiction reste faible.
  • Pour les processus ETL, prévoyez une capacité supplémentaire pendant les fenêtres de traitement connues.
  • Pour les applications destinées à des utilisateurs internationaux, utilisez une mise à l'échelle basée sur le calendrier pour garantir une capacité adéquate sur différents fuseaux horaires.

Vous pouvez également configurer la mise à l'échelle automatique à l'aide d'Azure CLI :

# Create an autoscale setting with a rule to scale out when CPU > 70%
az monitor autoscale create --resource-group MyResourceGroup --resource MyAppServicePlan --resource-type "Microsoft.Web/serverfarms" --name MyAutoScaleConfig --min-count 2 --max-count 5 --count 2

# Add a scale out rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale out 1 --condition "Percentage CPU > 70 avg 10m"

# Add a scale in rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale in 1 --condition "Percentage CPU < 30 avg 10m"

Surveillance et diagnostic

Un contrôle efficace est essentiel pour maintenir des applications de données fiables. Azure fournit des outils de surveillance complets qui vous donnent une visibilité sur les performances de votre application, les schémas d'utilisation et les problèmes potentiels.

Azure Monitor et Application Insights

Azure Monitor est la base de la surveillance des services Azure, tandis qu'Application Insights fournit des informations plus approfondies sur les applications spécifiques.

Pour activer Application Insights pour votre App Service :

  1. Dans votre App Service, sélectionnez "Application Insights" dans la barre latérale gauche.
  2. Cliquez sur "Activer Application Insights"
  3. Configurer une ressource Application Insights nouvelle ou existante
  4. Cliquez sur "Appliquer"

Azure Monitor et Application Insights.

Une fois activé, Application Insights recueille une multitude de données sur votre application, notamment :

  • Taux de demandes, temps de réponse et taux d'échec
  • Appels de dépendance (bases de données, API externes)
  • Performance de l'affichage des pages
  • Journaux d'exception
  • Événements personnalisés que vous définissez dans le code

Pour les applications Python, vous devez installer le SDK Application Insights :

pip install opencensus-ext-azure

Puis ajoutez l'instrumentation à votre application :

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

# Configure the Azure exporter
azure_exporter = AzureExporter(
    connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'
)

# Create a tracer
tracer = Tracer(exporter=azure_exporter, sampler=ProbabilitySampler(1.0))

# Use the tracer in your application
with tracer.span(name="main_function"):
    # Your code here
    pass

Consulter les journaux et configurer les alertes

Azure App Service collecte automatiquement des journaux qui peuvent vous aider à diagnostiquer les problèmes :

  1. Dans votre service d'application, sélectionnez "Log stream" pour afficher les journaux en temps réel.
  2. Pour une analyse plus détaillée, allez dans "Journaux de diagnostic" et activez l'enregistrement des applications.
  3. Configurez le niveau du journal (Erreur, Avertissement, Information, Verbeux)

Affichage des journaux dans Azure App Service.

Pour les applications de données, portez une attention particulière aux points suivants

  • les exceptions liées à l'absence de mémoire, qui sont fréquentes lors du traitement d'ensembles de données volumineux
  • Délais de connexion aux sources de données
  • Goulets d'étranglement des performances lors des opérations de transformation des données

La mise en place d'alertes vous permet d'être informé des problèmes avant qu'ils n'affectent les utilisateurs :

  1. Dans Azure Monitor, sélectionnez "Alertes"
  2. Cliquez sur "Nouvelle règle d'alerte"
  3. Sélectionnez votre App Service comme ressource
  4. Définissez la condition qui doit déclencher l'alerte
  5. Configurez des groupes d'action pour déterminer qui doit être notifié et comment.
  6. Nommez votre alerte et enregistrez-la

Les alertes courantes pour les applications de données sont les suivantes

  • Utilisation élevée de la mémoire (>80%)
  • Erreurs du serveur (réponses 5xx)
  • Longs délais de traitement pour les opérations clés
  • Échec des tentatives de connexion aux données

Surveillance personnalisée pour les applications de données

Pour les besoins de suivi de données spécifiques, envisagez de suivre ces mesures personnalisées :

  • Débit de traitement des données (enregistrements traités par minute)
  • Temps de latence de l'inférence du modèle
  • Temps de calcul des caractéristiques
  • Taux de réussite et d'échec de la mémoire cache

Vous pouvez envoyer des mesures personnalisées à Application Insights à l'aide du SDK :

from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation, measure, stats, view

# Create a metrics exporter
exporter = metrics_exporter.new_metrics_exporter(
    connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')

# Create and record custom metrics
prediction_time = measure.MeasureFloat(
    "prediction_time", "Time taken for model inference", "ms")
prediction_time_view = view.View(
    "prediction_time_view", "Model inference time", [], prediction_time, aggregation.LastValueAggregation())

# Register the view
stats.stats.view_manager.register_view(prediction_time_view)

# Record metrics
mmap = stats.stats.stats_recorder.new_measurement_map()
mmap.measure_float_put(prediction_time, 175.5)  # Record 175.5ms inference time
mmap.record()

# Force metrics to be sent immediately
exporter.export_metrics([])

Sauvegarde et restauration

Les applications de données gèrent souvent des informations précieuses, ce qui rend les capacités de sauvegarde et de restauration essentielles. Azure App Service offre une fonctionnalité de sauvegarde intégrée qui peut capturer les fichiers, la configuration et les bases de données connectées de votre application.

Mise en place de sauvegardes automatiques

Pour configurer les sauvegardes :

  1. Dans votre App Service, sélectionnez "Sauvegardes" dans la barre latérale gauche.
  2. Cliquez sur "Configurer"
  3. Définissez le calendrier des sauvegardes (quotidiennes, hebdomadaires ou personnalisées).
  4. Spécifiez un compte de stockage pour les fichiers de sauvegarde
  5. Possibilité d'inclure des bases de données dans la sauvegarde
  6. Cliquez sur "Enregistrer"

Configuration et visualisation des sauvegardes dans Azure App Service.

Pour les applications de données, tenez compte des meilleures pratiques de sauvegarde suivantes :

  • Planifiez les sauvegardes pendant les périodes de faible activité
  • Assurez-vous que votre compte de stockage se trouve dans la même région que votre App Service pour des sauvegardes plus rapides.
  • Pour les applications dont les données changent fréquemment, configurez des sauvegardes plus fréquentes.
  • N'oubliez pas que les bases de données volumineuses peuvent dépasser les limites de taille des sauvegardes ; dans ce cas, envisagez des stratégies de sauvegarde spécifiques à la base de données.

Restauration à partir d'une sauvegarde

Si vous devez restaurer votre application :

  1. Dans la section Sauvegardes, sélectionnez le point de sauvegarde à partir duquel vous souhaitez effectuer la restauration
  2. Cliquez sur "Restaurer"
  3. Choisissez de restaurer ou non le contenu de l'application, la configuration et les bases de données connectées.
  4. Spécifiez le service d'application cible (il peut s'agir de la même application ou d'une application différente).
  5. Cliquez sur "OK" pour lancer le processus de restauration

Pour les applications de données critiques, je recommande de tester périodiquement le processus de restauration afin de s'assurer que votre stratégie de récupération fonctionne comme prévu.

Stratégies de sauvegarde spécifiques aux bases de données

Bien que les sauvegardes d'App Service puissent inclure les bases de données connectées, les applications à forte intensité de données bénéficient souvent de stratégies de sauvegarde spécifiques aux bases de données :

  • Pour les bases de données Azure SQL, configurez des sauvegardes automatiques avec restauration à un moment donné.
  • Pour Cosmos DB, utilisez le mode de sauvegarde continue
  • Pour les grands ensembles de données stockés dans Azure Storage, envisagez d'utiliser la réplication et le versionnage des comptes de stockage.

Sécurité et conformité dans Azure App Service

La sécurité est primordiale pour les applications de données, en particulier celles qui traitent des informations sensibles ou réglementées. Azure App Service propose plusieurs fonctions de sécurité pour protéger vos applications.

Contrôle d'accès basé sur les rôles (RBAC)

RBAC vous permet de contrôler qui peut gérer vos ressources App Service :

  1. Dans le portail Azure, naviguez jusqu'à votre App Service
  2. Sélectionnez "Contrôle d'accès (IAM)" dans la barre latérale gauche.
  3. Cliquez sur "Ajouter" puis sur "Ajouter une attribution de rôle"
  4. Choisissez le rôle approprié :
    • Contributeur : Peut gérer l'App Service mais ne peut pas accorder l'accès à d'autres personnes
    • Lecteur : Peut visualiser mais ne peut rien changer
    • Contributeur du site web : Peut gérer des sites web mais pas le plan App Service
  5. Sélectionnez les utilisateurs, les groupes ou les mandants de service auxquels attribuer le rôle.
  6. Cliquez sur "Enregistrer"

RBAC dans Azure App Service.

Pour les équipes chargées des données, envisagez de créer des rôles personnalisés qui limitent l'accès à des opérations spécifiques en fonction des responsabilités professionnelles.

Restrictions IP et mise en réseau

Les restrictions IP vous permettent de contrôler quelles adresses IP peuvent accéder à votre service applicatif :

  1. Dans votre App Service, sélectionnez "Networking" dans la barre latérale gauche.
  2. Allez à "Restrictions d'accès"
  3. Cliquez sur "Ajouter une règle"
  4. Spécifiez la plage d'adresses IP, l'action (autoriser/refuser), la priorité et le nom.
  5. Cliquez sur "Ajouter une règle"

Restrictions IP et mise en réseau dans Azure App Service.Pour les applications de données qui se connectent à des ressources internes, envisagez :

  • Intégration VNet : Connectez votre service applicatif à votre réseau virtuel
  • Service Endpoints : Connexions sécurisées aux services Azure tels que SQL et Storage
  • Points d'aboutissement privés : Créez un lien privé vers votre App Service à partir de votre réseau virtuel.

Pour configurer l'intégration VNet :

  1. Dans la section Mise en réseau, sélectionnez "Intégration VNet"
  2. Cliquez sur "Ajouter un VNet"
  3. Sélectionnez ou créez un réseau virtuel et un sous-réseau
  4. Cliquez sur "OK"

Cette intégration est particulièrement utile pour se connecter en toute sécurité à des bases de données ou à d'autres sources de données au sein de votre réseau.

Dépannage des problèmes courants liés à Azure App Service

Même avec une planification minutieuse, des problèmes peuvent survenir avec votre service d'application. Voici quelques problèmes courants et leurs solutions, en mettant l'accent sur les scénarios d'application des données.

Diagnostiquer les pannes d'application

Si votre application se bloque ou ne répond pas :

  1. Vérifiez les journaux du service d'application :
    • Cliquez sur "Log stream" pour consulter les journaux en temps réel.
    • Vérifiez les données historiques dans les "journaux de diagnostic".
  2. Utilisez Application Insights pour identifier les exceptions
  3. Exécutez les outils de diagnostic Kudu :
    • Naviguez jusqu'à https://.scm.azurewebsites.net/DebugConsole
    • Utilisez la console pour inspecter les fichiers et les processus

Les causes courantes des pannes dans les applications de données sont les suivantes :

  • Limites de mémoire : Le traitement de grands ensembles de données peut dépasser la mémoire disponible
  • Les problèmes de dépendance : Paquets manquants ou incompatibles
  • Erreurs de configuration : Chaînes de connexion ou variables d'environnement incorrectes

Pour les opérations à forte intensité de mémoire, envisagez :

  • Passer à un niveau supérieur avec plus de mémoire
  • Mise en œuvre de l'agrégation de données pour traiter des lots plus petits
  • Utilisation d'algorithmes ou de structures de données plus efficaces

Déboguer les problèmes de performance

Si votre application fonctionne lentement :

  1. Utilisez le contrôle des performances Application Insights :
    • Vérifiez la lame de performance pour identifier les requêtes lentes
    • Recherchez les appels de dépendance susceptibles de provoquer des goulets d'étranglement.
  2. Examinez les mesures du serveur dans Azure Monitor :
    • Utilisation de l'unité centrale et de la mémoire
    • Longueur de la file d'attente HTTP
  3. Vérifier les performances des requêtes de la base de données pour les opérations à forte intensité de données

Améliorer les performances :

  • Mise en place d'une mémoire cache pour les requêtes fréquentes
  • Optimiser les index de la base de données
  • Envisager une augmentation ou une réduction d'échelle
  • Utiliser des opérations asynchrones pour les processus de longue durée

Examen des journaux et des messages d'erreur

Azure App Service propose plusieurs options de journalisation :

  1. Journaux d'application : Les journaux de votre application
  2. Journaux du serveur web : Journaux des requêtes et des erreurs HTTP
  3. Journaux de déploiement : Informations sur votre processus de déploiement
  4. Enregistrement détaillé des erreurs : Plus d'informations sur les erreurs HTTP

Pour configurer une journalisation plus détaillée :

  1. Dans votre App Service, allez dans "Diagnostic logs" (journaux de diagnostic)
  2. Activez les types de journaux appropriés
  3. Définissez le niveau approprié (Erreur, Avertissement, Information, Verbeux).
  4. Choisissez de stocker les journaux dans le système de fichiers ou dans le stockage blob.

Pour les applications Python, vous pouvez améliorer la journalisation avec :

import logging
import sys

# Configure logging
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.StreamHandler(sys.stdout)
    ]
)

# Use logging in your application
logger = logging.getLogger(__name__)
logger.info("Processing data batch")
logger.error("Failed to connect to database", exc_info=True)

Gestion des coûts avec Azure App Service

Les applications de données peuvent souvent consommer des ressources importantes, d'où l'importance de comprendre et d'optimiser les coûts. Dans cette dernière section, nous explorerons les modèles de tarification d'Azure App Service et les stratégies de gestion efficace des coûts.

Comprendre la tarification d'Azure App Service

La tarification d'Azure App Service est principalement basée sur le plan d'App Service que vous sélectionnez. Passons en revue les facteurs de coût à prendre en considération :

Paliers du plan App Service

Comme nous l'avons vu précédemment, Azure propose plusieurs niveaux de prix, chacun avec des capacités et des coûts différents :

Niveau

Fourchette de coûts mensuels (USD)

Caractéristiques

Meilleur pour

Gratuit

$0

1GB de stockage, infrastructure partagée, 60 minutes/jour de calcul

Développement, apprentissage

Partagé (D1)

$10-15

1GB de stockage, 240 minutes/jour de calcul

Sites à faible trafic, tests

Basique (B1-B3)

$55-220

VMs dédiées, échelle manuelle, domaines personnalisés

Charges de travail de production, trafic faible à moyen

Standard (S1-S3)

$70-400

Mise à l'échelle automatique, emplacements de mise à l'échelle, sauvegardes quotidiennes

Applications de production à trafic variable

Premium (P1V2-P3V2)

$80-500

Des performances accrues, plus d'options de mise à l'échelle

Besoins en performances élevées, applications de grande envergure

Isolé

$300-1000+

Isolation du réseau et de l'ordinateur

Applications soumises à des exigences strictes en matière de conformité

Note : Les prix sont approximatifs et peuvent varier selon les régions ou en fonction des changements de prix d'Azure. Pour obtenir les dernières informationsn, consultez la page officielle des prix.

Facteurs de coûts supplémentaires

Au-delà du plan de base App Service, tenez compte de ces coûts supplémentaires :

  1. Transfert de données sortant: Après les 5 premiers Go par mois (qui sont gratuits), le transfert de données vers l'extérieur est payant. Pour les applications de données qui servent de grands ensembles de données aux utilisateurs, cela peut devenir important.
  2. Certificats SSL: Azure fournit des certificats gratuits, mais les certificats personnalisés ont un coût.
  3. Domaines personnalisés: Le premier domaine personnalisé est gratuit, mais les domaines supplémentaires peuvent être payants.
  4. Stockage: Le stockage supplémentaire, au-delà de ce qui est inclus dans votre niveau, est facturé en sus.
  5. Modules complémentaires et services connectés: Les bases de données, les services de mise en cache et les autres ressources Azure connectées à votre App Service entraînent leurs propres frais.

Coûts de surveillance

Azure fournit des outils pour contrôler et prévoir vos dépenses :

  1. Gestion des coûts Azure: Accédez-y dans le portail Azure pour afficher les coûts par ressource, définir des budgets et créer des alertes.
  2. Calculateur de prix: Utilisez le calculateur de prix Azure pourestimer les coûts avant le déploiement.
  3. Recommandations du conseiller: Azure Advisorfournit des suggestions d'optimisation des coûts en fonction de vos habitudes d'utilisation.

> Gérer efficacement les coûts, la sécurité et les performances des services Azure, ce cours sur la gestion et la gouvernance d'Azure est fortementest fortement recommandé.

Stratégies d'optimisation des coûts

Maintenant que nous comprenons le modèle de tarification, explorons les stratégies d'optimisation des coûts pour les applications de données sur Azure App Service.

Dimensionnement de votre plan App Service

L'un des moyens les plus efficaces de contrôler les coûts est de s'assurer que vous utilisez le plan d'App Service approprié :

  1. Commencez par une base de référence appropriée: Plutôt que d'opter par défaut pour un plan de haut niveau, commencez par un plan modéré et n'augmentez que si nécessaire.
  2. Contrôlez l'utilisation des ressources: Utilisez Azure Monitor pour suivre l'utilisation du processeur, de la mémoire et du disque. Si votre taux d'utilisation est constamment inférieur à 50 %, envisagez de réduire vos effectifs.
  3. Adaptez le niveau à votre charge de travail: Pour les applications de données dont les charges de travail sont prévisibles et régulières, un niveau de base ou standard peut suffire. Réservez les niveaux Premium aux applications exigeant des performances élevées.

Pour les applications de science des données, tenez compte de ces recommandations spécifiques :

  • Modèle de service d'API avec des exigences de faible latence mais un trafic modéré fonctionnent souvent bien sur les plans Standard avec mise à l'échelle automatique.
  • Les pipelines de traitement de données qui s'exécutent selon des calendriers peuvent souvent utiliser des plans de base si le temps de traitement n'est pas critique.
  • Tableaux de bord interactifs avec de nombreux utilisateurs simultanés nécessitent généralement des plans Standard ou Premium pour maintenir la réactivité.

Utiliser efficacement la mise à l'échelle automatique

La mise à l'échelle automatique ne sert pas seulement à gérer les pics de trafic, c'est aussi un puissant outil d'optimisation des coûts :

  1. Échelle à zéro si possible: Pour les applications non critiques ou les environnements de développement, envisagez de réduire le nombre d'instances à un minimum de zéro pendant les heures creuses.
  2. Définissez les seuils d'échelle appropriés: Ne procédez pas à une mise à l'échelle trop agressive. Commencez par des seuils prudents (comme 70 % de CPU) et ajustez-les en fonction des performances observées.
  3. Mise en œuvre de la mise à l'échelle programmée: Pour les charges de travail prévisibles, utilisez des règles de mise à l'échelle planifiées plutôt qu'une mise à l'échelle automatique basée sur des mesures. Par exemple, augmentez l'échelle pendant les heures de bureau et réduisez-la pendant les nuits et les week-ends.
# Example: Create a scheduled autoscale rule to scale down at night
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale to 1 --condition "Current time is between 22:00 and 06:00 recurring"

Optimisation des environnements de développement et de test

Les environnements de développement et de test offrent d'importantes possibilités de réduction des coûts :

  1. Utilisez le niveau gratuit ou partagé pour les environnements de développement.
  2. Mettez en œuvre l'arrêt automatique pour les environnements de non-production pendant les heures creuses. Bien qu'App Service ne dispose pas d'une fonction d'arrêt intégrée, vous pouvez utiliser Azure Automation ou Logic Apps pour arrêter et démarrer les applications selon un calendrier.
  3. Exploitez efficacement les créneaux de déploiement: Au lieu de maintenir des environnements distincts pour le staging, utilisez les slots de déploiement dans un seul App Service de production. Cette approche vous permet de changer d'environnement sans dupliquer les coûts.
# Create a staging slot
az webapp deployment slot create --name MyWebApp --resource-group MyResourceGroup --slot staging

# Swap staging to production
az webapp deployment slot swap --name MyWebApp --resource-group MyResourceGroup --slot staging --target-slot production

Optimisation des coûts en fonction des données

Pour les applications de données, envisagez ces approches spécialisées de réduction des coûts :

  1. Déchargez le traitement lourd: Au lieu d'effectuer un traitement intensif des données dans votre App Service, envisagez d'utiliser des services dédiés comme Azure Functions (pour un traitement sans serveur) ou Azure Data Factory (pour les flux de travail ETL).
  2. Mise en place de la mise en cache: Pour les données qui ne changent pas fréquemment, mettez en place une mise en cache afin de réduire les appels à la base de données et les calculs. Azure Cache for Redis s'intègre bien à App Service.
  3. Optimisez les coûts de la base de données: Souvent, la base de données connectée à votre service applicatif coûte plus cher que le service applicatif lui-même. Considérez :
    • Utilisation de pools élastiques pour les bases de données SQL
    • Mise en œuvre d'une indexation appropriée
    • Utilisation d'un stockage hiérarchisé pour les données les moins fréquemment consultées
  4. Compresser les réponses: Pour les applications qui transmettent de grands ensembles de données aux utilisateurs, activez la compression afin de réduire les coûts de transfert des données sortantes :
# Example for Flask applications
from flask import Flask
from flask_compress import Compress

app = Flask(__name__)
Compress(app)

Techniques avancées pour les applications de données

Au-delà de l'optimisation des coûts, il existe plusieurs techniques avancées pour améliorer les performances et les capacités de vos applications de données sur Azure App Service.

Conteneurisation des applications de données

Les conteneurs assurent la cohérence entre les environnements et peuvent simplifier la gestion des dépendances - un défi courant dans les applications de données aux exigences complexes :

  1. Dans le portail Azure, créez une nouvelle application Web.
  2. Sélectionnez "Docker Container" au lieu de "Code" pour l'option de publication.
  3. Choisissez Single Container et indiquez votre image Docker.

Pour les applications de science des données, envisagez de maintenir une image de conteneur de base avec des bibliothèques couramment utilisées telles que NumPy, pandas et scikit-learn pour accélérer les déploiements.

Mise en œuvre de CI/CD pour les flux de données

Au-delà de l'IC/CD de base, envisagez de mettre en œuvre des tests automatisés spécifiquement pour les applications de données :

  1. Tests de validation des données: Vérifier que le traitement des données produit les résultats escomptés
  2. Tests de performance des modèles: S'assurer que les modèles de ML respectent les seuils de précision et de performance
  3. Test de charge: Validez que l'application gère les volumes de données prévus

Exemple de workflow d'actions GitHub pour une application de données :

name: Data App CI/CD

on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.8'
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
        pip install pytest pytest-cov
    - name: Test with pytest
      run: |
        pytest tests/data_validation_tests.py
        pytest tests/model_performance_tests.py

  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Deploy to Azure
      uses: azure/webapps-deploy@v2
      with:
        app-name: 'my-data-app'
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

Utilisation de WebJobs pour le traitement en arrière-plan

Pour les applications de données qui nécessitent un traitement en arrière-plan, Azure WebJobs permet d'exécuter des scripts ou des programmes dans le même contexte que votre service applicatif :

  1. Dans votre App Service, allez sur "WebJobs" dans la barre latérale gauche.
  2. Cliquez sur "Ajouter"
  3. Téléchargez votre fichier de script (par exemple, un script Python pour le traitement des données).
  4. Choisissez le type de déclenchement (manuel, programmé ou continu).
  5. Cliquez sur "OK"

WebJobs est particulièrement utile pour :

  • Nettoyage programmé des données
  • Génération de rapports réguliers
  • Recyclage périodique du modèle
  • Synchronisation des données entre les systèmes

Connectivité hybride pour les données sur site

De nombreuses organisations ont des données qui restent sur place. Azure App Service peut se connecter à ces données en utilisant :

  1. Intégration VNet: Connectez votre service d'application à un réseau virtuel qui dispose d'une connectivité avec votre réseau sur site via ExpressRoute ou VPN.
  2. Connexions hybrides: Une alternative plus simple qui ne nécessite pas de VPN, permettant à votre service applicatif d'atteindre des serveurs spécifiques sur site par nom d'hôte et port.

Pour configurer les connexions hybrides :

  1. Dans votre App Service, sélectionnez "Networking" dans la barre latérale gauche.
  2. Aller à "Connexions hybrides"
  3. Cliquez sur "Ajouter une connexion hybride"
  4. Créez une nouvelle connexion ou utilisez une connexion existante
  5. Spécifiez le nom d'hôte et le port du point d'extrémité
  6. Installez le gestionnaire de connexion hybride sur votre serveur sur site.

Mise en œuvre d'indicateurs de fonctionnalité pour les applications de données

Les indicateurs de fonctionnalités vous permettent d'activer certaines fonctionnalités de manière sélective, ce qui est très utile pour les tests A/B des fonctionnalités de données ou pour le déploiement progressif de nouveaux modèles :

{
  "FeatureFlags": {
    "NewRecommendationModel": false,
    "AdvancedDataFiltering": true
  }
}

Lisez ces drapeaux dans votre code :

import os
import json

feature_flags = json.loads(os.environ.get('FeatureFlags', '{}'))
use_new_model = feature_flags.get('NewRecommendationModel', False)

if use_new_model:
    # Use new recommendation model
else:
    # Use existing model

Cette approche vous permet de tester de nouvelles fonctionnalités avec un sous-ensemble d'utilisateurs ou de désactiver rapidement des fonctionnalités problématiques sans redéploiement.

> Pour en savoir plus sur l'automatisation du déploiement des modèles de ML, consultez ce cours sur le CI/CD pour l'apprentissage automatique. ce cours sur le CI/CD pour l'apprentissage automatique.

Conclusion

Tout au long de ce tutoriel, nous avons exploré comment mettre en place, déployer, configurer, mettre à l'échelle et optimiser Azure App Service pour les applications de données. De la création de votre premier App Service à la mise en œuvre de fonctionnalités avancées telles que l'auto-scaling et la connectivité hybride, vous disposez désormais des connaissances nécessaires pour tirer parti de la plateforme Azure pour vos charges de travail de données.

Principaux enseignements

  1. Azure App Service fournit une plateforme entièrement gérée qui permet aux spécialistes des données de se concentrer sur la logique de l'application plutôt que sur la gestion de l'infrastructure.
  2. Plusieurs options de déploiement permettent une intégration transparente à votre flux de développement existant, que vous utilisiez GitHub, Azure DevOps ou des référentiels Git locaux.
  3. Capacités de mise à l'échelle garantissent que votre application peut gérer des charges de travail variables, depuis les tests de développement jusqu'aux pics de trafic en production.
  4. Les outils de surveillance et de diagnostic intégrés aident à maintenir la fiabilité et la performance, avec des mesures spécialisées pour les applications de données.
  5. Les stratégies d'optimisation des coûts vous permettent de maximiser la valeur tout en minimisant les dépenses, ce qui est particulièrement important pour les charges de travail de données à forte intensité de ressources.

Prochaines étapes

Pour poursuivre votre voyage dans Azure App Service, pensez à explorer :

  1. Intégration avec Azure ML: Déployez des modèles formés dans Azure Machine Learning vers votre App Service pour l'inférence.
  2. Azure Functions: Pour un calcul sans serveur, piloté par les événements, qui complète vos applications App Service.
  3. Azure API Management: Pour sécuriser et gérer les API qui exposent vos services de données.
  4. Azure Logic Apps: Pour l'automatisation des flux de travail entre votre App Service et d'autres sources de données.
  5. Le cursus Microsoft Azure Fundamentals estégalement une excellente ressource si vous préparez une certification ou si vous souhaitez un apprentissage structuré.

N'oubliez pas que le paysage du cloud évolue rapidement, alors gardezun œil sur la page des mises à jour d'Azure pour découvrir les nouvelles fonctionnalités et les nouveaux services qui pourraient améliorer vos applications de données !

Obtenez la certification Azure AZ-900

Préparez-vous à l'examen PL-300 d'Azure et bénéficiez d'une remise de 50% sur le prix de l'examen.

Kofi Glover's photo
Author
Kofi Glover
LinkedIn
Vous êtes un passionné de l'IA agentique et souhaitez exploiter la puissance de l'IA pour générer de la valeur commerciale et façonner l'avenir du travail. Leader d'opinion et adopteur précoce de techniques et de technologies révolutionnaires telles que les systèmes multi-agents, l'IA générative, l'apprentissage par renforcement profond, les systèmes d'IA multimodaux, l'ingénierie des flux et l'ingénierie prompte.

Vaste expérience technique comprenant l'apprentissage automatique, la science des données, la modélisation quantitative, l'ingénierie logicielle, DevOps et le cloud computing.
Sujets

Apprenez-en plus sur Azure avec ces cours !

Cours

Comprendre Microsoft Azure

3 h
39.9K
Découvrez la puissance de Microsoft Azure et des logiciels de cloud computing pour vous aider à améliorer vos compétences en ingénierie des données.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow