Definition

Microsoft Azure Functions

Azure Functions est le service d'informatique sans serveur hébergé sur le cloud public Microsoft Azure. Azure Functions, comme l'informatique sans serveur en général, vise à accélérer et à simplifier le développement applicatif.

Dans le développement traditionnel des applications, il faut tenir compte de l'infrastructure informatique sous-jacente. En cas de cloud computing, une équipe informatique doit créer, surveiller et payer des instances de cloud computing, quelle que soit l'activité qu'elles fournissent réellement pour l'entreprise.

Avec l'informatique sans serveur, également connue sous le nom de Function as a Service (FaaS), l'idée est de libérer l'utilisateur de toutes ces considérations d'infrastructure. En mode sans serveur, il est possible de créer et de télécharger tout simplement du code, puis de définir les déclencheurs ou les événements qui l'exécuteront. Les déclencheurs peuvent provenir de diverses sources, par exemple l'application d'un autre utilisateur ou d'autres services cloud, tels que des bases de données et des plateformes d'événements et de notifications.

Lorsqu'un déclencheur ou un événement se produit, c'est au fournisseur cloud de charger le code dans un environnement d'exécution adapté, d'exécuter le code, puis de débloquer les ressources de traitement. Les serveurs sont toujours nécessaires, mais l'utilisateur n'a plus à provisionner ni à gérer les instances de calcul. En outre, au lieu de payer tous les mois ces instances de calcul et les ressources associées, le coût de l'informatique sans serveur est calculé en fonction de la durée d'exécution d'une fonction sur un cycle de facturation donné.

Utilisations d'Azure Functions

Les fonctions de l'informatique sans serveur ne proposent en général que quelques fonctionnalités et non les applications en entier. Elles gèrent plutôt des tâches spécifiques et de courte durée, et sous-entendent souvent une certaine forme de traitement des données, comme le traitement d'images ou de commandes, la maintenance de fichiers ou la collecte de données sur des périphériques de l'Internet des objets (IoT).

Voici quelques exemples d'utilisation d'Azure Functions par l'équipe informatique :

  • Azure Event Hub peut diffuser différents événements qui déclenchent des fonctions liées aux conditions dans l'environnement cloud ou un compte utilisateur.
  • Un web hook générique peut traiter des demandes HTTP, ce qui permet l'action de déclencheurs issus de sites Web ou de référentiels GitHub.
  • Le trafic de messages peut déclencher des fonctions. C'est le cas, par exemple, des messages qui arrivent dans une file d'attente Azure Storage.
  • Des minuteurs peuvent également déclencher Azure Functions, pour exécuter des tâches à intervalles réguliers (nettoyage des fichiers, par exemple).

Les utilisateurs peuvent également enchaîner les fonctions ou les associer entre elles, pour créer des API (application program interfaces) et des applications à base de microservices plus complètes.

Azure Functions s'intègre aux offres SaaS Azure, dont Azure Cosmos DB, Azure Mobile Apps et Azure Service Bus.

Développement de code pour Azure Functions

Avec Azure Functions, les entreprises n'ont plus à provisionner, à gérer ni à payer des ressources à long-terme dans le cloud. Elles peuvent ainsi se consacrer pleinement au développement de code. De nombreuses fonctions d'Azure Functions sont intéressantes pour les développeurs.

Azure Functions prend en charge les fonctions développées en C#, F#, Node.js, Python, PHP, batch, bash, et tous les formats de fichiers exécutables, sans oublier le gestionnaire de packages open source NuGet et Node Package Manager pour JavaScript, qui permet aux développeurs d'utiliser les bibliothèques les plus répandues.


Prise en main de Microsoft Azure Functions.

Les développeurs peuvent coder Azure Functions directement sur le portail Azure, mais peuvent aussi procéder à une intégration continue (CI) et déployer le code via GitHub, Microsoft Visual Studio Team Services et d'autres outils de développement, tels que Xcode, Eclipse et IntelliJ IDEA.

La sécurité est indispensable pour assurer que seules les demandes valides d'utilisateurs ou de déclencheurs autorisés déclencheront des fonctions. Azure Functions sécurise les déclencheurs HTTP externes avec des systèmes OAuth, comme Azure Active Directory et les informations d'identification Microsoft Account, entre autres.

Tarifs, limites et conditions d'Azure Functions

Les entreprises ont le choix entre deux principes de tarification pour Azure Functions : à la consommation et Azure App Service. En cas de paiement à la consommation, les utilisateurs sont facturés d'après le temps d'exécution réel de chaque fonction. L'autre tarif s'adresse aux utilisateurs ayant déjà recours à Azure App Service pour exécuter leurs applications Web, mobiles et basées sur API. Ceux-ci peuvent alors utiliser Azure Functions sans coût supplémentaire.

Azure Functions ne fixe aucune limite quant au volume de charge, à l'importance du programme de déploiement, à la taille du code et des dépendances. En revanche, chaque instance hôte Azure Functions est limitée à 1,5 Go de mémoire avec un délai d'exécution par défaut de 5 minutes, délai pouvant être prolongé de 10 minutes par les utilisateurs.

Azure Functions ne nécessite aucun compte Azure Storage pour prendre en charge les services de stockage Azure Blob, Queue et Table. Il utilise Azure Storage pour gérer les déclencheurs et journaliser l'exécution des fonctions. Les demandes de stockage Azure Functions peuvent être facturées en sus aux utilisateurs.

Azure Functions rivalise avec d'autres offres d'informatique sans serveur : Amazon Web Services Lambda et Google Cloud Functions, notamment.

Cette définition a été mise à jour en décembre 2018

Pour approfondir sur IaaS