Le Serverless c'est quoi ?

Les architectures Serverless font le buzz du moment, avec l’émergence de la conteneurisation et du DevOps, de nouvelles architectures ont vu le jour. Grâce à ce type de structure on se concentre davantage sur le code plutôt que sur le serveur. Grâce à une architecture Serverless l’utilisateur n’a pas à gérer la moindre infrastructure.

Aujourd’hui on parle de BaaS (Backend as a Service) et de FaaS (Function as a Service). Nous allons commencer par définir ces termes…

Le Backend as a Service est un modèle de service de cloud computing qui permet aux développeurs de connecter leurs applications aux services cloud via des interfaces de programmation d'applications (API) et des kits de développement de logiciels (SDK). Les fonctionnalités de BaaS incluent le stockage dans le cloud, les notifications push, le code serveur, la gestion des utilisateurs et des fichiers, l'intégration des réseaux sociaux, les services de localisation et la gestion des utilisateurs, ainsi que de nombreux services backend.

Le Function as a Service (FaaS) fait référence aux services de cloud qui permettent le développement et la gestion d'applications sans serveur. Cela signifie essentiellement que les utilisateurs de FaaS peuvent effectuer leur programmation (et d'autres tâches) sans avoir à gérer leurs propres serveurs. Les chaînes de code sont déclenchées par des événements, et sous-traitées à des serveurs distants capables d'exécuter les fonctions prévues.

Les technologies FrontEnd (React, Angular, Vue …) permettent de supprimer le besoin d’un serveur toujours présent. On n’a plus systématiquement besoin de faire une requête vers le serveur pour afficher une nouvelle page. Ainsi selon la façon dont est construite l’application, cela peut réduire considérablement les coûts. En effet avec une architecture Serverless on ne paie que ce que l’on consomme. Voilà comment Amazon explique son fonctionnement :


Ce que nous explique le schéma c’est que vous pouvez utiliser AWS Lambda pour exécuter du code en réponse à certains déclencheurs, tels que la modification de données, un changement d'état au niveau du système, ou encore une action effectuée par l'utilisateur. Lambda peut être activé directement par des services AWS comme S3 ou DynamoDB. Vous pouvez ainsi développer un large éventail de systèmes de traitement de données sans serveur en temps réel.



Les avantages d’une architecture Serverless

Le coût !

Le premier principe du Serverless c’est l’externalisation, bien que cela implique certains inconvénients que nous verrons ensuite. Notre service est mélangé avec de nombreux autres sur un ou plusieurs serveurs. Ainsi plus il y a de monde, moins cela coûte cher (pour le prestataire). Pour que la solution soir viable pour le prestataire, il faut un certain nombre de clients. Au final, le Serverless permet de partager les coûts d’un serveur et chacun l’utilise quand il en a besoin.

La scalabilité

L’élasticité du service est gérée par le fournisseur. Grâce à cette mise à échelle automatique, vous paierez exactement ce dont vous avez besoin ! Que ce soit le temps de calcul utilisé ou le trafic entrant… Selon vos besoins cela peut engendrer des économies énormes.

Les inconvénients d’une architecture Serverless

La dépendance …

Une fois que vous avez choisi votre fournisseur de service, vous êtes totalement dépendant de celui-ci. Avec AWS Lambda vous avez le choix de développer vos fonctions en Java, Node.js, C# et Python. Aucune spécification n’est sortie pour l’adoption d’un langage commun entre les fournisseurs. Ainsi une fois votre fournisseur choisi vous devez garder ce choix pour garantir une communication entre les services.



Il existe de nombreux autres avantages et inconvénients, nous les découvrirons au cours de l’utilisation du Serverless. Cet article se verra être complété.





Commentaires