Le Serverless, l’art de se passer des serveurs…

Le cloud, ce sont des millions de serveurs qui font tourner d’autres millions d’applications. L’extension de son cloud privé vers un cloud public est souvent réalisée en répliquant ce que l’on connaît déjà, à savoir monter des serveurs, y installer des logiciels et y faire tourner des applications. C’est le modèle de l’Infrastructure en tant que Service (IaaS). En s’éloignant de la gestion des systèmes d’exploitation et des logiciels, on arrive aux modèles Plateforme en tant que Service (PaaS) et Logiciel en tant que Service (SaaS). Dans le cas du IaaS et du PaaS, on conserve une forme de contrôle sur la plateforme logicielle sous-jacente, alors que dans le SaaS, on ne fait que consommer un service dont la gestion matérielle et logicielle est entièrement assurée par le prestataire du centre de données.

Une forme de SaaS a pris un essor important ces dernières années, il s’agit du serverles computing, ou informatique sans serveur, aussi appelé Fonction en tant que Service, principalement sous l’impulsion de développeurs d’applications. Ces derniers avaient besoin d’exécuter certaines fonctions de leurs applications sans franchement se casser la tête du matériel et du logiciel. L’important était de pouvoir réaliser un programme et de le faire exécuter.

Vous ne payez que ce que vous exécutez

Un des principaux avantages du serverless est de ne payer que ce que l’on utilise. C’est une des caractéristiques du cloud, au niveau d’une fonction d’une application. En effet, quand vous utilisez un serveur virtuel ou une application dans le cloud, ces derniers sont souvent facturés au mois. Si votre taux d’utilisation est faible, le ratio prix-coût d’utilisation est fort et l’avantage coût diminue. Avec le serverless, seul le temps machine est facturé. Ainsi, quelques minutes ou heures par mois d’exécution peuvent être plus économiquement avantageuses qu’un serveur ou une application immobilisée.

vintage adding machine

D’un point de vue de l’exécution du code, on peut y ajouter les coûts induits que vous n’avez plus : le matériel, le système d’exploitation, la maintenance, les dépendances matérielles et logicielles, les mises à jour, pour n’en citer que quelques-uns. Vous vous contentez d’exécuter ce que vous avez à exécuter et payez en conséquence.

Dans l’équation prix, on peut aussi ajouter celle de la proximité de l’utilisateur. Il est en effet possible d’exécuter le code au plus près de l’utilisateur afin de chercher à réduire la latence au maximum. Le code est alors répliqué automatiquement sur plusieurs centres de données afin de le rapprocher de l’utilisateur de l’application.

Tout, ou presque, est disponible en serverless

Tous les fournisseurs de services cloud se sont mis à la mode du serverless : d’Amazon avec AWS Lambda à Oracle avec Oracle Fn en passant par Microsoft avec Azure Functions, IBM et Google avec leur Cloud Functions respectives. Ajoutez-y une pincée de frameworks de développement avec Serverless Framework et vous avez un mélange parfait pour développer des fonctions applicatives qui s’exécutent dans le cloud sans avoir à se préoccuper de leurs sous-jacents matériels et logiciels.

Les bases de données s’y sont mises aussi. On pourrait imaginer de prime abord que gérer une base de données nécessite un peu de management bas niveau, mais en fonction des besoins applicatifs, il peut devenir économique et intéressant de se débarrasser des sous-jacents pour se focaliser sur le contenu, les données. Aurora chez Amazon, Azure Data Lake chez Microsoft ou Firebase chez Google sont des exemples de telles bases de données serverless.

Avantages et inconvénients

Si le serverless est devenu populaire chez nombre de développeurs, c’est surtout pour sa facilité d’implémentation et son faible coût. L’élasticité des fonctions est aussi à mettre en avant. Le système alloue dynamiquement les ressources nécessaires à leur montée en charge. C’est aussi dans cette élasticité que réside un des inconvénients du serverless.

Si votre fonction est peu fréquemment utilisée, le système peut la « scale down » et la latence risque d’augmenter à chaque fois que la fonction sera invoquée. Le débogage est souvent plus compliqué, particulièrement, quand il s’agit de comprendre et d’analyser des problèmes de performances, le système mettant de nombreuses couches d’abstraction.

Star Wars Stormtropper figurine on table

La sécurité et la confidentialité des données doivent être particulièrement bien pensées. Il est recommandé d’utiliser des comptes de services dont les droits sont strictement limités à l’exécution des fonctions. Cela rajoute aussi à la complexité de gestion et d’audit de l’application. Enfin, quand vous commencez à développer une fonction chez un prestataire, partez du principe qu’il sera très difficile, voire impossible, d’en changer. Vous devenez à la merci du bon vouloir de cette entreprise.

Une mode qui va durer

Pour avoir un peu utilisé Lambda pour certaines fonctions d’IA, je peux avouer que le serverless est assez bluffant. Il est en effet possible de développer des fonctions très puissantes en se focalisant uniquement sur le résultat et pas sur les ressources nécessaires pour y arriver. Quand vous combinez le serverless avec la puissance des frameworks et des containers, il devient possible de déployer des applications hautement scalables en quelques clics, en ne payant qu’une toute petite fraction du prix des ressources utilisées.

Il n’est dès lors pas étonnant que le serverless soit devenu populaire en quelques années et que tous les fournisseurs de services cloud s’y soient mis. Avec la mode des microservices, le serverless a de beaux jours devant lui. À vous de vous y mettre !

Photo Jordan Harrison, Alvaro Reyes et Liam Tucker sur Unsplash

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Fièrement propulsé par WordPress | Thème : Baskerville 2 par Anders Noren.

Retour en haut ↑

%d blogueurs aiment cette page :