Modifier

Azure Functions dans un environnement hybride

Azure Functions
Azure Monitor
Azure Pipelines
Stockage Azure
Réseau virtuel Azure

Cette architecture de référence illustre plusieurs filiales locales d’une organisation qui s’étend géographiquement. Chaque emplacement utilise une application de fonction Microsoft Azure qui est configurée avec le plan Premium dans une région cloud proche. Les développeurs de cette architecture supervisent toutes les applications de fonction Azure en utilisant Azure Monitor comme volet unique.

Architecture

Le diagramme illustre plusieurs machines virtuelles locales qui sont connectées à Azure Functions dans différentes régions. Les développeurs supervisent leurs applications de fonction à l’aide d’Azure Monitor.

Téléchargez un fichier Visio de cette architecture.

Composants

L’architecture est constituée des composants suivants :

  • Azure Functions . Azure Functions est une plateforme PaaS (Platform as a service) serverless dans Azure qui exécute un petit code de tâche unique sans nécessiter de nouvelle infrastructure. Le plan Premium d’Azure Functions offre la possibilité de communiquer avec Azure Functions de manière privée sur un réseau virtuel.
  • Réseau virtuel Azure . Les réseaux virtuels Azure sont des réseaux privés basés sur la plateforme cloud Azure, ce qui permet aux ressources Azure de communiquer entre elles de façon sécurisée. Les points de terminaison de service des réseaux virtuels Azure garantissent que les ressources Azure peuvent uniquement communiquer sur le segment principal du réseau virtuel sécurisé.
  • Réseau local. Dans cette architecture, l’organisation a créé un réseau privé sécurisé qui connecte les différentes filiales. Ce réseau privé est connecté à leurs réseaux virtuels Azure à l’aide d’une connexion de site à site.
  • Stations de travail de développeurs. Dans cette architecture, les développeurs individuels peuvent travailler sur le code destiné à Azure Functions entièrement sur le réseau privé sécurisé ou à partir d’un emplacement distant. Dans les deux cas, les développeurs ont accès à Azure Monitor pour interroger ou observer les métriques et les journaux des applications de fonction.

Détails du scénario

Utilisations courantes de cette architecture :

  • Organisations ayant de nombreux emplacements physiques connectés à un réseau virtuel dans Azure pour communiquer avec Azure Functions.
  • Charges de travail à forte croissance qui utilisent Azure Functions localement et qui maintiennent la possibilité d’utiliser Azure pour toute rafale de travail inattendue.

Recommandations

Les recommandations suivantes s’appliquent à la plupart des scénarios. Suivez ces recommandations, sauf si vous avez un besoin spécifique qui vous oblige à les ignorer.

Conception pour une architecture serverless

Les applications d’entreprise traditionnelles favorisent une architecture d’application monolithique dans laquelle une « solution » de code exécute toute la logique métier de l’organisation. Avec Azure Functions, la meilleure pratique consiste à concevoir une architecture serverless dans laquelle les fonctions individuelles effectuent des tâches uniques. Ces tâches uniques sont conçues pour s’exécuter rapidement et s’intégrer dans des workflows plus importants.

L’architecture sans serveur sur Azure Functions présente de nombreux avantages, notamment :

  • Les applications peuvent se mettre à l’échelle automatiquement pour chaque fonction d’entreprise individuelle plutôt que pour l’ensemble de la solution. Cela peut contribuer à réduire les coûts en mettant à l’échelle uniquement ce qui est nécessaire pour chaque tâche afin de répondre aux charges de travail existantes.
  • Azure Functions fournit des liaisons déclaratives pour de nombreux services Azure, ce qui réduit la quantité de code que votre équipe doit écrire, tester et entretenir.
  • Vous pouvez réutiliser les fonctions individuelles, ce qui réduit la quantité de code répété nécessaire pour les solutions destinées aux grandes entreprises.

Exécution d’Azure Functions localement

Vous pouvez choisir d’exécuter Azure Functions localement plutôt que dans Azure. Par exemple :

  • Votre équipe peut vouloir exécuter Azure Functions au sein d’une installation Kubernetes locale existante.
  • En développement, votre équipe peut trouver plus facile de développer localement en utilisant l’interface de ligne de commande plutôt que l’éditeur du portail.
  • Vos fonctions seront exécutées localement avec l’ensemble d’outils installé sur les machines virtuelles locales.

