Partager via


Perspective Azure Well-Architected sur Azure Functions

Azure Functions est un service de calcul serverless qui vous permet d’exécuter du code piloté par les événements sans avoir à gérer explicitement l’infrastructure. En tant qu’offre Functions as a Service » (FaaS), Azure Functions extrait l’infrastructure sous-jacente, ce qui vous permet de vous concentrer sur votre code. Ce service s’adapte automatiquement en fonction de la demande et vous facture uniquement les ressources consommées pendant l’exécution.

Ce document suppose qu’en tant qu’architecte, vous avez examiné l’arbre de décision de calcul et choisi Azure Functions comme solution de calcul pour votre charge de travail. Les conseils fournis ici s’alignent sur les principes des piliers Azure Well-Architected Framework.

Important

Comment utiliser ce guide

Chaque section contient une liste de contrôle de conception qui met en évidence les domaines architecturaux qui concernent des stratégies de conception spécifiques liées à Azure Functions.

Les recommandations offrent des fonctionnalités technologiques pour aider à implémenter ces stratégies. Cette liste n’est pas exhaustive, mais inclut des recommandations clés pour vous aider à créer ou à optimiser vos charges de travail avec Azure Functions.

Architecture de base présentant les principales recommandations : conception de l'architecture des fonctions sans serveur

Étendue de la technologie

Cette révision se concentre sur les décisions liées aux ressources Azure suivantes :

  • Applications de fonctions

Remarque

Ce guide de service constitue un complément aux conseils présents dans le guide de service App Service (Web Apps) . Azure Functions est un service de calcul serverless. Les fonctions sont déployées sur les plans App Service, qui fournissent l’infrastructure de calcul sous-jacente pour votre charge de travail. Vous pouvez choisir parmi plusieurs plans d’hébergement. Le plan Consommation est entièrement géré et ne prend pas en charge l’accès à l’instance App Service associée, tandis que Dedicated et Premium vous donne la possibilité de configurer et de gérer l’instance App Service. Reportez-vous au guide App Service Service pour connaître les recommandations et considérations relatives au choix d’un plan d’hébergement Dédié ou Premium.

Fiabilité

Le pilier Fiabilité garantit un fonctionnement continu en renforçant la résilience et en permettant un rétablissement rapide en cas de défaillance..

Les principes de conception fiabilité fournissent des stratégies de conception de haut niveau qui s’appliquent aux composants individuels, aux flux système et au système global.

Liste de contrôle de conception

Démarrez votre stratégie de conception basée sur les principes de conception de fiabilité . Évaluez sa pertinence pour vos besoins métier tout en tenant compte des fonctionnalités et configurations spécifiques d’Azure Functions.

  • Comprendre les déclencheurs: vérifiez que vous comprenez parfaitement comment Azure Functions est déclenché. Les déclencheurs incluent des requêtes HTTP, des minuteurs, des files d’attente, etc. Choisissez des déclencheurs qui correspondent aux exigences de fiabilité de votre application.

    Par exemple, si votre fonction traite les messages à partir d’une file d’attente, assurez-vous que la file d’attente elle-même est résiliente et que les messages peuvent être traités à nouveau en cas d’échec.

  • Implémenter des tentatives et des modèles durables: utilisez des stratégies de nouvelle tentative intégrées pour les échecs temporaires. Pour les flux de travail plus complexes, envisagez d’utiliser Durable Functions, qui offrent la gestion et la coordination de l’état sur plusieurs exécutions de fonctions.

    Durable Functions est particulièrement utile pour les scénarios qui nécessitent une fiabilité sur les flux de travail de longue durée. Elles prennent en charge les reprises automatiques et la gestion durable des tâches.

  • Garantir une gestion appropriée des exceptions: implémentez une gestion robuste des exceptions pour garantir que les fonctions échouent correctement. Consignez les erreurs et envisagez d’implémenter des mécanismes d’alerte pour les défaillances critiques.

  • Planifier la scalabilité: Azure Functions effectue automatiquement un scale-out en fonction de la demande. Assurez-vous que votre application est conçue pour gérer les pics en testant ses performances sous charge.

    Envisagez d’utiliser Application Insights pour surveiller les performances et suivre la mise à l’échelle de vos fonctions en temps réel.

  • Conception pour l’idempotence : assurez-vous que vos fonctions peuvent être relancées en toute sécurité sans provoquer d’effets secondaires inattendus. L'idempotence est essentielle pour les fonctions qui interagissent avec des systèmes externes ou modifient des données.

  • Utiliser Durable Functions pour les opérations de longue durée: pour les opérations nécessitant une orchestration ou des processus de longue durée, utilisez Durable Functions pour maintenir l’état et garantir la fiabilité dans plusieurs étapes.

  • Surveiller l’intégrité de votre solution: intégrez votre solution Azure Functions à votre système global d’analyse et d’alerte de l’intégrité de la charge de travail.

