Les fonctions sans serveur permettent aux développeurs d'exécuter du code sans avoir à gérer de serveur. Ils peuvent ainsi se concentrer sur la conception et le déploiement d'applications, tandis que la mise à l'échelle et la maintenance de l'infrastructure sont gérées automatiquement en arrière-plan.
Dans ce test comparatif, nous avons évalué sept fournisseurs de services cloud populaires en suivant notre méthodologie afin d'évaluer les performances de leurs fonctions sans serveur. Nous avons mesuré leurs temps de réponse les plus rapides et les plus lents, le temps d'exécution total pour 1 000 requêtes, le débit et le temps moyen par requête réussie en situation de charge.
résultats de l'analyse comparative des fonctions sans serveur
Le premier graphique illustre les performances de chaque fournisseur non pas par une valeur unique, mais par une plage de temps de réponse observés lors de notre test de 1 000 requêtes. Ce spectre de performances est représenté par une « Bande inférieure » et une « Bande supérieure », entre lesquelles vous pouvez basculer à l’aide des boutons situés au-dessus du graphique.
- Bande inférieure : Elle représente les temps de réponse les plus rapides enregistrés pour chaque fournisseur. Elle indique les performances optimales, montrant la rapidité d’exécution d’une fonction dans des conditions idéales (par exemple, un démarrage à chaud avec des ressources mises en cache). Dans cette vue, une valeur plus basse (plus à gauche) est meilleure.
- Bande supérieure : Elle représente les temps de réponse les plus longs observés pour chaque fournisseur. Elle met en évidence les performances les plus faibles, qui peuvent être influencées par des facteurs tels que les démarrages à froid, la latence du réseau ou la contention temporaire des ressources. Cette valeur est essentielle pour comprendre les pics de latence potentiels susceptibles d’affecter l’expérience utilisateur.
Requêtes/s : Nombre de requêtes par seconde, soit le débit moyen. Ce paramètre mesure la capacité de traitement du serveur. Plus il est élevé, mieux c’est, car cela signifie que davantage de requêtes peuvent être traitées par seconde.
Temps total : plus il est court, mieux c’est, car la plateforme peut ainsi gérer rapidement la charge de travail.
Temps moyen par requête réussie : temps moyen de traitement des requêtes réussies, hors erreurs et échecs. Plus ce temps est court, meilleur est le traitement, car il est plus rapide.
Raisons potentielles des différences de performances des fonctions sans serveur
1. Environnement d'exécution principal (Architecture)
La technologie sous-jacente fondamentale — qu'il s'agisse d'une microVM hautement optimisée, d'un moteur V8 ou d'un conteneur standard — est le principal facteur de différences de performances.
- AWS Lambda Firecracker MicroVMs : utilise des microVMs basées sur KVM qui suppriment les fonctionnalités non essentielles du noyau pour démarrer en quelques millisecondes.
- Concurrence optimisée : AWS déploie physiquement des environnements d’exécution plus rapidement que les conteneurs standard. L’architecture MicroVM leur permet de gérer un pic de 1 000 requêtes sans mise en file d’attente.
- Cloudflare Workers V8 Isolates (Edge) : Exécute le code dans des processus Chrome V8 existants (Isolates) plutôt que de démarrer un système d’exploitation.
- Zéro démarrage à froid : En éliminant complètement le processus de démarrage du système d'exploitation, Cloudflare supprime le principal goulot d'étranglement de la mise à l'échelle sans serveur, offrant la latence la plus faible.
- Google Cloud Functions gVisor (conteneurs sandboxés) : Utilise gVisor pour l'abstraction du noyau et la sécurité.
- Limites de concurrence : Bien que sécurisée, l’environnement isolé de gVisor engendre une surcharge lors de la création de nouvelles instances. Le planificateur limite probablement le taux de création (phase de montée en charge) afin de maintenir la stabilité, ce qui réduit le nombre total de requêtes par seconde.
- Heroku Dynos (conteneurs LXC) : Repose sur l'orchestration de conteneurs traditionnelle (PaaS).
- Le coût de la « connexion permanente » : conçu pour les applications de longue durée, et non pour les pics d’activité ponctuels. L’architecture n’est pas optimisée pour une mise à l’échelle instantanée de 0 à 1 000.
2. Surcharge d'initialisation et de mise à l'échelle
Cette catégorie traite du compromis direct entre la complexité de l'environnement d'exécution (lourd vs léger) et la vitesse des démarrages à froid.
- Initialisation optimisée des workers AWS Lambda / Cloudflare : les microVM AWS et les isolats Cloudflare sont conçus pour éliminer ou réduire considérablement le temps de démarrage. AWS supprime le noyau, tandis que Cloudflare évite complètement le démarrage d'un système d'exploitation, ce qui permet un débit et une concurrence optimaux en éliminant les goulots d'étranglement au démarrage.
- Azure Functions / Google Cloud Functions : surcharge d'environnement plus importante : les deux plateformes présentent une latence d'initialisation significative par rapport aux leaders du marché. Azure initialise un environnement serveur web plus lourd (comme C#/.NET sur IIS/Kestrel), tandis que gVisor d'Google ajoute une surcharge de sécurité à la création de nouvelles instances, qui doit être limitée par le planificateur pour maintenir la stabilité globale du système.
fournisseurs de fonctions sans serveur
Il existe une variété de fournisseurs de fonctions sans serveur, chacun présentant des caractéristiques distinctes, des intégrations à l'écosystème et des atouts adaptés à des cas d'utilisation spécifiques :
Microsoft Fonctions Azure
Microsoft Azure Functions est un service informatique sans serveur qui permet aux développeurs de créer et de déployer des applications événementielles sans gérer d'infrastructure. 1 Il assure l'intégration avec d'autres services Azure, tels que Azure Blob Storage pour la gestion des fichiers, Cosmos DB pour les opérations de base de données et Event Grid pour le routage des événements.
Azure Functions propose une mise à l'échelle automatique pour gérer les variations de volume de requêtes et s'intègre à Azure Monitor et à Azure Security Center pour le suivi des performances et la gestion de la sécurité.
AWS Lambda
AWS Lambda est un service de calcul sans serveur proposé par Amazon Web Services (AWS) qui s'intègre avec d'autres services AWS, tels qu'Amazon S3 pour le stockage , DynamoDB pour les opérations de base de données et API Gateway pour les points de terminaison HTTP, permettant le développement d'architectures événementielles. 2
AWS Step Functions peut coordonner plusieurs fonctions Lambda, prenant en charge la création de flux de travail complexes pour des tâches telles que le traitement des données ou l'orchestration d'applications .
Google Fonctions Cloud
Cloud Functions est un environnement d'exécution sans serveur qui permet aux développeurs d'exécuter du code déclenché par des événements provenant de sources telles que les requêtes HTTP, les mises à jour de Cloud Storage ou les messages Pub/Sub. La plateforme s'adapte automatiquement aux variations de charge de travail, en allouant les ressources nécessaires sans intervention manuelle. 3
Cloud Functions s'intègre également aux services de données et d'analyse de Cloud, tels que BigQuery pour l'analyse de données à grande échelle et Cloud Dataflow pour le traitement de flux, prenant en charge les applications axées sur la gestion des données et l'obtention d'informations en temps réel. Son architecture événementielle garantit l'exécution efficace des tâches liées à des déclencheurs spécifiques au sein de l'écosystème Cloud.
Fonctions Vercel
Vercel est une plateforme cloud destinée aux développeurs front-end, offrant des outils de déploiement et de mise à l'échelle pour les applications web modernes. Elle est notamment connue pour le développement de Next.js et propose une intégration avec le framework React, largement utilisé.
Vercel Functions permet aux développeurs d'exécuter du code backend sans gérer de serveurs et prend en charge des langages tels que JavaScript (Node.js), TypeScript, Python, Go et Ruby. Des fonctionnalités comme les déploiements automatiques, les URL de prévisualisation et un réseau edge mondial améliorent les performances et la productivité des développeurs. 4
Cloudflare Travailleurs
Avec Cloudflare Workers, les développeurs peuvent exécuter leur code dans des centres de données du monde entier, obtenant ainsi une faible latence. 5 La plateforme prend en charge des technologies telles que JavaScript et WebAssembly, permettant aux développeurs de déployer rapidement leurs applications. Workers est également optimisé pour les applications d'IA et de blockchain.
Workers (Cloudflare) est axé sur l'informatique de périphérie et les hautes performances avec une faible latence. Les développeurs peuvent évaluer ces plateformes en fonction de leurs besoins et des exigences de leurs projets.
Huawei Cloud FunctionGraph
Huawei Cloud FunctionGraph est un service qui permet aux développeurs d'exécuter du code en réponse à des événements sans avoir à gérer l'infrastructure serveur. 6 Le service s'intègre aux sources d'événements au sein de l'écosystème Cloud Huawei, y compris Object Storage Service (OSS) pour les déclencheurs liés aux fichiers et API Gateway pour les invocations basées sur HTTP, permettant la création d'applications pilotées par les événements.
Cloud FunctionGraph assure une mise à l'échelle automatique pour s'adapter aux variations de charge de travail et fonctionne selon un modèle de facturation à l'usage, ne facturant que les ressources consommées lors de l'exécution. Il inclut également des fonctionnalités de surveillance et de journalisation via les outils d'observabilité de Cloud, aidant ainsi les développeurs à suivre les performances et à diagnostiquer les problèmes d'application.
Héroku
Heroku est une plateforme en tant que service (PaaS) qui permet le déploiement et la gestion rapides d'applications. Elle utilise des conteneurs virtuels appelés « dynos » pour faciliter la gestion et la mise à l'échelle des applications. 7 De plus, il offre des « dynos ponctuels » temporaires pour exécuter des opérations spécifiques de manière sans serveur.
Nombre de langues prises en charge
Que sont les fonctions sans serveur ?
Les fonctions sans serveur, également appelées fonctions en tant que service (FaaS), sont un modèle de cloud computing, à l'instar des GPU dans le cloud, qui permet d'exécuter du code sans avoir à gérer les serveurs ou l'infrastructure sous-jacents. Dans ce modèle, vous écrivez de petits morceaux de code événementiels (fonctions) qui sont déclenchés par des événements spécifiques tels qu'une requête HTTP, une mise à jour de base de données ou un message dans une file d'attente.
Le fournisseur de cloud prend en charge le provisionnement, la mise à l'échelle et la gestion des serveurs, vous permettant ainsi de vous concentrer sur le développement et le déploiement de votre code. Dans une architecture sans serveur, les ressources sont dimensionnées dynamiquement en fonction de la demande en temps réel. En période d'inactivité, l'infrastructure est réduite à zéro, ce qui entraîne une absence totale de consommation de ressources et de coûts.
En revanche, en cas de forte demande, le système s'adapte pour gérer la charge de travail accrue. Cette adaptation dynamique garantit la maîtrise des coûts, la facturation étant basée sur les ressources réellement utilisées.
Comment fonctionnent les fonctions sans serveur ?
1. Déclencheur d'événement :
Les fonctions sans serveur sont pilotées par les événements et déclenchées par des requêtes HTTP, des chargements de fichiers, des modifications de la base de données ou d'autres événements. L'événement définit le moment où la fonction doit être exécutée.
2. Exécution :
Lorsqu'un événement est déclenché, le fournisseur de cloud met en place un environnement léger pour exécuter la fonction. Cet environnement est souvent appelé « conteneur » ou « environnement d'exécution ». Le code est exécuté au sein de cet environnement, mais celui-ci est temporaire et créé uniquement pour la durée d'exécution de la fonction.
3. Mise à l'échelle :
Les plateformes sans serveur sont conçues pour s'adapter automatiquement à la demande. Si plusieurs événements se produisent simultanément, la plateforme lancera davantage d'instances de la fonction pour les gérer, un processus souvent appelé mise à l'échelle horizontale . 8 Le fournisseur de cloud gère cela automatiquement, vous n'avez donc pas besoin de gérer l'infrastructure vous-même.
4. Arrêt :
Une fois la fonction exécutée, l'environnement (conteneur) est arrêté. La fonction sans serveur ne s'exécute plus et ne consomme plus de ressources après avoir terminé sa tâche.
Avantages des fonctions sans serveur
Aucune gestion de serveur
Grâce aux fonctions sans serveur, les développeurs n'ont plus à se soucier du provisionnement, de la gestion ni de la maintenance de l'infrastructure sous-jacente. Le fournisseur de cloud prend en charge la gestion des serveurs (mises à jour, mise à l'échelle et surveillance), ce qui permet aux développeurs de se concentrer sur l'écriture et le déploiement de la logique métier.
Cela permet de s'affranchir de la complexité de la gestion des serveurs, des systèmes d'exploitation ou du matériel, ce qui réduit considérablement les problèmes opérationnels pour les équipes de développement.
Par exemple, avec AWS (référence 991259_1724), les développeurs peuvent déployer leurs fonctions sans avoir à gérer de machines virtuelles, d'équilibreurs de charge ni de composants réseau. La plateforme provisionne automatiquement les ressources nécessaires à l'exécution de la fonction en réponse à un événement, garantissant ainsi son exécution sans intervention manuelle.
rentabilité
Les fonctions sans serveur sont généralement facturées en fonction de l'utilisation réelle des ressources, et non de la puissance de calcul pré-allouée ou du temps d'inactivité. Ce modèle de paiement à l'usage permet aux entreprises de ne payer que pour le temps d'exécution effectif de leur code, souvent mesuré avec une grande précision. Cela diffère des modèles de cloud computing traditionnels, où la puissance de calcul réservée peut être facturée même lorsqu'elle est inactive.
Par exemple, vous ne payez pas pour la capacité inutilisée si votre fonction est inactive ou reçoit un faible trafic . En revanche, lorsque la demande augmente brusquement, la plateforme ajuste automatiquement les ressources pour répondre à la charge, sans frais supplémentaires. L'informatique sans serveur s'avère ainsi une option très rentable, notamment pour les charges de travail dont le trafic est variable.
Mise à l'échelle automatique
L'un des atouts majeurs des fonctions sans serveur réside dans leur capacité à s'adapter automatiquement aux variations de la demande. Lorsqu'un grand nombre d'événements déclenchent simultanément une fonction, la plateforme provisionne automatiquement des ressources supplémentaires (comme de nouvelles instances de la fonction) pour gérer la charge accrue. Une fois la demande retombée, le système réduit les ressources allouées, garantissant ainsi l'utilisation de l'infrastructure strictement nécessaire.
Par exemple, lors d'événements à fort trafic comme le lancement de produits ou des ventes flash, une plateforme sans serveur telle qu'AWS ou Azure Functions déploie des ressources supplémentaires pour gérer l'afflux de requêtes. Une fois l'événement terminé, la plateforme réduit sa capacité afin d'économiser des ressources et de diminuer les coûts.
Déploiement rapide
Les fonctions sans serveur peuvent être déployées beaucoup plus rapidement que les applications traditionnelles, notamment lorsqu'elles sont intégrées à d'autres services. En effet, vous n'écrivez que de petits blocs de code (fonctions) distincts, déclenchés par des événements spécifiques. Le déploiement consiste simplement à téléverser le code de la fonction sur la plateforme ; le système se charge ensuite de tout, de l'allocation des ressources à la gestion des environnements d'exécution.
Le déploiement rapide est essentiel pour accélérer les cycles de développement. Les développeurs peuvent expérimenter et itérer plus rapidement car ils n'ont pas à consacrer du temps à la mise en place d'infrastructures ou à la gestion de pipelines de déploiement complexes.
Cela peut réduire considérablement le temps nécessaire au déploiement de nouvelles fonctionnalités ou à la correction de bogues, favorisant ainsi un processus de développement plus agile. Par exemple, vous pouvez déployer rapidement une fonction qui réagit au chargement d'un fichier dans un service de stockage ou à une requête API sans avoir à gérer vous-même l'infrastructure.
Méthodologie d'évaluation comparative des fonctions sans serveur
Dans ce test, nous avons créé une fonction qui vérifie si le navigateur d'un visiteur est à jour en fonction de son système d'exploitation et de son agent utilisateur. Nous souhaitions observer comment chaque plateforme gère ce type de requête, qui implique de vérifier les mises à jour des navigateurs auprès de plusieurs agents utilisateurs.
Procédure de test :
- Implémentation du code : Une fonction Python a été écrite pour analyser la chaîne User-Agent d'un visiteur. Cette fonction vérifie le système d'exploitation actuel et le compare à la version du navigateur afin de déterminer si ce dernier est à jour. Le code effectue une simple comparaison entre la version du navigateur et la version prise en charge par le système d'exploitation.
- Requêtes parallèles : La fonction a été exécutée 1 000 fois en parallèle, simulant un trafic réel, à l’aide de 10 threads pour générer la charge. Ce test permet d’évaluer la capacité des plateformes à gérer plusieurs requêtes simultanées.
- Indicateurs de performance : Plusieurs indicateurs clés de performance ont été collectés pendant le test afin d’évaluer les performances de chaque plateforme.
Pour en savoir plus
Découvrez les dernières nouveautés concernant les plateformes sans serveur en consultant :
Les 10 meilleurs fournisseurs de GPU sans serveur en 2025 : AWS, Azure et bien d’autres
FAQ
Les fonctions sans serveur sont légères et s'exécutent dans un environnement sans état, où le fournisseur de cloud gère la mise à l'échelle et l'administration des ressources. À l'inverse, les fonctions conteneurisées regroupent votre code et toutes ses dépendances dans un conteneur exécutable n'importe où, offrant ainsi un meilleur contrôle sur les environnements d'exécution et la mise à l'échelle.
Les fonctions sans serveur, comme AWS Cloud Functions (références 991259_1724 et 991259_1712), sont pilotées par les événements et s'adaptent automatiquement à la demande, sans nécessiter de gestion d'infrastructure. Le terme « fonctions cloud » désigne toute fonction de calcul basée sur le cloud, mais est généralement associé au modèle sans serveur où les ressources sont provisionnées dynamiquement.
Les services AWS (AWS) et Cloud Functions (Cloud Functions) offrent tous deux des environnements sans serveur robustes. AWS s'intègre parfaitement aux autres services AWS , facilitant ainsi la connexion entre les fonctions sans serveur et des ressources telles que S3 ou DynamoDB. Cloud Functions, quant à elle, prend en charge des langages comme Go et Python et offre une grande scalabilité pour la gestion de la logique métier événementielle. Votre choix dépendra de votre écosystème cloud existant et des exigences spécifiques de vos applications sans serveur.
Les applications sans serveur sur des plateformes comme AWS Workers permettent aux développeurs de déployer des fonctions avec une surcharge minimale. AWS Workers connecte les fonctions à d'autres services AWS, tandis que Workers privilégie une exécution à faible latence grâce à son modèle de calcul en périphérie. Ces deux plateformes gèrent automatiquement la mise à l'échelle en fonction du trafic , vous libérant ainsi de toute responsabilité en matière d'infrastructure. Elles optimisent l'exécution du code de vos fonctions, améliorant ainsi les performances et l'évolutivité de vos applications sans serveur.
Soyez le premier à commenter
Votre adresse courriel ne sera pas publiée. Tous les champs sont obligatoires.