Comme nous l'avons évoqué dans notre précédent article de blog sur le calcul sans serveur, AWS Lambda et Azure Functions figurent parmi les outils les plus populaires.
Amazon a été la première entreprise à adopter le calcul sans serveur avec AWS Lambda. Microsoft, quant à elle, est l'un des acteurs les plus récents sur ce marché avec Azure Functions.
Nous allons examiner les principaux facteurs de différenciation entre AWS Lambda et Azure Functions, en nous appuyant sur des paramètres essentiels tels que la tarification, les langages et plateformes pris en charge, les déclencheurs de fonctions et les fonctions d'inactivité.
7 facteurs de différenciation entre AWS Lambda et Azure Functions
- Tarification
- Langages et plateformes pris en charge
- Modèles
- Performances
- Intégration
- Évolutivité
- Configurations
Comparaison des prix d'AWS Lambda et d'Azure Functions
AWS Lambda et Azure Functions proposent des structures tarifaires similaires, avec des niveaux gratuits et des options d'utilisation étendue.
La principale différence réside dans la flexibilité offerte par les plans Consommation et Premium de Microsoft Azure Functions. Le plan Consommation facture la consommation de ressources et le nombre d'exécutions par seconde. Le plan Premium, quant à lui, facture la consommation de ressources en vCPU et en Go/s.
AWS Lambda, de son côté, propose une tarification unique basée sur la consommation de ressources et le nombre d'exécutions par seconde.
AWS Lambda et Azure Functions : Langages et plateformes pris en charge
AWS Lambda prend en charge Python, JavaScript, Java, C, Ruby et PowerShell. Azure, quant à lui, ne prend en charge que Ruby et PowerShell.
AWS Lambda facilite l'intégration avec des services tels que S3 et Kinesis pour l'analyse et le filtrage des journaux. Vous pouvez également personnaliser le code avec les tables Amazon S3 et Amazon DynamoDB. Vous pouvez ainsi réduire la consommation d'énergie et éviter les variations de plateforme pour de nombreux services backend.
Bien qu'il soit possible de l'intégrer facilement à des services Azure comme Azure Event Hubs, Azure Event Grid et Azure Cosmos DB, etc., et malgré la réduction de la consommation d'énergie et l'absence de variations de plateforme, il reste légèrement en deçà d'AWS Lambda sur ces points.
AWS Lambda vs. Azure Functions : modèles
AWS Lambda fonctionne avec un modèle d'entrée/sortie JSON simple, tandis qu'Azure Functions utilise des déclencheurs et des liaisons. Grâce à ces nombreuses liaisons d'entrée et de sortie, vous pouvez extraire ou envoyer des données supplémentaires pendant le traitement.
Les liaisons offrent une plus grande flexibilité, mais complexifient les API et la configuration.
Performances d'AWS Lambda par rapport à celles d'Azure Functions
D'après le rapport académique 2018 de la conférence technique annuelle USENIX, AWS Lambda ne présente pas de différence significative de démarrage à froid entre le lancement d'instances nouvelles et existantes.
La latence entre les nouvelles instances et les instances existantes est très faible : 39 ms.
En revanche, le lancement d'instances nouvelles et existantes est beaucoup plus long avec Azure Functions. Sa latence est d'environ 3 640 ms.
Avec AWS Lambda, la stabilité et la cohérence sont prévisibles car la mémoire est allouée à chaque exécution, ce qui garantit un pool unique de cycles mémoire par instance.
Microsoft Azure Functions autorise plusieurs extensions simultanées, ce qui peut impacter les performances globales des instances gourmandes en ressources.
Selon ce même rapport, le temps d'inactivité maximal pour AWS Lambda était de 27 minutes, sans toutefois présenter de constance. Le temps d'inactivité maximal correspond à la durée maximale pendant laquelle une instance peut rester inactive avant d'être arrêtée.
Intégration AWS Lambda vs Azure Functions
Auparavant, il fallait acheter Amazon API Gateway pour suivre le trafic HTTP, mais ce service propose désormais un équilibrage de charge élastique pour les scénarios à forte charge.
Cependant, son modèle de tarification horaire exige une expertise pour en évaluer précisément l'utilisation.
Par ailleurs, AWS s'appuie sur le concept de couches pour distribuer les bibliothèques, un environnement d'exécution personnalisé pour la prise en charge d'autres langages et les dépendances, tandis qu'Azure utilise des extensions de liaison permettant aux utilisateurs de créer des liaisons sur mesure et de les intégrer à des applications de fonctions.
Évolutivité d'AWS Lambda par rapport à Azure Functions
Avec AWS Lambda, vous pouvez rapidement gérer des volumes importants de requêtes. Il est plus difficile de faire évoluer Azure Functions simultanément avec AWS Lambda.
AWS Lambda est plus performant qu'Azure Functions pour les charges de travail massives. De plus, les effets du délai d'initialisation sont moins marqués avec AWS Lambda qu'avec Microsoft Azure Functions.
Configurations AWS Lambda vs. Azure Functions
Pour AWS Lambda, vous devez choisir une allocation mémoire maximale comprise entre 128 Mo et 3 Go. Les performances du processeur et les coûts d'exécution associés varient en fonction de l'allocation choisie. Ce service s'exécute sur Amazon Linux.
Microsoft Azure Functions, quant à lui, vous permet d'allouer 1,5 Go de mémoire à l'ensemble de vos applications, avec un seul cœur virtuel. Il s'exécute sur Windows et Linux.
Qu'est-ce qui différencie Google Cloud d'AWS Lambda et de Microsoft Azure ?
Google Cloud propose un modèle plus onéreux qu'AWS Lambda et Microsoft Azure. Bien qu'il offre la même formule gratuite, son offre payante coûte 0,4 $ par million de requêtes.
Cependant, ce qui distingue Google Cloud d'AWS Lambda et de Microsoft Azure Functions, c'est sa haute disponibilité et sa scalabilité.
Points clés à retenir :
AWS Lambda a été le premier service à commercialiser des solutions de calcul sans serveur. Bien que la plupart de ses fonctionnalités soient supérieures à celles de ses concurrents, Microsoft Azure Functions et Google Cloud ne sont pas loin derrière.
Ils rattraperont AWS Lambda prochainement.