Recommandations
Recommandation Avantage
Configurez les nouvelles tentatives automatiques pour les erreurs temporaires. En savoir plus sur la gestion des erreurs et les nouvelles tentatives d’Azure Functions Améliore la fiabilité en retenant automatiquement les exécutions ayant échoué, ce qui réduit la probabilité de perte de données ou d’interruption.
Utilisez Fonctions durables pour orchestrer des flux de travail complexes et des processus de longue durée. En savoir plus sur les fonctions durables. Fournit une exécution fiable des flux de travail à exécution longue, avec une gestion d’état intégrée et de nouvelles tentatives automatiques.
Implémentez la Surveillance et la journalisation centralisée à l’aide d’Application Insights. Configurer Application Insights. Améliore la surveillance et la résolution des problèmes en fournissant des informations détaillées sur les exécutions de fonctions et les dépendances.
Mise à l’échelle automatiquement en fonction du Plan d’Hébergement de fonction, du type de déclencheur et de demande. Découvrez la scalabilité. Garantit que votre application peut gérer les augmentations du trafic sans intervention manuelle, ce qui améliore la fiabilité et les performances.

Sécurité

Le pilier sécurité est centré sur la confidentialité, l’intégrité et la disponibilité de vos données et services.

Les principes de conception de la sécurité offrent une stratégie de haut niveau pour sécuriser vos fonctions Azure, notamment les meilleures pratiques pour l’authentification, l’autorisation et la protection des données.

Liste de contrôle de conception

Démarrez votre stratégie de conception avec la liste de contrôle de la révision de conception pour la sécurité et identifiez les vulnérabilités potentielles. Étendez votre stratégie en incorporant des mesures de sécurité supplémentaires si nécessaire.

  • Utiliser des identités managées: activez les identités managées pour vos applications de fonction pour accéder en toute sécurité à d’autres services Azure sans avoir à gérer les informations d’identification. En savoir plus sur les identités managées.

  • Sécuriser votre application de fonction avec l’ID Microsoft Entra: restreindre l’accès à vos fonctions en configurant Azure Functions pour exiger l’authentification microsoft Entra ID. Configurer l’authentification Microsoft Entra.

  • Appliquer des contrôles de sécurité réseau: comprenez les options disponibles pour votre modèle d’hébergement afin de sécuriser la configuration réseau functions. Sécurisez la mise en réseau pour répondre à vos besoins.

Recommandations
Recommandation Avantage
Activez identités managées pour un accès sécurisé aux ressources Azure. Activer les identités managées Simplifie la gestion des informations d’identification en éliminant la nécessité de stocker et de faire pivoter les secrets, ce qui améliore la sécurité.
Utilisez Azure Key Vault pour la gestion des secrets et la rotation régulière. Intégrer Key Vault à Azure Functions. Protège les informations sensibles, telles que les clés API et les chaînes de connexion, en les stockant de manière sécurisée et en automatisant la rotation des secrets quand l’utilisation d’une identité gérée n’est pas réalisable.
intégrer à un réseau virtuel et utiliser des points de terminaison privés. Sécurise les applications de fonction en limitant l’accès à votre réseau interne et en empêchant l’exposition à l’Internet public.

L'intégration de réseau virtuel et les points de terminaison privés ne sont pas disponibles dans le plan d’hébergement de Consommation.

