AWS Lambda est une plateforme de calcul serverless orientée événements qui exécute du code en réponse à des événements tout en prenant en charge l’administration du back-end et l’infrastructure nécessaires à l’exécution du code.
Dans cet article, nous explorons AWS Lambda, son fonctionnement, ses concepts, ses avantages et ses cas d’utilisation.
Qu’est-ce que le calcul serverless ?
Le calcul serverless est un moyen de fournir des services back-end à la demande. Les fournisseurs serverless permettent aux utilisateurs d’écrire et de déployer du code sans que ceux-ci aient à se charger de l’infrastructure sous-jacente.
Les tâches de gestion et d’exploitation de l’infrastructure cloud du back-end relèvent de la responsabilité du fournisseur cloud. Elles comprennent la mise à l’échelle, le provisionnement, l’application des correctifs et la planification.
En savoir plus : Qu’est-ce que l’architecture serverless ?
Qu’est-ce qu’AWS Lambda ?
AWS Lambda est un service de calcul qui permet d’exécuter du code sans provisionner ni gérer de serveurs. Grâce à une infrastructure de calcul caractérisée par une haute disponibilité, Lambda exécute le code et assure l’administration des ressources de calcul.
Lambda gère automatiquement la mise à l’échelle, la maintenance des serveurs et des systèmes d’exploitation, le provisionnement de la capacité, ainsi que la surveillance et la journalisation du code.
Comment cela fonctionne-t-il ? Vous fournissez votre code dans un langage pris en charge par Lambda. Lambda exécute votre fonction après que vous avez regroupé votre code dans des fonctions Lambda. Le code n’est exécuté que lorsque cela est nécessaire, et la mise à l’échelle est automatique.
Les utilisateurs ne paient que le temps de calcul qu’ils consomment. Les fonctions Lambda peuvent être appelées via l’API Lambda. Elles peuvent également être exécutées en réponse à des événements provenant d’autres services AWS.
Termes AWS Lambda à connaître
AWS Lambda comporte de nombreux termes à connaître pour utiliser le service. Les voici :
- Fonction : ressource pouvant être invoquée pour exécuter du code dans Lambda, une fonction contient le code qui traite les événements transmis à la fonction.
- Environnement d’exécution : il fournit un environnement propre à un langage qui s’exécute dans un environnement d’exécution. L’environnement d’exécution transmet les événements d’invocation et les réponses partagés par Lambda et la fonction.
- Déclencheur : les déclencheurs sont des ressources ou des configurations qui invoquent une fonction Lambda. Ils comprennent les services AWS pouvant être configurés pour invoquer une fonction.
- Couche : les couches Lambda constituent un mécanisme de distribution pour les différentes dépendances des fonctions. Elles offrent un moyen adapté de conditionner les bibliothèques et autres dépendances utilisables avec les fonctions Lambda.
- Événement : un événement est un document au format JSON contenant les données à traiter par une fonction Lambda. L’appel d’une fonction détermine la structure et le contenu d’un événement.
- Concurrence : ce terme désigne le nombre de requêtes qu’une fonction traite à un moment donné.
En savoir plus : Architecture serverless : quels sont ses avantages et ses défis ?
Avantages de Lambda
Mise à l’échelle continue
AWS Lambda exécute en parallèle le code déclenché par les événements, en traitant chaque déclencheur individuellement et en adaptant précisément la mise à l’échelle à la charge de travail. La mise à l’échelle peut aller de quelques requêtes par jour à plusieurs centaines de milliers de requêtes par seconde.
Aucun serveur
Lambda élimine les responsabilités liées aux serveurs pour l’utilisateur. Il exécute le code sur une infrastructure tolérante aux pannes, hautement disponible et couvrant plusieurs zones de disponibilité dans une région AWS.
AWS Lambda prend en charge la maintenance, l’administration et l’application des correctifs de l’infrastructure, tout en offrant des fonctions intégrées de journalisation et de surveillance.
Un écosystème riche
Lambda s’intègre à de nombreux services AWS afin de fournir aux développeurs un écosystème précieux pour créer des applications serverless.
Grâce à AWS Serverless Application Model (SAM), les développeurs peuvent créer des applications serverless et les intégrer à des IDE comme AWS Toolkit for Visual Studio, AWS Cloud9, PyCharm, IntelliJ, et bien d’autres. AWS Serverless Application Repository permet aux développeurs de découvrir, déployer et publier des applications serverless.
Moderniser les applications grâce à l’IA
Avec Lambda, les utilisateurs peuvent intégrer l’intelligence artificielle à leurs applications en utilisant des fonctions dotées de modèles d’apprentissage automatique préentraînés. Une seule requête d’API peut effectuer une analyse vidéo, une classification d’images, une conversion de la parole en texte et du traitement du langage naturel, entre autres opérations.
Innovation et productivité
Lambda permet aux équipes de programmation d’une organisation de se concentrer sur l’innovation et le développement de la logique métier, puisque Lambda prend en charge la gestion de l’infrastructure. La libération de ces ressources contribue également à améliorer la productivité.
En savoir plus : Qu’est-ce qu’Amazon S3 ? Amazon Simple Storage Service
À qui s’adresse ce service ?
Toute personne cherchant une solution pour héberger la logique back-end de son site web
Lambda est particulièrement utile pour héberger la logique back-end d’un site web que vous créez, car vous pouvez appeler votre fonction Lambda via HTTP au moyen d’Amazon API Gateway. API Gateway peut transférer la requête à Lambda après que votre client web a invoqué l’API.
Toute personne dont l’application traite des données volumineuses en temps réel
Lorsque votre application doit traiter d’immenses volumes de données entrantes en continu, il peut être inefficace de déplacer les données vers un stockage temporaire afin de les traiter ultérieurement.
Selon votre cas d’utilisation, l’envoi d’un flux de données en temps réel vers une application AWS Lambda peut vous permettre de garder la maîtrise des tâches essentielles en temps réel sans ajouter de latence à l’ensemble de votre application.
Les équipes souhaitant effectuer une analyse des journaux à la volée
Avec Lambda, les utilisateurs peuvent créer des fonctions Lambda pour examiner les fichiers journaux d’Amazon CloudWatch ou CloudTrail. Lambda peut vérifier les journaux à la recherche d’entrées et d’événements spécifiques au moment où ils se produisent, puis utiliser Amazon Simple Notification Service (SNS) pour envoyer des notifications.
Les utilisateurs peuvent également appeler les points de terminaison d’API d’autres systèmes, tels que Slack et Zendesk, afin d’implémenter facilement des mécanismes de notification personnalisés.
Toute personne dont l’application ou le site web doit appeler des services externes
Le code de votre application ou de votre site web n’a pas besoin de gérer les détails des requêtes et des réponses lorsque vous devez demander des services à un fournisseur externe, car cela constitue l’une des causes de latence des services web.
L’envoi de requêtes à une application exécutée sur Lambda n’empêche pas votre application principale de fonctionner pendant qu’elle attend une réponse de la fonction Lambda, masquant ainsi les réponses lentes aux utilisateurs finaux.
Les développeurs créant des applications d’analyse
Vous pouvez utiliser Lambda lors de la création d’applications d’analyse et utiliser des tables DynamoDB pour stocker les données brutes. Lorsque vous modifiez les éléments des tables DynamoDB, vous pouvez utiliser les flux DynamoDB pour publier les événements de mise à jour des éléments dans les flux associés aux tables.
Des métriques personnalisées peuvent être générées en agrégeant les données brutes au moyen de fonctions Lambda.
À lire ensuite : Principaux fournisseurs IaaS : l’infrastructure en tant que service