Function as a Service : Amazon impose sa marque face à Google et Microsoft

Function as a Service : Amazon impose sa marque face à Google et Microsoft Comparé à Google et Microsoft, Amazon se détache sur le terrain de l'orchestration des fonctions. Sa palette de possibilités reste particulièrement riche dans ce domaine.

70% des entreprises déploient désormais des applications basées sur des services sans serveur rien que sur le cloud d'Amazon. Chez Google Cloud, ce chiffre atteint les 60%, et sur Microsoft Azure il flirte avec les 50%. C'est ce que démontre le dernier baromètre de Datadog. "L'adoption des fonctions Lambda s'accélère. Ce qui était une technologie de niche réservée à des développeurs experts s'est démocratisé en quelques années", commente Julien Groues, directeur France d'AWS. Amazon, qui a été le premier à se lancer sur ce créneau dès 2014, propose sans surprise l'offre la plus aboutie. Quant à Microsoft et Google, ils se sont positionnés sur ce segment respectivement en 2016 et 2018 avec des offres qui se révèlent aujourd'hui relativement similaires à celle d'AWS tout en restant moins avancées.

"Sur le front du serverless, Amazon n'hésite pas à mettre en avant ses fonctions Lambda parmi les principaux leviers de transformation numérique", commente Luc Germain, CTO au sein de Devoteam Innovative Tech (entité de l'ESN Devoteam spécialisée dans la modernisation de plateforme). "Cette stratégie est différente de celle de Google qui a tendance à être beaucoup plus attractif sur le terrain des containers logiciels en mettant l'accent sur son service de GKE (pour Google Kubernetes Engine, ndlr). Partant de-là, Google positionne les fonctions comme une technologie complémentaire", commente Luc Germain. "Quant à Microsoft, il pousse avant tout ses clients à migrer leurs systèmes internes vers des instances cloud, et moins vers des containers ou des fonctions." Du coup, il ne met pas non plus en avant ses Azure Functions comme star de la transformation.

Service Service d'orchestration Commentaire
AWS Lambda AWS Step Functions AWS Step Functions permet de surveiller et de visualiser les flux de travail en temps réel via la console de gestion AWS Management Console et s'intègre à AWS CloudTrail pour l'audit et la conformité.
Azure Functions Durable Azure Functions Orchestrateur disposant de fonctions simples : chainage de fonctions, fan-out/fan-in (exécution en parallèle avec état), API http Async, surveillance, interaction humaine, agrégateur.
GCP Cloud Functions GCP Workflows GCP Workflows qui repose sur Apache Airflow permet de créer des workflows et de surveiller visuellement leur bonne exécution.
Source : Devoteam

Le principal facteur différentiant d'Amazon ? "Il se situe dans l'orchestration des fonctions", souligne Luc Germain. Sur ce terrain, AWS a recours aux Step Funcions qui permettent de bâtir des processus à partir de différentes fonctions Lambda. "Ils apportent une réelle aide pour créer des applications complexes via un découpage sous forme de Function as a Service. Ils gèrent le routage de la donnée entre les fonctions et la récupération d'erreurs", commente Gregory Delpu, lead architect au sein de l'ESN Sopra Steria. Luc Germain précise : "Sur le plan de l'ordonnancement, AWS affiche une interface plus mature sur laquelle on va pouvoir dessiner son workflow d'orchestration de fonctions par glisser-déposer."

Un bus d'évènements sans serveur

Autre avantage du cloud d'Amazon : La présence d'un bus d'évènements sans serveur, baptisé Amazon EventBridge. "La gestion des versions est aussi un point fort d'AWS", insiste Luc Germain, et Mathieu Bonnet, solution architect du pôle AWS du Cloud Center of Excellence de Sopra Steria, d'ajouter "En termes de déploiement, le service d'Amazon sera capable de router vers différentes versions d'une même fonction tout en exécutant des versions différentes selon les environnements."

Dernier point de différentiation côté Amazon : le service AWS Appsync qui permet de gérer l'invocation d'API en se basant sur le langage GraphQL. "Il s'interface entièrement avec Lambda. Ce qui permet, par le biais de fonctions, d'aller interroger des applications SaaS externes, par exemple SAP ou Salesforce...", égraine Luc Germain.

Functions as a Service : les langages supportés
Service Langages supportés Utilisation de langage tiers
AWS Lambda C#, Go, Java, Node.js, PowerShell, Python, Ruby Oui, via le déploiement de packages personnalisés ou l'utilisation des services AWS Lambda Layers.
Azure Functions C#, F#, Java, Node.js, PowerShell, Python, TypeScript Oui, via les gestionnaires de personnalisation Azure Functions.
GCP Cloud Functions C#, F#, Go, Java, Node.js, Python, Ruby, Visual Basic Oui, via l'utilisation d'image docker customisés.
Source : Devoteam

AWS dispose par ailleurs du plus large réseau de zones cloud en frontière de réseau. Une aubaine en vue d'exécuter les fonctions au plus proche de l'utilisateur. "Cela permet de bénéficier d'une plus faible latence", rappelle Mathieu Bonnet. En aval, AWS se détache également sur le monitoring des fonctions et les logs générés en vue de maîtriser leur exécution dans le temps.

Service Type de souscription au service Commentaires
AWS Lambda General Facturation et utilisation à la demande en fonction des déclenchements.
Provisioned Concurrency Réservation d'un nombre d'instances minimum disponible tout le temps pour éviter les phénomènes de cold start*.
Azure Functions Consumption Facturation et utilisation à la demande en fonction des déclenchements.
Premium Adaptation de la puissance en fonction de la charge demandée. Possibilités d'avoir des services s'exécutant en permanence.
GCP Cloud Functions Dedicated Instance réservée permettant de maitriser les temps d'exécution et les coûts des instances Azure Functions
General Facturation et utilisation à la demande en fonction des déclenchements
Cold start* : temps d'initialisation / réveil d'une fonction serverless pouvant prendre jusqu'à 5 seconde (quel que soit l'hyperscaler)
Source : Devoteam

"Sur le front du Function as a Service, il est important, aux côtés de l'orchestration, du management de version et du réseau, de pouvoir accéder à l'ensemble des fonctionnalités sous forme d'infrastructure as a code, mais aussi de pouvoir factoriser des éléments d'une fonction à l'autre", complète Mathieu Bonnet. Un ensemble de fonctionnalités toutes proposées par le cloud d'Amazon.