Optimisation des coûts

Le pilier Optimisation des coûts se concentre sur l’identification des moyens de réduire les coûts tout en conservant les niveaux de performances nécessaires.

Les principes de conception d’optimisation des coûts fournissent des stratégies d’équilibrage des coûts et des performances, ce qui garantit que votre déploiement Azure Functions est efficace et rentable.

Liste de contrôle de conception

Commencez votre stratégie d’optimisation des coûts avec la liste de contrôle de la révision de conception pour l’optimisation des coûts, puis ajustez votre conception pour s’aligner sur les exigences budgétaires.

  • Choisir le bon plan tarifaire: Azure Functions propose plusieurs plans tarifaires, notamment le plan Consommation, le plan Premium et le plan Dédié (App Service). Choisissez un plan qui s’aligne sur votre charge de travail et les considérations relatives aux coûts. Comparer les plans tarifaires.

    Le plan Consommation est idéal pour les charges de travail imprévisibles avec des exécutions peu fréquentes, car vous payez uniquement le temps d’exécution et les ressources consommées. Lorsque votre application est inactive, vous n’êtes pas facturé.

  • Optimiser le temps d’exécution: réduisez le temps d’exécution en optimisant le code de fonction. Réduisez l’utilisation des dépendances externes et optimisez la logique de code pour réduire la durée de chaque exécution.

  • Surveiller et analyser les coûts: surveillez régulièrement l’utilisation et les coûts des applications de fonction à l’aide d’Azure Cost Management et configurez des alertes pour détecter les anomalies de coût. En savoir plus sur la gestion et l’optimisation des coûts.

Recommandations
Recommandation Avantage
Utilisez le plan de Consommation pour les charges de travail avec un trafic difficile à prévoir. Comprendre le plan de consommation. Réduit les coûts en chargeant uniquement les ressources utilisées pendant l’exécution de la fonction, ce qui évite les coûts associés aux ressources inactives.
Réservez une capacité pour les plans Elastic Premium ou les plans App Service dédiés si votre charge de travail est prévisible. Réduit les coûts par le biais de tarifs réduits pour les charges de travail prévisibles avec des modèles d’exécution stables.
Surveillez les coûts de manière régulière et configurez des alertes pour les anomalies. Configurer les alertes de coût. Permet d’identifier les pics de coûts précoces, ce qui permet une gestion et une optimisation proactives.

Excellence opérationnelle

L’excellence opérationnelle se concentre sur les processus et procédures de déploiement, d’observabilité et de gestion de vos applications Azure Functions.

Les principes de conception d’excellence opérationnelle fournissent des stratégies pour vous assurer que vos applications de fonction sont déployées, gérées et surveillées efficacement.

Liste de contrôle de conception

Démarrez votre stratégie de conception basée sur les principes de conception pour l’excellence opérationnelle proposez des stratégies pour maintenir la qualité opérationnelle d’Azure Functions.

  • Automatiser les déploiements: utilisez des pipelines CI/CD pour automatiser le déploiement de vos applications de fonction. Intégrer à Azure DevOps ou GitHub Actions pour des flux de travail de déploiement transparents.

  • Mettre en place un suivi de l'état de santé : Utilisez Azure Monitor et Application Insights pour suivre l'état et les performances de vos fonctions. Configurez des alertes pour les métriques critiques et utilisez des tableaux de bord personnalisés pour des insights en temps réel. Surveiller Azure Functions.

  • Déployer votre solution en toute sécurité: comprenez les modèles de déploiement disponibles pour Azure Functions et adoptez le modèle qui répond le mieux à vos pratiques de déploiement sécurisées.

  • Planifier la récupération d’urgence: implémentez des stratégies de récupération d’urgence à l’aide de la zone de récupération d’urgence et de la zone de disponibilité inter-régions pour les fonctions critiques. Plan de DR.

