Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette architecture de base repose sur l’architecture de base de l’application web et fournit des instructions détaillées pour concevoir une application web sécurisée, redondante interzone et hautement disponible sur Azure. Dans cette architecture, Azure Application Gateway avec le pare-feu d’applications web Azure expose un point de terminaison public et route les demandes vers Azure App Service via Azure Private Link. L’application App Service utilise l’intégration de réseau virtuel et Private Link pour communiquer en toute sécurité avec des solutions PaaS (platform as a service) Azure comme Azure Key Vault et Azure SQL Database.
Important
Un exemple d’implémentation illustre cette implémentation App Service de référence sur Azure. Utilisez-la comme base pour votre solution de production.
Architecture
Téléchargez un fichier Visio de cette architecture.
Composants
Cette architecture partage de nombreux composants avec l’architecture de base de l’application web. La liste suivante décrit uniquement les composants qui diffèrent ou étendent l’architecture de base :
Application Gateway est un équilibreur de charge HTTP et HTTPS de couche 7 et un gestionnaire de trafic web. Dans cette architecture, Application Gateway agit comme un point d’entrée public unique. Application Gateway met fin au protocole TLS (Transport Layer Security) et évalue les règles de pare-feu d’applications web Azure. Il transfère ensuite les demandes approuvées en privé aux instances App Service entre les zones de disponibilité.
Le pare-feu d’applications web Azure est un service natif cloud qui protège les applications web contre les attaques courantes, telles que l’injection SQL et le script intersites (XSS). Dans cette architecture, le pare-feu d’applications web Azure s’exécute sur Application Gateway et bloque les requêtes malveillantes avant d’atteindre App Service. Cette configuration améliore la sécurité et permet de maintenir la disponibilité.
Key Vault est un service qui stocke et gère en toute sécurité les secrets, les clés de chiffrement et les certificats. Dans cette architecture, elle stocke le certificat TLS (X.509) que Application Gateway utilise et contient les secrets d’application auxquels App Service accède en privé.
Le réseau virtuel Azure est un service qui fournit des réseaux virtuels privés isolés et sécurisés dans Azure. Dans cette architecture, le réseau virtuel fournit des points de terminaison privés, l’intégration d’App Service et des sous-réseaux dédiés pour Application Gateway. Cette configuration isole le trafic et permet à App Service de communiquer en toute sécurité avec les services Azure dépendants via des points de terminaison privés.
Private Link est un service de mise en réseau qui fournit un accès privé aux services Azure via le réseau principal Microsoft afin d’éliminer l’exposition à l’Internet public. Dans cette architecture, Private Link permet des connexions entrantes privées vers App Service et des connexions sortantes privées d’App Service vers des services tels que Key Vault, SQL Database et Stockage Azure.
Azure DNS est un service d’hébergement pour les domaines DNS (Domain Name System). Il fournit la résolution de noms à l’aide de l’infrastructure Microsoft Azure. Les zones DNS privées mappent le nom de domaine complet (FQDN) d’un service à l’adresse IP d’un point de terminaison privé. Dans cette architecture, les zones DNS privées mappent le domaine par défaut App Service et d’autres domaines de service PaaS à leurs adresses de point de terminaison privé afin que tout le trafic reste sur le réseau privé.
Mise en réseau
La sécurité réseau est essentielle à l’architecture de référence App Service. À un niveau élevé, l’architecture réseau fournit les fonctionnalités suivantes :
Point d’entrée sécurisé unique pour le trafic client
Filtrage du trafic via le pare-feu d’applications web Azure
Chiffrement TLS de bout en bout pour les données en transit
Exfiltration de données réduite via Private Link, qui conserve le trafic dans Azure
Regroupement logique et isolation des ressources réseau par le biais de la segmentation du réseau
Flux réseau
Flux entrant
Les étapes suivantes décrivent le flux entrant depuis Internet vers l’instance App Service :
L’utilisateur émet une demande à l’adresse IP publique d’Application Gateway.
Application Gateway évalue les règles de pare-feu d’applications web, qui protègent contre les attaques telles que l’injection XSS et SQL. Si une règle détecte une violation, Application Gateway renvoie une erreur au demandeur et arrête le traitement. Sinon, Application Gateway achemine la requête vers le pool principal, ce qui, dans ce cas, est le domaine par défaut App Service.
La zone
privatelink.azurewebsites.netDNS privée est liée au réseau virtuel. La zone DNS contient un enregistrement A qui mappe le domaine par défaut App Service à l’adresse IP privée du point de terminaison privé App Service. Azure DNS utilise cet enregistrement pour résoudre le domaine par défaut à l'adresse IP du point de terminaison privé.Application Gateway achemine la requête vers une instance App Service via le point de terminaison privé.
Flux sortant
Les étapes suivantes décrivent le flux sortant d’App Service vers les services PaaS Azure :
App Service envoie une requête au nom DNS du service Azure requis, comme Key Vault, Storage, SQL Database ou tout autre service Azure prenant en charge Private Link. La fonctionnalité d’intégration de réseau virtuel App Service route la requête via le réseau virtuel.
Comme à l’étape 3 dans le flux entrant, la zone DNS privée liée contient un enregistrement A qui mappe le domaine du service Azure à son adresse IP de point de terminaison privé. Azure DNS utilise cet enregistrement pour attribuer le domaine à l'adresse IP du point de terminaison privé du service.
Le réseau virtuel achemine la requête vers le service via le point de terminaison privé.
Le trafic sortant qui ne passe pas aux services PaaS Azure quitte une adresse IP publique que plusieurs clients partagent. Par exemple, une application web peut appeler une API publique pendant une requête HTTP. Pour contrôler ce type de trafic de sortie, routez-le via un appareil réseau comme le Pare-feu Azure. Pour plus d’informations, consultez Contrôler le trafic sortant à l’aide du Pare-feu Azure.
Implémentation d’Application Gateway
Application Gateway est un équilibreur de charge de couche 7 scalable et régional qui prend en charge le pare-feu d’applications web Azure et le déchargement TLS. Lorsque vous implémentez Application Gateway pour le trafic entrant vers App Service, tenez compte des points suivants :
Déployez Application Gateway et configurez une stratégie de pare-feu d’applications web Azure qui utilise un ensemble de règles géré par Microsoft. Utilisez le mode prévention pour bloquer les attaques web avant d’atteindre un service d’origine comme App Service.
Implémentez le chiffrement TSL de bout en bout.
Utilisez des points de terminaison privés pour implémenter l’accès privé entrant à App Service.
Implémentez la mise à l’échelle automatique afin que Application Gateway ajuste la capacité en fonction de la demande de trafic.
Envisagez d’utiliser au moins trois instances et de déployer dans toutes les zones de disponibilité prises en charge par votre région. Application Gateway est hautement disponible, mais la création d’une instance après une défaillance peut prendre jusqu’à sept minutes, même pour une seule instance de mise à l’échelle. Déployez plusieurs instances dans plusieurs zones de disponibilité pour vous assurer qu’une instance reste disponible pendant le démarrage d’une nouvelle instance.
Bloquez l’accès au réseau public sur App Service pour garantir l’isolation du réseau. Dans Bicep, définissez
publicNetworkAccessàDisableddansproperties.
Passer d’App Service aux services Azure
Cette architecture utilise l’intégration de réseau virtuel pour router le trafic App Service vers des points de terminaison privés via le réseau virtuel. L'architecture de base ne permet pas l'acheminement de tout le trafic, ce qui forcerait tout le trafic sortant à passer par le réseau virtuel. Au lieu de cela, il route uniquement le trafic interne lié aux points de terminaison privés.
Pour les services Azure qui ne nécessitent pas d’accès à Internet public, autorisez les points de terminaison privés et bloquez les points de terminaison publics. Les points de terminaison privés améliorent la sécurité en permettant à App Service de se connecter aux services Private Link directement à partir du réseau virtuel privé sans adressage IP public.
Dans cette architecture, SQL Database, Storage et Key Vault ont tous des points de terminaison publics bloqués. Leurs pare-feu de service autorisent le trafic uniquement à partir d’autres services Azure autorisés. Configurez d’autres services Azure, comme Azure Cosmos DB et Azure Managed Redis, avec des points de terminaison privés. Dans cette architecture, Azure Monitor n’utilise pas de point de terminaison privé, mais vous pouvez en implémenter un à l’aide d’une étendue AMPLS (Azure Monitor Private Link Scope).
L’architecture de base implémente une zone DNS privée pour chaque service. Chaque zone DNS privée contient un enregistrement A qui mappe le nom de domaine complet du service à l’adresse IP du point de terminaison privé. Les zones sont liées au réseau virtuel. Les groupes de zones DNS privés créent et mettent automatiquement à jour les enregistrements DNS pour les points de terminaison privés.
Tenez compte des points suivants lorsque vous implémentez l’intégration de réseau virtuel et les points de terminaison privés :
Nommez des zones DNS privées en fonction des instructions de configuration de la zone DNS des services Azure.
Configurez les pare-feu de service pour autoriser uniquement les connexions privées aux comptes de stockage, aux coffres de clés, aux bases de données SQL et à d’autres composants Azure.
Définissez la règle d’accès réseau par défaut du compte de stockage pour refuser tout le trafic qui provient du réseau virtuel.
Segmentation et sécurité du réseau virtuel
Le réseau de cette architecture comporte des sous-réseaux distincts pour Application Gateway, des composants d’intégration App Service et des points de terminaison privés. Un groupe de sécurité réseau (NSG) sur chaque sous-réseau autorise uniquement le trafic entrant et sortant requis. Le tableau suivant décrit une sélection de règles de groupe de sécurité réseau que vous pouvez ajouter à chaque sous-réseau.
| Sous-réseau | Trafic entrant | Règle de trafic sortant |
|---|---|---|
GatewaySubnet |
AppGw.In.Allow.ControlPlane: autoriser l’accès au plan de contrôle entrant. AppGw.In.Allow443.Internet : Autoriser l'accès HTTPS entrant à Internet. |
AppGw.Out.Allow.PrivateEndpoints: Autoriser l’accès sortant à PrivateEndpointsSubnet. AppPlan.Out.Allow.AzureMonitor: Autoriser l’accès sortant à Azure Monitor. |
PrivateEndpointsSubnet |
Règles par défaut : autoriser l’accès entrant à partir du réseau virtuel. | Règles par défaut : autoriser l’accès sortant au réseau virtuel. |
AppServiceSubnet |
Règles par défaut : autoriser l’accès entrant à partir du réseau virtuel. |
AppPlan.Out.Allow.PrivateEndpoints: Autoriser l’accès sortant à PrivateEndpointsSubnet. AppPlan.Out.Allow.AzureMonitor: Autoriser l’accès sortant à Azure Monitor. |
Tenez compte des points suivants lorsque vous implémentez la segmentation et la sécurité du réseau virtuel :
Activez la protection DDoS pour le réseau virtuel qui contient un sous-réseau de passerelle d’application avec une adresse IP publique.
Ajoutez un groupe de sécurité réseau à chaque sous-réseau le cas échéant. Utilisez les règles les plus strictes qui autorisent la fonctionnalité complète de la solution.
Utilisez des groupes de sécurité d’application pour regrouper les ressources logiquement, ce qui simplifie la création de règles de groupe de sécurité réseau dans des environnements complexes.
Le tableau suivant présente un exemple de schéma réseau.
| Catégorie | Nom | Plage d’adresses |
|---|---|---|
| Réseau virtuel | Préfixe de l’adresse | 10.0.0.0/16 |
| Sous-réseau | GatewaySubnet | 10.0.1.0/24 |
| Sous-réseau | AppServiceSubnet | 10.0.0.0/24 |
| Sous-réseau | PrivateEndpointsSubnet | 10.0.2.0/27 |
| Sous-réseau | AgentsSubnet | 10.0.2.32/27 |
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Well-Architected Framework.
Reliability
La fiabilité permet de garantir que votre application peut respecter les engagements que vous avez pris envers vos clients. Pour plus d’informations, consultez liste de vérification de la révision de conception pour lede fiabilité.
L’architecture App Service de base se concentre sur la redondance zonale pour les services régionaux clés. Les zones de disponibilité sont des emplacements physiquement distincts au sein d’une région qui fournissent une haute disponibilité et une tolérance de panne. Lorsque vous déployez deux instances sur plusieurs zones de disponibilité dans des régions prises en charge, l’échec d’une zone n’affecte pas les autres. Cette approche permet de maintenir la disponibilité du service.
L’architecture garantit également des instances suffisantes des services Azure pour répondre à la demande. Les sections suivantes fournissent des conseils de fiabilité pour chaque service clé dans l’architecture.
Application Gateway
Déployez Application Gateway dans une configuration redondante interzone avec un nombre minimal d’instances d’échelle de trois ou plus. Plusieurs instances garantissent que le service reste disponible pendant les défaillances sans attendre la durée de démarrage de six minutes à sept minutes nécessaire pour configurer une nouvelle instance.
Service d'application
Déployez au moins deux instances App Service qui prennent en charge les zones de disponibilité. Pour une résilience plus élevée, déployez au moins une instance pour chaque zone de disponibilité de votre région, ainsi que des instances supplémentaires dans chaque zone pour la redondance.
Implémentez des points de terminaison de contrôle d’intégrité dans vos applications et configurez la fonctionnalité de contrôle d’intégrité App Service pour rediriger les demandes à partir d’instances non saines. Pour plus d’informations, consultez Surveiller les instances App Service à l’aide des contrôles d’intégrité et vérifications d’intégrité dans ASP.NET Core.
Capacité de surprovisionnement pour gérer les défaillances de zone.
Stockage Blob
Utilisez le stockage redondant interzone (ZRS), qui réplique les données de manière synchrone sur trois zones de disponibilité de la région. Créez des comptes de stockage standard ZRS ou de stockage géoredondant interzone standard (GZRS) pour garantir la réplication des données entre les zones de disponibilité.
Créez des comptes de stockage distincts pour les déploiements, les ressources web et d’autres données pour gérer et configurer chaque compte indépendamment.
SQL Database
Déployez SQL Database dans le niveau Usage général, Premium ou Critique pour l’entreprise avec une redondance de zone activée. Ces niveaux prennent en charge la redondance de zone.
Configurez les sauvegardes SQL Database pour utiliser ZRS ou GZRS.
Sécurité
La sécurité offre des garanties contre les attaques délibérées et l’utilisation abusive de vos données et systèmes précieux. Pour plus d’informations, consultez liste de vérification de la révision de conception pour security.
L’architecture App Service de base se concentre sur les recommandations de sécurité essentielles pour votre application web. Vous devez comprendre comment le chiffrement et l’identité fonctionnent à chaque couche pour sécuriser votre charge de travail.
Service d'application
Désactivez les méthodes d’authentification locales pour les déploiements de sites FTP (File Transfer Protocol) et SCM (Source Control Management).
Désactivez le débogage à distance.
Utilisez la dernière version tls prise en charge par tous vos clients.
Activez le plan Microsoft Defender pour App Service.
Utilisez les dernières versions des plateformes, langages de programmation, protocoles et infrastructures pris en charge.
Envisagez App Service Environment si vous avez besoin d’une isolation plus élevée ou d’un accès réseau sécurisé.
Chiffrement
Les applications web de production doivent chiffrer les données en transit à l’aide du protocole HTTPS. HTTPS s’appuie sur TLS et utilise des clés publiques et privées pour le chiffrement. Stockez le certificat TLS (X.509) dans Key Vault et accordez l’autorisation Application Gateway pour récupérer la clé privée. Pour les données au repos, certains services chiffrent automatiquement les données, et d’autres vous permettent de personnaliser les paramètres.
Données en transit
L’architecture de base chiffre les données en transit de l’utilisateur vers l’application web dans App Service.
Le flux de travail suivant décrit le fonctionnement du chiffrement à un niveau élevé :
L’utilisateur envoie une requête HTTPS à l’application web.
La requête HTTPS atteint la passerelle d’application.
La passerelle d’application utilise un certificat (X.509) dans Key Vault pour créer une connexion TLS sécurisée avec le navigateur web de l’utilisateur. La passerelle d’application déchiffre la requête HTTPS afin que le pare-feu d’applications web puisse l’inspecter.
La passerelle d’application crée une connexion TLS à App Service pour chiffrer à nouveau la demande de l’utilisateur. App Service fournit une prise en charge native du protocole HTTPS. Vous n’avez donc pas besoin d’ajouter un certificat à App Service. La passerelle d’application envoie le trafic chiffré à App Service. App Service déchiffre le trafic et l’application web traite la requête.
Tenez compte des recommandations suivantes lorsque vous configurez le chiffrement de données en transit :
Pour charger votre certificat dans Key Vault. Le chiffrement HTTPS nécessite un certificat (X.509). Vous avez besoin d’un certificat d’une autorité de certification approuvée pour votre domaine personnalisé.
Stockez la clé privée du certificat dans Key Vault.
Fournissez l’accès Application Gateway à la clé privée de certificat. Pour plus d’informations, consultez Accorder une autorisation à l’aide du contrôle d’accès en fonction du rôle Azure (Azure RBAC) et des identités managées pour les ressources Azure. N’utilisez pas de stratégies d’accès Key Vault pour fournir l’accès. Les stratégies d’accès vous permettent d’accorder uniquement des autorisations étendues, et non des valeurs spécifiques.
Activez le chiffrement de bout en bout. App Service est le pool principal pour la passerelle d’application. Lorsque vous configurez le paramètre back-end pour le pool principal, utilisez le protocole HTTPS sur le port principal 443.
Données au repos
Utilisez le chiffrement transparent des données pour chiffrer les données sensibles dans SQL Database. Le chiffrement transparent des données chiffre l’intégralité de la base de données, des sauvegardes et des fichiers journaux des transactions et ne nécessite pas de modifications apportées à votre application web.
Placez des données sensibles dans sa propre base de données et activez le chiffrement uniquement pour cette base de données. Cette approche réduit la latence de chiffrement de base de données.
Comprendre la prise en charge du chiffrement intégré. Stockage Azure chiffre automatiquement les données au repos par le biais du chiffrement côté serveur (AES (Advanced Encryption Standard) 256 bits). Azure Monitor chiffre automatiquement les données au repos via des clés gérées par Microsoft.
Gouvernance
Azure Policy permet d’appliquer des décisions architecturales et de sécurité pour les applications web. Il peut empêcher le déploiement de ressources non conformes (mode refus) ou les marquer pour révision (mode audit). Cette approche permet de détecter la dérive de configuration de votre architecture prévue, que la dérive se produise via des déploiements d’infrastructure en tant que déploiements de code (IaC) ou des modifications manuelles dans le portail Azure.
Placez toutes les ressources dans votre architecture sous gouvernance Azure Policy. Utilisez des stratégies intégrées ou des initiatives de stratégie lorsque c'est possible pour imposer la topologie réseau essentielle, les fonctionnalités de service, la sécurité et les mesures de surveillance. Tenez compte des stratégies intégrées suivantes :
- App Service doit désactiver l’accès réseau public.
- App Service doit utiliser l’intégration de réseau virtuel.
- App Service doit utiliser Private Link pour se connecter aux services PaaS.
- App Service doit avoir des méthodes d’authentification locales désactivées pour les déploiements de site FTP et SCM.
- App Service doit avoir désactivé le débogage à distance.
- Les applications App Service doivent utiliser la dernière version tls.
- Defender pour App Service doit être activé.
- Le pare-feu d’applications web Azure doit être activé pour Application Gateway.
Consultez des stratégies intégrées pour les services clés tels que les composants Application Gateway et réseau, App Service, Key Vault et les composants de supervision. Vous pouvez créer des stratégies personnalisées ou utiliser des stratégies de communauté, telles que des stratégies à partir de zones d’atterrissage Azure, si les stratégies intégrées ne répondent pas à vos besoins. Préférez les stratégies intégrées lorsque cela est possible.
Gestion de l’identité et de l’accès
L’architecture de référence App Service configure l’authentification et l’autorisation pour les identités utilisateur (utilisateurs) et les identités de charge de travail (ressources Azure). Il implémente le principe du privilège minimum.
Identités utilisateur
Utilisez le mécanisme d’authentification intégré pour App Service, également appelé EasyAuth. EasyAuth simplifie l’intégration du fournisseur d’identité à votre application web. Il gère l’authentification en dehors de votre application web, de sorte que vous n’avez pas à apporter de modifications significatives au code.
Configurez l’URL de réponse pour le domaine personnalisé. Définissez l’URL de redirection sur
https://<application-gateway-endpoint>/.auth/login/<provider>/callback.Remplacez
<application-gateway-endpoint>par l’adresse IP publique ou le nom de domaine personnalisé de votre passerelle d’application. Remplacez<provider>par votre fournisseur d’authentification, par exempleaadpour Microsoft Entra ID.Pour obtenir des instructions de configuration, consultez les considérations relatives à Azure Front Door ou configurer Application Gateway.
Identités de charge de travail
Utilisez des identités managées pour les identités de charge de travail. Les identités managées éliminent la nécessité pour les développeurs de gérer les informations d’identification d’authentification.
Utilisez des identités managées affectées par l’utilisateur. Les identités attribuées par le système peuvent entraîner l’échec des déploiements IaC en raison des situations de compétition et de l’ordre des opérations. Les identités managées affectées par l’utilisateur évitent certains de ces scénarios d’erreur de déploiement. Pour plus d’informations, voir Identités managées.
Excellence opérationnelle
L’excellence opérationnelle couvre les processus d’exploitation qui déploient une application et la conservent en production. Pour plus d’informations, consultez liste de vérification de la révision de conception pour l’excellence opérationnelle.
Le déploiement de l’application App Service de base suit les instructions d’architecture Azure Pipelines. Étant donné que l’architecture de base refuse l’accès public à App Service et sécurise le compte de stockage de déploiement au sein du réseau virtuel, vous ne pouvez pas déployer à partir de l’extérieur du réseau virtuel. Pour résoudre cette contrainte, l’architecture utilise des agents de déploiement auto-hébergés qui s’exécutent dans le réseau virtuel. Les conseils de déploiement suivants se concentrent sur le déploiement de code d’application, et non sur les modifications apportées à l’infrastructure ou à la base de données.
Flux de déploiement
Le pipeline de déploiement publie une requête de travail dans la file d’attente des agents auto-hébergés. Le travail indique à l’agent de télécharger l'artefact de build du fichier zip de publication sur un compte de stockage.
Un agent de déploiement auto-hébergé interroge la file d’attente, récupère la demande de travail et télécharge le travail et l’artefact de génération.
L'agent de déploiement auto-hébergé charge le fichier zip sur le compte de stockage via le point de terminaison privé du compte de stockage.
Le pipeline continue et un agent managé récupère un travail suivant. L'agent managé effectue un appel d'interface de ligne de commande (CLI) pour mettre à jour le paramètre d'application WEBSITE_RUN_FROM_PACKAGE afin de référencer le nouveau fichier zip de publication correspondant à l'emplacement de préproduction.
az webapp config appsettings set -g MyResourceGroupName -n MyUniqueApp --slot staging --settings WEBSITE_RUN_FROM_PACKAGE=UriToNewZipApp Service récupère le nouveau fichier zip de publication à partir du stockage via le point de terminaison privé du compte de stockage. Elle redémarre l'instance intermédiaire avec le nouveau package, car
WEBSITE_RUN_FROM_PACKAGEa été configurée avec un autre nom de fichier.Le pipeline reprend et exécute des tests de fumée ou attend une approbation manuelle. Une fois les tests ou l’approbation réussis, le pipeline échange les slots de préproduction et de production.
Conseils pour le déploiement
Appliquez les instructions de déploiement suivantes pour l’architecture de base :
Exécutez votre déploiement directement à partir d’un package dans App Service pour éviter les conflits de déploiement. Cette approche monte le package ZIP directement en tant que répertoire wwwroot en lecture seule au lieu de copier des fichiers. Il élimine les conflits de verrouillage de fichiers entre le déploiement et l’exécution et garantit que seules les applications entièrement déployées s’exécutent.
Incluez les numéros de version dans les noms de fichiers zip du package déployé. Lorsque vous mettez à jour le
WEBSITE_RUN_FROM_PACKAGEparamètre d’application pour référencer le package de déploiement dont le nom de fichier est différent, App Service extrait automatiquement le nouveau package et redémarre.Utilisez des emplacements de déploiement pour des implémentations de code résilientes.
Envisagez d’utiliser des agents gérés et auto-hébergés.
Utilisez des agents auto-hébergés pour charger des fichiers zip de package sur le compte de stockage sur le point de terminaison privé. Les agents initient la communication avec le pipeline via le sondage, donc vous n’avez pas besoin d’ouvrir le réseau pour les appels entrants.
Utilisez des agents managés pour d’autres travaux de pipeline.
Utilisez IaC pour automatiser les déploiements d’infrastructure.
Validez les performances et la résilience de la charge de travail en continu à l’aide de services tels qu’Azure Load Testing et Azure Chaos Studio.
Paramétrage
Les applications nécessitent à la fois des valeurs de configuration et des secrets. Utilisez les instructions suivantes pour la gestion des secrets et de la configuration :
Ne stockez jamais de secrets tels que les mots de passe ou les clés d’accès dans le contrôle de code source. Stockez les secrets dans Key Vault.
Stocker la configuration de l’application dans la configuration d’App Service. Si vous avez besoin de la prise en charge de la configuration externe ou de l’indicateur de fonctionnalité, utilisez Azure App Configuration.
Utilisez des références Key Vault dans la configuration App Service pour exposer en toute sécurité des secrets dans votre application.
Configurez les paramètres d'application spécifiques au slot si vos slots de production et de préproduction nécessitent des valeurs différentes. Par défaut, lors du déploiement, les paramètres de l'application sont échangés avec ceux du slot.
Utilisez des variables d’environnement locales ou des fonctionnalités spécifiques à la plateforme pour le développement local. La configuration d’App Service expose les paramètres d’application en tant que variables d’environnement. Les outils de développement tels que Visual Studio vous permettent de définir des variables d’environnement dans les profils de lancement et de fournir un stockage sécurisé pour les paramètres locaux via les secrets utilisateur.
Surveillance
La surveillance collecte et analyse les données des systèmes informatiques pour fournir une observabilité. Dans cette architecture, la surveillance effectue le suivi de l’intégrité et de la sécurité des applications web sur plusieurs couches, ce qui permet de maintenir des opérations fiables.
Surveillez trois couches clés :
Code d’application : Suivez les données de télémétrie spécifiques à l’application et les métriques personnalisées.
Infrastructure (runtime) : Surveillez l’environnement d’exécution App Service.
Plateforme (ressources Azure) : Collectez des métriques et des journaux provenant de services Azure comme Application Gateway, SQL Database et Key Vault.
Pour plus d’informations, consultez le journal d’activité Azure, les journaux des ressources Azure et la journalisation des applications App Service.
Surveiller la plateforme
La supervision de la plateforme recueille des données des services Azure présents dans votre architecture.
Ajoutez un paramètre de diagnostic pour chaque ressource Azure. Chaque service Azure possède ses propres journaux et métriques que vous pouvez capturer. Utilisez le tableau suivant pour déterminer les métriques et journaux à collecter.
Ressource Azure Descriptions des métriques et des journaux Application Gateway Application Gateway descriptions des métriques et des journaux Pare-feu d’applications web Azure Descriptions des métriques et des journaux d’activité du pare-feu d'applications Web Azure Service d'application Descriptions des métriques et des journaux App Service SQL Database Description des métriques et des journaux SQL Database Base de données Azure Cosmos DB Descriptions des métriques et des journaux Azure Cosmos DB Coffre-fort de clés Descriptions des métriques et des journaux Key Vault Stockage Blob Descriptions des métriques et des journaux du stockage Blob Application Insights Descriptions des métriques et des journaux Application Insights Adresse IP publique Descriptions des journaux et des métriques d’adresses IP publiques Équilibrer les besoins d’observabilité avec les coûts. Plus vous collectez de données, plus le coût est élevé. Pour plus d’informations, consultez Calculs et options des coûts Log Analytics etTarification de l’espace de travail Log Analytics.
Créez des alertes pour toutes les ressources Azure dans l’architecture. Configurez des actions automatisées pour corriger les problèmes lorsque des alertes se déclenchent. Commencez par les règles d’alerte recommandées courantes, puis affinez-les au fil du temps. Pour plus d’informations, consultez les ressources suivantes :
Application Gateway
Application Gateway surveille l’intégrité du pool principal par le biais de sondes d’intégrité par défaut. Utilisez les journaux d’accès Application Gateway pour collecter des informations telles que les horodatages, les codes de réponse HTTP et les chemins d’URL. Pour plus d’informations, consultez les journaux d’intégrité et de diagnostic principaux.
Service d'application
App Service fournit des fonctionnalités de supervision intégrées et unifiées pour améliorer l’observabilité. Si votre application web dispose déjà de fonctionnalités de télémétrie et de surveillance, telles que l’instrumentation in-process, ces fonctionnalités continuent de fonctionner sur App Service.
Activez l’instrumentation automatique pour étendre l’instrumentation sans modification du code. Cette fonctionnalité fournit une visibilité de l’analyse des performances des applications (APM). Pour plus d’informations, consultez Surveiller les performances d’App Service.
Activez le suivi distribué pour suivre les demandes entre plusieurs services et dépendances. Vous pouvez surveiller les systèmes cloud distribués via le suivi distribué et un profileur de performances.
Utilisez l’instrumentation basée sur le code pour la télémétrie personnalisée. Application Insights prend également en charge l’instrumentation basée sur le code pour la télémétrie d’application personnalisée. Ajoutez le Kit de développement logiciel (SDK) Application Insights à votre code et utilisez l’API Application Insights.
Activez les journaux de service d'application pour les diagnostics au niveau de la plateforme. App Service fournit quatre types de journaux pour la résolution des problèmes : les journaux des applications, les journaux du serveur web, les messages d’erreur détaillés et le suivi des demandes ayant échoué.
Utilisez une journalisation structurée. Ajoutez une bibliothèque de journalisation structurée au code de votre application. Mettez à jour votre code pour utiliser des paires clé-valeur et activez les journaux d’application dans App Service pour les stocker dans votre espace de travail Log Analytics.
Activez la fonctionnalité de contrôle d’intégrité App Service pour maintenir la disponibilité. Les contrôles d’intégrité détectent les instances non saines, redirigent le trafic pour les éviter et les remplacent automatiquement. Cette fonctionnalité nécessite deux instances App Service ou plus.
Base de données
Activez la surveillance de la base de données pour SQL Database. Utilisez Database Watcher, qui est une solution de supervision managée pour les services de base de données dans la famille Azure SQL. Pour plus d’informations, consultez Surveiller SQL Database à l’aide d’Azure Monitor.
N’activez ni ne configurez rien pour utiliser Azure Cosmos DB Insights si votre architecture inclut Azure Cosmos DB.
Efficacité des performances
L’efficacité des performances fait référence à la capacité de votre charge de travail à mettre à l’échelle pour répondre efficacement aux demandes des utilisateurs. Pour plus d’informations, consultez liste de vérification de la révision de conception pour l’efficacité des performances.
Application Gateway
Implémentez la mise à l’échelle automatique pour Application Gateway pour effectuer un scale-in ou un scale-out afin de répondre à la demande.
Définissez le nombre maximal d’instances sur un nombre supérieur à vos besoins attendus. Vous payez uniquement les unités de capacité que vous utilisez.
Définissez un nombre minimal d’instances capables de gérer de petits pics de trafic. Vous pouvez utiliser l’utilisation moyenne de l’unité de calcul pour calculer votre nombre minimal d’instances.
Suivez les instructions relatives au dimensionnement du sous-réseau Application Gateway.
Service d'application
Utilisez des plans Standard ou supérieurs qui incluent trois instances de travail ou plus pour la haute disponibilité.
Activez la mise à l’échelle automatique pour vous assurer que vous pouvez augmenter ou diminuer la capacité afin de répondre à la demande.
Envisagez d’ouvrir un ticket de support pour augmenter le nombre maximal de Workers à deux fois le nombre d’instances si votre App Service utilise systématiquement la moitié du nombre maximal d’instances. Le nombre maximal d’instances par défaut est de 30 pour un plan Premium App Service et de 10 pour un plan Standard.
Envisagez de déployer plusieurs tampons de l’application lorsque votre App Service commence à atteindre les limites supérieures.
Choisissez le bon plan App Service qui répond aux exigences de votre charge de travail.
Ajoutez Azure Content Delivery Network à App Service pour mettre en cache et distribuer des ressources statiques telles que des images et des fichiers JavaScript à partir d’emplacements de périphérie plus proches de vos utilisateurs.
Envisagez d’utiliser App Service Environment pour éviter les problèmes de voisin bruyant.
SQL Database
La mise à l’échelle de la base de données implique de nombreuses considérations au-delà de l’étendue de cette architecture. Pour plus d’informations sur la mise à l’échelle de SQL Database, consultez les ressources suivantes :
- Mettre à l’échelle de façon dynamique les ressources de base de données moyennant un temps d’arrêt minimal
- Effectuer un scale-out à l’aide de SQL Database
- Utiliser des réplicas en lecture seule pour décharger des charges de travail de requêtes en lecture seule
Autre guide de scalabilité
Passez en revue les limites et quotas d’abonnement pour vous assurer que les services sont mis à l’échelle à la demande.
Envisagez de mettre en cache les types de données suivants pour augmenter les performances et l’extensibilité :
- Données de transaction semi-statiques
- État de session
- Sortie HTML complexe
Étapes suivantes
- Monter en puissance une application dans App Service
- Mettre à l’échelle l'Application Gateway et l'Azure Web Application Firewall