Serverless computing : ce qui se cache derrière le modèle de Cloud computing moderne

Dans le secteur privé, mais aussi et surtout dans la sphère professionnelle, les transactions numériques se font de plus en plus souvent dans le Cloud. Divers fournisseurs se sont lancés dans la course aux solutions de services intéressantes et prometteuses. La description et la discrimination des différentes offres restent toutefois bien souvent obscures. Il en est par exemple ainsi pour la classification du serverless computing, un service encore très récent, désigné par les experts en tant que Function as a Service (FaaS). Bien que son nom puisse le laisser entendre, il ne s’agit en aucun cas de structures cloud sans serveur. Dans les sections suivantes, nous ferons la lumière sur cette nouvelle technologie.

Compute Engine
La solution IaaS idéale pour gérer vos charges de travail
  • vCPU aux coûts avantageux et cœurs dédiés performants
  • Sans engagement pour plus de flexibilité
  • Assistance par des experts 24h/24 et 7j/7 incluse

Qu’est-ce que le concept serverless ?

Le serverless computing (en français informatique sans serveur) ou serverless architecture est un modèle de Cloud computing permettant aux utilisateurs de créer et d’exécuter des applications ou processus sans entrer en contact avec le serveur sous-jacent. Bien que son nom le laisse supposer, un environnement Cloud de ce type est bel et bien doté d’un serveur. Toutefois, sa mise à disposition, son dimensionnement et sa gestion relèvent de l’entière responsabilité du fournisseur. L’approche serverless va donc plus loin que le modèle de « Platform as a Service » (PaaS), au sein duquel le développeur ou le client doit toujours interagir avec les serveurs via une API et doit fournir ou approuver lui-même les ressources.

Dans la mesure où ces tâches administratives deviennent superflues au sein d’une infrastructure de serverless computing, il est possible de se concentrer pleinement sur le développement et l’exécution du logiciel. Pour cela, il faut toutefois créer, outre le code du programme, des fonctions sans statut, contenant des instructions sur la manière dont un programme doit réagir à certains événements. Le code du programme peut ensuite être téléchargé et exécuté dans l’environnement du Cloud, avec les fonctions souhaitées (qui ne présentent aucun lien de dépendance avec l’infrastructure du fait de leur absence de statut). En raison du rôle élémentaire des fonctions, certains fournisseurs offrent leur service serverless sous le nom de « Function as a Service (FaaS) ».

Note

Les fournisseurs de serverless computing prennent la responsabilité de la disponibilité constante des ressources de serveur nécessaires et garantissent une sécurité intrinsèque maximale à leurs clients. La facturation a alors lieu selon le modèle pay-per-use, selon lequel les clients ne passent à la caisse que dans la mesure où ils ont réellement fait usage du service.

Comment fonctionne le serverless computing ?

Élément essentiel d’une serverless architecture, la gestion du matériel doit être réalisée par le fournisseur. Pour les utilisateurs, le seul défi doit être d’intégrer leurs logiciels ou leur logique et les fonctionnalités correspondantes dans les structures cloud qu’ils louent. L’activation de ces fonctions peut se faire de manière...

  • asynchrone à l’occasion d’événements
  • ou synchrone suivant le modèle serveur-client traditionnel.

La première variante offre l’avantage d’empêcher un couplage trop poussé des différentes fonctions et de maintenir les besoins en ressources à un niveau minimal sur la durée. Un exemple de fonction possible fondée sur un événement serait la création automatique d’une vignette lors du chargement d’une image. Suivant le processus de la version traditionnelle, le client doit systématiquement envoyer une demande spéciale au serveur pour ouvrir une fonction correspondante et créer l’affichage miniature.

À l’inverse d’une infrastructure de Platform as a Service, le fournisseur de serverless computing ne met pas à la disposition du client un environnement de travail durable pour la durée totale du processus, mais fournit ponctuellement, en temps réel, les ressources nécessaires pendant la période d’activation d’une fonction. En arrière-plan (masqués à l’utilisateur), des serveurs physiques et virtuels sont utilisés pour l’exécution des services serverless et des fonctions demandées.

Serverless architecture : aperçu des avantages et des inconvénients

Les infrastructures cloud traditionnelles permettent aux utilisateurs d’externaliser la gestion du matériel nécessaire. Elles exigent cependant bien souvent des dépenses considérables dans les domaines de l’administration et de la micro-gestion. Le serverless computing permet de réduire ces dépenses au minimum.

Le tableau suivant synthétise d’autres avantages, ainsi que les lacunes principales du concept serverless :

Serverless computing – Avantages Serverless computing – Inconvénients
Dimensionnement et administration des ressources nécessaires par le fournisseur L’accès aux machines virtuelles, au système d’exploitation et aux environnements d’exécution est verrouillé
Mise à disposition rapide des ressources en temps réel, même en cas de pointes de consommation et de croissance démesurée L’implémentation de structures serverless est très coûteuse
Les coûts facturés correspondent uniquement aux ressources utilisées Dépendance élevée par rapport au fournisseur (« effet de verrouillage ») - en cas de changement de fournisseur, toutes les fonctions fondées sur des événements doivent être réécrites par exemple.
Tolérance élevée aux erreurs, grâce à l’infrastructure matérielle flexible des centres de données du fournisseur Processus de surveillance et de débogage relativement compliqué, car il n’est généralement pas possible de procéder à des analyses approfondies des performances et des erreurs

Le serverless computing en pratique : où le principe serverless est-il utilisé ?

Le serverless computing est avant tout conçu pour l’échange à court terme de données d’applications Web et commerciales dans le Cloud. Dans la pratique, il ne s’agit pas de traiter des applications ou des séquences de code dans leur intégralité (la serverless architecture n’y est d’ailleurs pas du tout adaptée), mais bien de se concentrer sur un certain nombre de fonctions diverses. Cette approche est donc adaptée à la résolution de plusieurs scénarios, dont ceux répertoriés dans la liste suivante :

  • API Proxy : de nombreuses applications commerciales de première génération sont dotées d’API lentes et complexes (interfaces logicielles). Avec la serverless architecture et la passerelle API correspondante, vous pouvez créer une couche d’abstraction alternative pour y accéder via une REST API simple et faciliter ainsi l’accès à d’autres systèmes.
  • Serverless Backend : de plus en plus souvent, le serverless computing peut également être utilisé pour concevoir et exploiter la totalité des processus d’arrière-plan d’une application dans le cloud. Un tel scénario s’appelle aussi plus communément, Backend as a Service (BaaS).
  • Traitement de données (non) structurées : l’environnement commercial moderne ne saurait plus se passer des big data. L’infrastructure serverless s’avère être ici l’un de vos meilleurs alliés pour le traitement de ce type d’informations - c’est-à-dire le transcodage, le déplacement, la combinaison ou la manipulation de données structurées (JSON, XML, etc.) ou non structurées (images, audio, etc.).
  • Exécution de tâches conformément à un planning : Dans la plupart des cas, les fonctions ne sont pas seulement fondées sur des événements, elles peuvent également être exécutées selon un planning défini. Vous pouvez ainsi, par exemple, initier automatiquement le tri de vos bases de données ou encore la création de sauvegardes.
  • Intégration d’assistants linguistiques et d’agents conversationnels (chatbots) : La technologie serverless est aussi parfaitement adaptée à l’intégration d’assistants linguistiques numériques et d’agents conversationnels de type chatbots.
Cet article vous a-t-il été utile ?
Page top