Démystifier le Serverless
Mais qu’est-ce qu’est le Serverless dont on entend de plus en plus parler dans le monde de l’IT ces derniers temps ? Une nouvelle invention qui permettrait de développer sans serveur ? Si ce terme vous fait peur, ou que vous n’y connaissez rien, nous sommes ici pour vous aider à mieux comprendre en quoi consiste le Serverless. Et peut-être que comme de nombreuses entreprises, cette façon de faire de l’informatique vous aidera dans vos futurs projets.
Avec le Serverless, le développeur active du code sans se soucier de l’infrastructure
- - Laurent Grangeau (Sogeti)
Tout d’abord, il est important de noter que le Serverless n’est pas une nouvelle offre de Cloud, mais bien un nouveau concept d’architecture. C’est une autre manière de consommer et de facturer les ressources du cloud. Il y a deux types de Serverless, qui se chevauchent l’un l’autre.
Tout d’abord il y a le Serverless qui sert à décrire des applications incorporant de manière significative ou complète des applications et des services tiers hébergés dans le cloud dans le but de gérer la logique et l’état du serveur. En général ce sont des applications de « client enrichi » de type Backend as a Service (BaaS).
Le deuxième sens, celui sur lequel nous allons ici parler, peut également comprendre des applications pour lesquelles le code est toujours écrit par le développeur de l’application, mais contrairement aux architectures traditionnelles, il s’exécute à la suite d’un événement éphémère et est géré par un fournisseur externe à l’entreprise. On parle ici de Function as a Service (FaaS).
BaaS et FaaS sont liés par leurs caractéristiques (aucune gestion de ressources notamment) et peuvent être utilisés fréquemment ensemble.
A quoi le Serverless sert-il ?
Le Serverless possède quatre traits caractéristiques :
- - On active du code sans se soucier de l’infrastructure et de son dimensionnement.
- - Le provisionning est dynamique. C’est-à-dire que c’est la plateforme qui active les ressources requises en fonction de l’usage fait.
- - La facturation se fait à l’utilisation. C’est-à-dire que vous payez selon le temps d’exécution.
- - Logiquement, la fonction du Serverless est activée en fonction d’un événement déclencheur.
Nous l’avons vu, les serveurs ne disparaissent pas. En revanche, l’entreprise qui fait appel à ce genre de solution ne s’occupe plus de cette problématique-là. Elle active son code, et c’est le fournisseur, externe, qui lui fournit les serveurs et le bon dimensionnement de ceux-ci. De cette façon, le développeur ne se soucie que de son code, pendant que le fournisseur se concentre sur chaque requête individuelle ou besoin puis s’y adapte automatiquement.
Avantages et inconvénients du Serverless
Le Serverless sert souvent en réponse à une action assez courte dans le temps. L’avantage numéro un de cette nouvelle façon de faire du code est sans aucun doute la facturation. Par exemple entre deux appels à un service, il n’y a pas besoin que celui-ci soit actif. Ici l’utilité du Serverless prend tout son sens puisque cela permet de ne pas faire gonfler les coûts. Autre avantage non-négligeable c’est la scalabilité du service. Il se met à l’échelle selon vos besoins et votre utilisation.
Néanmoins comme toute nouvelle technologie elle apporte aussi son lot d’inconvénients. L’un des plus importants est la dépendance que cela crée avec le fournisseur de serveur. Comme en plus, chaque fournisseur a son propre langage, et qu’il n’existe pas ou peu de passerelle pour passer de l’un à l’autre, c’est un élément qui peut compliquer certaines mises en situations. Autre petit souci, ce sont des actions qui peuvent être espacées dans le temps, et il n’est pas rare qu’il y ait une latence au départ de son exécution. Heureusement certains outils peuvent aider à corriger cela. Enfin, la durée d’exécution de la FaaS est limitée dans le temps chez les fournisseurs. Ce qui rend son utilisation inadéquate pour des traitements de gros fichiers ou bien de la manipulation de vidéos.
La conclusion tient en ses quelques mots de Julien Corioland (Software Engineer-Microsoft):
Le Serverless est bien adapté à du code qui s’exécute en réaction à un événement qui survient de manière peu fréquente. Y recourir pour des applications plus « permanentes » ne permettra pas de s’y retrouver. L’intérêt du Serverless est ailleurs, dans sa capacité à exécuter du code activé par intermittence avec un coût très maîtrisé et en faisant abstraction totale de l’infrastructure.