Recommandations
Recommandation Avantage
Automatisez les déploiements avec pipelines CI/CD à l’aide d’Azure DevOps ou gitHub Actions. Configurer le CI/CD Améliore la cohérence du déploiement, réduit les erreurs manuelles et accélère le délai de mise sur le marché des nouvelles fonctionnalités.
Utilisez des emplacements de déploiement pour la préparation des modifications avant la mise en production. Déployer à l’aide d’emplacements. Réduit le risque d’introduire des erreurs en production et active les restaurations sécurisées si des problèmes sont détectés.
Implémentez la supervision centralisée à l'aide d'Application Insights et d'Azure Monitor en utilisant les métriques disponibles . Améliore la visibilité des performances des fonctions, ce qui permet d’identifier et de résoudre rapidement les problèmes.

Efficacité des performances

L’efficacité des performances garantit expérience utilisateur optimale, même sous une charge accrue en gérant efficacement la capacité.

Les principes de conception Performance Efficiency fournissent des stratégies pour vous aider à concevoir des applications de fonction répondant aux exigences de performances, même à mesure que la demande augmente.

Liste de contrôle de conception

Démarrez votre stratégie de performances avec les principes de conception pour l'efficacité des performances, et concevez vos applications fonctionnelles pour qu'elles puissent s'adapter et fonctionner de manière optimale.

  • Optimiser le démarrage à froid: réduisez l’impact des démarrages froids à l’aide de plans Premium Flex avec une instance préchauffée ou assurez-vous que vos fonctions restent chaudes avec des stratégies telles que le déclencheur de préchauffement Azure Functions.

  • Optimiser le code de fonction: écrivez du code efficace pour réduire le temps d’exécution et la consommation des ressources. Évitez les opérations de longue durée et optimisez les appels de service externe.

  • Activer la mise à l’échelle automatique: tirez parti des fonctionnalités de mise à l’échelle automatique d’Azure Functions pour effectuer automatiquement un scale-out en fonction de la demande. Vérifiez que vos règles de mise à l’échelle sont bien définies et testées.

  • Surveiller les métriques de performances: utilisez Application Insights pour surveiller les métriques de performances clés, telles que le temps d’exécution, l’utilisation du processeur et de la mémoire. Configurez des alertes pour la dégradation des performances. Surveiller les performances.

Recommandations
Recommandation Avantage
Utilisez le plan Elastic Premium avec une instance préchauffée pour réduire la latence de démarrage à froid. Comprendre le démarrage à froid. Réduit la latence associée aux démarrages à froid, ce qui améliore les temps de réponse pour les applications sensibles au temps.
Optimiser le code de fonction pour réduire le temps d’exécution. Meilleures pratiques pour Azure Functions. Améliore les performances en réduisant le temps et les ressources nécessaires pour chaque exécution de fonction.
Activer la mise à l’échelle automatique pour ajuster automatiquement la capacité en fonction de la demande. Configurer la mise à l’échelle automatique. Garantit que vos applications de fonction peuvent gérer des charges variables sans intervention manuelle, en conservant les performances sous pression.

Stratégies Azure

Azure fournit un ensemble complet de stratégies intégrées pour auditer et appliquer des configurations pour Azure Functions et leurs dépendances. Vous pouvez utiliser Azure Policy pour vous assurer que vos applications de fonction respectent les normes organisationnelles pour la sécurité, l’optimisation des coûts et les performances.

Par exemple, vous pouvez appliquer des stratégies qui nécessitent :

  • Identités managées à activer pour toutes les applications de fonction.
  • Les applications de fonction utilisent uniquement des points de terminaison privés pour la sécurité réseau.
  • La journalisation des diagnostics doit être activée pour toutes les applications de fonction.

Passez en revue les définitions intégrées Azure Policy pour rechercher des stratégies qui s’alignent sur vos exigences organisationnelles.

Recommandations d’Azure Advisor

Azure Advisor est un consultant cloud personnalisé qui vous aide à suivre les meilleures pratiques pour optimiser vos déploiements Azure. Les recommandations d’Advisor sont alignées sur les piliers Well-Architected Framework.

Pour plus d’informations, consultez les recommandations de Azure Advisor.

Étapes suivantes

Tenez compte des ressources suivantes pour explorer plus en détail les recommandations mises en évidence dans ce document :