Qu'est-ce que le Serverless Computing à l'exemple d'AWS Lambda ?

Auteur

Tags

Cloud

Le marché du Cloud ne cesse de croître et offre aux clients un large éventail de services et de possibilités différentes. Parmi les autres modèles de Cloud computing, tels que Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS) et Software-as-a-Service (SaaS), le concept Function-as-a-Service (FaaS) est probablement le plus connu. Le FaaS est également appelé Serverless Computing (informatique sans serveur). Ces termes sont brièvement expliqués dans notre article de blog "Un regard dans les coulisses - services en Cloud".

Mais que se cache-t-il derrière le terme "serverless computing" et quelles en sont les utilisations ? Notre article ne se contente pas seulement de répondre à ces questions, il met également en lumière un cas d'application concret du Serverless Computing à l'exemple d'AWS Lambda. Cette plateforme offre la possibilité d'exécuter du code sans infrastructure sous forme de serveur ou de cluster.

Qu'est-ce que l'informatique sans serveur et pourquoi l'utilise-t-on ?

L'informatique sans serveur décrit la pratique consistant à offrir des services back-end sur une base per-use. Cela signifie que les applications ne sont lancées que lorsqu'elles sont nécessaires. Le principal avantage de ce modèle est que les développeurs n'ont pas à se soucier de l'infrastructure sous-jacente. Au lieu de cela, ils peuvent se concentrer sur la définition de la logique, l'écriture du code et son déploiement, tandis que le fournisseur serverless s'occupe du reste. (source)

Le fournisseur Cloud est responsable de la gestion de l'infrastructure Cloud ainsi que de la mise à l'échelle de l'application. Cela comprend également la gestion du système d'exploitation et du système de fichiers. Les tâches du fournisseur comprennent également les correctifs de sécurité, l'équilibrage de charge, la gestion de la capacité, la mise à l'échelle, la journalisation et la surveillance.

Quels sont les avantages de l'informatique sans serveur en général ?

L'informatique sans serveur présente en principe plusieurs avantages. D'une part, il est souvent extrêmement rentable, car les consommateurs ne doivent pas payer pour des ressources inutilisées telles que l'espace mémoire ou le temps CPU non utilisé. En outre, la mise à l'échelle des applications est triviale si l'on écrit du code backend et des fonctions qui remplissent chacune un objectif précis. Il est ainsi possible, par exemple, de lancer plus rapidement une application sur le marché et de procéder à des modifications de code. Et ce, sans que cela ne pose de problèmes ou ne prenne beaucoup de temps. (source)

Les principaux avantages sont donc : La rentabilité, une grande évolutivité, l'agilité et le gain de temps qui en découle.  

Qu'est-ce que AWS Lambda ?

Bien que les termes Serverless et Function-as-a-Service (FaaS) soient souvent considérés comme synonymes, FaaS est en réalité un sous-ensemble de Serverless, car il se concentre principalement sur le paradigme de l'informatique pilotée par les événements. (source)

AWS propose une solution FaaS appelée AWS Lambda, qui permet aux utilisateurs d'exécuter du code sans avoir à configurer ou à gérer des serveurs. Il s'agit d'une plateforme sans serveur et pilotée par des événements. Dans laquelle on ne paie que pour ce qui est utilisé. Ou, en d'autres termes, pour le temps de calcul consommé.
Un lambda est généralement un bloc de code ou une fonction court(e) et simple qui peut renvoyer un résultat et exécuter tout type de tâche de calcul. AWS Lambda prend en charge différents langages de programmation, dont Java, Go, Python, Node.js, PowerShell et d'autres, et vous permet de développer et de publier du code sous forme d'image de conteneur ou de fichier .zip. (source)


Lors du développement et de l'exécution de code lambda, quelques étapes typiques doivent être suivies :

Étape 1 : Télécharger le code vers AWS Lambda.
Étape 2 : utilisation de certains services AWS pour créer des déclencheurs lambda.
Étape 3 : Exécuter le code lorsqu'il est déclenché.

L'insertion, la mise à jour ou la suppression de données dans les tables Dynamo DB, la recherche de l'historique des journaux dans CloudTrail, l'ajout d'entrées, la modification d'objets S3, la réception de notifications SNS d'Amazon et une multitude d'autres événements peuvent déclencher des fonctions AWS Lambda. (source)

Quels sont les avantages d'AWS Lambda ?

  • Paiement à l'utilisation
    (seules les fonctions de calcul et le trafic réseau sont facturés)
  • Infrastructure entièrement gérée
    (pas de soucis pour les serveurs ; l'accent est mis sur la logique du code)
  • Mise à l'échelle automatique
    (les instances sont créées à la demande)
  • D'autres produits AWS sont étroitement intégrés.
    (il est possible de créer des applications fonctionnellement complètes).

Quelles sont les limites d'AWS Lambda ?

  • Temps de latence possible entre l'événement et le début de l'exécution de la fonction.
    (il existe des méthodes pour contourner ce problème)
  • Une fonction Lambda en cours d'exécution expire au bout de 15 minutes.
    (Lambda ne devrait généralement pas être utilisé dans ces situations).
  • Limites de mémoire - la RAM et la taille des paquets de code sont limitées.
  • Pas toujours rentable
    (si la charge de l'application augmente, les coûts augmentent proportionnellement) (source)

En résumé, les fonctions lambda d'AWS permettent aux développeurs de se concentrer sur le produit principal et la logique commerciale. Il n'est plus nécessaire de se préoccuper de tâches telles que la gestion du contrôle d'accès au système d'exploitation. Mais également le patching du système d'exploitation, le redimensionnement, le déploiement, la mise à l'échelle et d'autres défis de gestion. (source)

C'est un avantage général des services et des solutions en Cloud. Les logiciels Libelle vous permettent de profiter de l'un des plus grands avantages du Cloud : Une flexibilité maximale pour vous et les ressources que vous utilisez à un niveau global. Ainsi, nos solutions logicielles telles que Libelle DataMasking (AWS/Microsoft Azure), Libelle SystemCopy (AWS/Microsoft Azure) et Libelle CloudShadow (IBM Cloud) sont à votre disposition sur les différents marchés du Cloud.

Vers tous les articles