Déterminer si l’informatique serverless répond à vos besoins opérationnels

Effectué

Pour savoir si l’informatique serverless est une solution adaptée à votre cas, découvrez d’abord en quoi cela consiste.

Qu’est-ce que le calcul Serverless ?

Le calcul Serverless peut être considéré comme une fonction en tant que service (FaaS) ou un microservice hébergé sur une plateforme cloud. Votre logique métier s’exécute en tant que fonctions et vous n’êtes pas tenu de provisionner ou de mettre à l’échelle l’infrastructure manuellement. La gestion de l’infrastructure est assurée par le fournisseur de cloud. Votre application monte ou descend automatiquement en puissance en fonction de la charge. Azure permet de créer ce type d’architecture de plusieurs façons. Les deux approches les plus courantes sont Azure Logic Apps et Azure Functions, que nous allons examiner de plus près dans ce module.

Qu’est-ce qu’Azure Functions ?

Azure Functions est une plateforme d’application sans serveur. Cette solution permet aux développeurs d’héberger une logique métier exécutable sans provisionner d’infrastructure. Azure Functions offre une scalabilité intrinsèque, et vous êtes facturé uniquement pour les ressources utilisées. Vous pouvez écrire le code de votre fonction dans le langage de votre choix, notamment C#, Java, JavaScript, Python et PowerShell. Les gestionnaires de packages comme NuGet et npm étant aussi pris en charge, vous pouvez utiliser les bibliothèques courantes dans votre logique métier.

Avantages d’une solution de calcul serverless

Le calcul Serverless est une option idéale pour héberger du code de logique métier dans le cloud. Les offres Serverless comme Azure Functions vous permettent d’écrire votre logique métier dans le langage de votre choix. Vous bénéficiez d’une mise à l’échelle automatique, vous n’avez aucun serveur à gérer, et vous êtes facturé en fonction de ce qui est utilisé, et non d’après le temps réservé. Voici quelques-unes des autres caractéristiques d’une solution serverless que vous devez prendre en considération.

Pas de surutilisation d’infrastructure

Supposons que vous avez provisionné des serveurs de machines virtuelles et que vous les avez configurés avec suffisamment de ressources pour gérer vos pics de charge. Quand la charge est légère, le risque est que vous soyez facturé pour une infrastructure que vous n’utilisez pas. L’informatique Serverless vous permet de résoudre le problème d’allocation par la montée ou la descente en puissance automatique, et vous n’êtes facturé que lorsque votre fonction traite du travail.

Logique sans état

Les fonctions sans état sont d’excellentes candidates pour le calcul sans serveur. Les instances de fonction sont créés et détruites à la demande. Si l’état est requis, il peut être stocké dans un service de stockage associé.

Pilotage par les événements

Les fonctions sont pilotées par les événements. Elles s’exécutent uniquement en réponse à un événement (appelé « déclencheur ») comme la réception d’une requête HTTP ou l’ajout d’un message à une file d’attente. Vous configurez un déclencheur dans le cadre de la définition de la fonction. Cette approche simplifie votre code en vous permettant de déclarer l’origine des données (déclencheur/liaison d’entrée) et leur destination (liaison de sortie). Vous n’avez pas besoin d’écrire du code pour observer les files d’attente, les objets blob, les hubs, etc. Vous pouvez vous concentrer exclusivement sur la logique métier.

Les fonctions peuvent être utilisées dans des environnements de calcul classiques

Si les fonctions sont une composante clé de l’informatique serverless, elles constituent aussi une plateforme de calcul généraliste qui permet d’exécuter n’importe quel type de code. Si les besoins de votre application changent, vous pouvez prendre votre projet et le déployer dans un environnement non serverless. Cette flexibilité vous permet de gérer la mise à l’échelle, d’exécuter sur des réseaux virtuels et même d’isoler complètement vos fonctions.

Inconvénients d’une solution de calcul serverless

Le calcul serverless, tel que fourni par Azure Functions dans le plan Consommation, n'est pas toujours la solution appropriée pour héberger votre logique métier. Voici quelques-unes des caractéristiques des fonctions susceptibles d’influencer votre décision d’héberger ou non vos services dans un environnement de calcul serverless.

Temps d’exécution

Par défaut, les fonctions ont un délai d’expiration de cinq (5) minutes. Celui-ci peut être configuré à 10 minutes, au maximum. Si l’exécution de votre fonction prend plus de 10 minutes, vous pouvez l’héberger sur une machine virtuelle. De plus, si votre service est lancé via une requête HTTP et que vous attendez cette valeur en tant que réponse HTTP, le délai d’expiration est plus limité encore (2,5 minutes). Toutefois, il existe aussi une option appelée Durable Functions qui vous permet d’orchestrer les exécutions de plusieurs fonctions sans délai d’expiration.

Fréquence d’exécution

Une autre caractéristique est la fréquence d’exécution. Si vous attendez des clients qu'ils exécutent votre fonction en permanence, il serait prudent d'estimer l'utilisation et de calculer le coût de l'utilisation des fonctions en conséquence. Il est peut-être plus économique d’héberger votre service sur une machine virtuelle.

Lorsque votre fonction se met à l'échelle, une seule instance d'application de fonction peut être créée toutes les 10 secondes pour un maximum de 200 instances au total. Ne perdez pas de vue que chaque instance peut traiter plusieurs exécutions simultanées. Autrement dit, il n’y a pas de limite définie quant à la quantité de trafic qu’une même instance peut traiter. Les exigences de mise à l’échelle étant différentes selon les types de déclencheurs, examinez les caractéristiques et les limites de chacun d’eux avant d’en choisir un.