Qu’est-ce que le serverless ?
Traditionnellement, pour déployer une application web, il faut un serveur. Ce qui n’est pas sans poser problèmes :
- Il faut fabriquer le serveur
- Il faut le maintenir le serveur en état de fonctionner
- Il faut maintenir le serveur à jour, au moins pour les mises à jour de sécurité
- Lorsque les besoins augmentent, il faut gérer l’ajout de ressources
- Lorsque les besoins diminuent, il faut les décommissionner
- Lorsque le serveur est obsolète, il faut le changer
Quelque soit la taille de l’entreprise, il faut du temps et des compétences pour gérer tous cela.
Le serverless consiste à fournir du code exécutable à l’hébergeur, et à le laisser s’occuper du reste :
- Pas de serveur
- Pas de ressources à installer et décommissionner
- Pas de mise à jour
- Pas de bibliothèque, de framework ou d’environnement de developpement à gérer
Il ne reste qu’à développer !
De plus en plus de services sont disponibles serverless, de l’intelligence artificielle à la base de données en passant par l’identification de l’utilisateur et la gestion du cache.
Trois fournisseurs mènent la course au serverless :
- Amazon, avec Amazon Web Services, qui a lancé les fonctions “lambda” en 2014
- Google, avec Google Cloud Platform, qui a lancé les fonctions “Google Cloud Functions” en 2016 (en “Alpha”)
- Microsoft, avec Azure, qui a lancé les fonctions “Azure Functions” en 2016
Ceci étant, on peut faire héberger ses applications chez l’un de ces fournisseurs sans faire du serverless.
Par exemple, Google Compute Engine ou AWS EC2 permettent de gérer son parc de serveur en se libérant des contraintes matérielles, mais l’on conserve la gestion du système d’exploitation, des mises à jours, des environnements d’execution, etc.
Quels sont les avantages du serverless ?
La suppression des taches d’administration des serveurs n’est pas le seule avantage du serverless. J’en vois au moins 4 autres :
-
Les gens qui s’occupent des serveurs ont les meilleurs outils et les meilleures procédures qui soient. Nous parlons de géants mondiaux dont les compétences en informatiques ne sont plus à prouver. Et ce sont leurs équipes qui maintiennent leur parc. Peu d’entreprise pourront financer des collaborateurs à ce niveau de compétences et aussi nombreux pour s’occuper de leur parc de serveurs.
-
La remarque est la même pour la sécurité des machines, des systèmes d’exploitation et des environnements d’exécution : qui est capable de sécuriser et surtout de garder sécurisé un serveur mieux que Amazon/Google/Microsoft ?
-
Le serverless pollue moins : En facturant à l’usage et en ayant le contrôle total de l’infrastructure, les opérateurs n’ont qu’un objectif : garder le nombre de serveur le plus bas possible par rapport au besoin, et limiter au maximum la consommation d’électricité. Cela leur permet de réduire le coût de fonctionnement du parc et d’augmenter leurs bénéfices. Pour être rentables, ils doivent être économes, surtout à cette échelle.
Un article de blog récent publié par Jeff Barr explique
Il est important d’utiliser moins de serveurs et de les alimenter de façon plus efficace.
Un fournisseur de cloud à grande échelle classique a une capacité d’utilisation des serveurs d’environ 65 % par rapport à une utilisation sur site de 15 %.
Un centre de données sur site classique est 29 % moins efficace en terme d’utilisation électrique qu’un fournisseur de cloud à grande échelle, qui utilise des systèmes de refroidissement et des équipements optimisés en fonction des charges de travail.
En combinant moins de serveurs utilisés et plus de serveurs à faible consommation d’énergie, les clients n’ont besoin que de 16 % de l’énergie nécessaire aux infrastructures sur site. La quantité d’énergie requise est ainsi réduite de 84 %.
https://aws.amazon.com/fr/about-aws/sustainability/
- Le coût de l’hébergement est bien plus faible. Le parc informatique étant mutualisé, tous les coûts de possessions le sont aussi. Les opérateurs cloud réalisent des économies d’échelle importante et en font profiter leurs clients pour rester concurrentiels.
De plus la facturation se fait à l’usage :
-
Si mon site n’a aucune visite, je ne paie presque aucun coût pour le trafic.
-
Si je n’ai pas de données en base, je ne paie pas d’espace disque.
-
etc. De plus, pour encourager l’adoption de ce mode de consommation, la plupart des produits bénéficient d’une offre gratuite. Par exemple, les 5 premiers giga-octets stockés dans Amazon S3 sont gratuits.
Exemple de coûts pour le site www.labanqui.se :
-
S3 :
- Le site pèse moins de 5 Go, nous ne payons donc rien. Au dela nous payerions 0,023 $ par Giga supplémentaires
- grace à CloudFront et son cache, nous réalisons moins de 20000 lectures par mois, nous ne payons donc rien. Au delà nous payerions 0,0004$ pour 1000 requêtes supplémentaires.
-
Cloudfront
- Nous générons moins de 50 Go de transfert de données sortantes, nous ne payons donc rien. Au delà nous payerions 0.085 $ par Giga supplémentaires
- Nous recevons moins de 2 000 000 requêtes par mois, nous ne payons donc rien. Au dela nous payerions 0.0090 $ par 10 000 requêtes supplémentaires.
-
Route 53
- Nous utilisons une “zone hébergée”, nous payons donc 0,50 $
- Puisque nous utilisons Cloudfront, nous ne sommes pas facturés des requêtes dans Route 53
-
CloudFormation
- Nous utilisons moins de 1000 opérations par mois, nous ne payons donc rien. Au dela, nous payerions 0,0009 $ par opération supplémentaires.
-
CodeCommit
- Nous utilisons moins de 5 utilisateurs, nous ne payons donc rien. Au delà, nous payerions 1 $ par utilisateur supplémentaires.
-
CodeBuild
- Nous utilisons moins de 100 minutes de génération par mois, nous ne payons donc rien. Au delà, nous payerions 0.005 $ par minutes supplémentaires.
-
CodePipeline
- Nous utilisons 1 pipeline, nous ne payons donc rien. Au delà, nous payerions 1 $ par pipelines supplémentaires.
Au total, nous payons 0,50 $ HT par mois pour un site sécurisé dont toutes les pages s’affichent en moins de 400 ms.
En résumé :
Le serverless c’est la promesse d’un hébergement moins cher et moins polluant. Il est probablement plus complexe de faire du serverless que de faire du développement traditionnel, mais le jeu en vaux largement la chandelle pour votre performance et pour la planète.
Mais la plus grande difficulté reste psychologique : il faut accepter de ne pas avoir un cout d’hébergement fixe, qu’il soit lié à l’utilisation du site.