Vous pouvez exécuter Azure Functions localement de trois manières :

Connectivité réseau

La création d’applications de fonction à l’aide du plan Premium ouvre la possibilité d’une connectivité inter-réseaux hautement sécurisée entre les réseaux virtuels Azure, les réseaux Azure et locaux, et les réseaux de chaque filiale locale.

Vous devez utiliser une connexion de site à site ou Azure ExpressRoute entre Réseau virtuel Microsoft Azure et des réseaux locaux. Cela permet aux filiales locales de communiquer avec les applications de fonction dans Azure à l’aide de leurs points de terminaison de service.

En outre, chaque réseau virtuel dans Azure doit également utiliser l’appairage de réseaux virtuels pour permettre la communication entre des applications de fonction dans différentes régions.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Extensibilité

  • Le code Azure Functions doit être conçu de façon à pouvoir être mis à l’échelle à l’infini. Tenez compte des conditions de concurrence, des fichiers loués et des autres charges de travail qui pourraient faire en sorte que l’exécution d’une fonction en bloque une autre. Envisagez également d’écrire tout le code Azure Functions pour qu’il soit conceptuellement sans état et défensif.
  • Pour les applications de fonction qui utilisent des comptes Stockage Azure dans les déclencheurs ou les liaisons, ne réutilisez pas le même compte que celui utilisé pour stocker les métadonnées relatives aux applications de fonction et à leurs exécutions.

Disponibilité

  • En règle générale, Azure Functions peut être réduit à zéro instance sur le plan consommation. Lorsqu’un nouvel événement déclenche une application de fonction, une nouvelle instance doit être créée avec votre code s’exécutant dessus. La latence associée à ce processus est appelée démarrage à froid. Le plan Premium d’Azure Functions offre la possibilité de configurer des instances préchauffées qui sont prêtes pour toute nouvelle requête. Vous pouvez configurer le nombre d’instances préchauffées jusqu’au nombre minimal d’instances dans votre configuration de Scale-out.
  • Envisagez d’avoir plusieurs plans Premium dans plusieurs régions et d’utiliser Azure Traffic Manager pour acheminer les requêtes de manière appropriée.

Simplicité de gestion

  • Azure Functions doit se trouver dans un sous-réseau vide qui est différent de celui des autres ressources Azure. Cela peut nécessiter davantage de planification lors de la conception de sous-réseaux pour votre réseau virtuel.
  • Envisagez de créer des proxys pour chaque ressource locale à laquelle Azure Functions pourrait avoir besoin d’accéder. Cela permet de protéger l’intégrité de votre application contre toute modification imprévue du réseau local.
  • Utilisez Azure Monitor pour observer l’analytique et les journaux d’Azure Functions dans l’ensemble de votre solution.

DevOps

  • Dans l’idéal, les opérations de déploiement doivent provenir d’une seule équipe (Dev ou DevOps), et non de chaque filiale. Envisagez d’utiliser un système de workflow moderne comme Azure Pipelines ou GitHub Actions pour déployer des applications de fonction de manière reproductible dans toutes les régions Azure et potentiellement localement.
  • Utilisez votre système de workflow pour automatiser le redéploiement du code dans Azure Functions, car le code est mis à jour et balisé pour la mise en production.
  • Utilisez des emplacements de déploiement pour tester les applications de fonction avant leur envoi (push) final en production.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

  • Utiliser la calculatrice de prix Azure pour estimer les coûts.
  • Le plan Premium d’Azure Functions est requis pour la connectivité à Réseau virtuel Microsoft Azure, l’accès aux sites privés, les points de terminaison de service et les instances préchauffées.
  • Le plan Premium d’Azure Functions facture les instances plutôt que la consommation. Le minimum d’une instance unique garantit qu’il y aura au moins une facture mensuelle, même si elle n’est pas exécutée. Vous pouvez définir un nombre maximal d’instances pour contrôler les coûts des charges de travail dont la taille peut augmenter.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Consultez les conseils suivants sur l’architecture pour Azure Functions :

Consultez les conseils suivants sur l’architecture pour les Réseaux virtuels Azure :