Il y a quelques années, le monde de l'informatique a découvert la conteneurisation (Docker, Kubernetes,Chef ...) et de manière générale le mouvement DevOps, visant à aligner le système d'information sur les besoins de l'entreprise. S'accompagne à ces changements l'émergence de nouveaux types d'architectures. C'est ainsi que les architectures Microservices sont nées, et que les architectures dites Serverless sont en train de pointer le bout de leur nez.
Buzzword de l'année 2017, nous allons voir ensemble qu'est ce qui ce cache derrière ce terme, qui sont les grands acteurs actuels et quels sont les avantages et inconvénients de ce type d'architecture.
Les architectures Serverless, traduisons sans serveur, correspondent à des applications qui dépendent grandement de services tiers (Baskend as a Service
) ou sur des conteneurs sans état pouvant être mis à l'échelle de manière transparente (Function as a Service
).
L'objectif premier de ce paradigme d'architecture est de réduire au maximum la compléxité (humaine et matériel) pour ainsi ne payer que ce qui est réellement consommé en puissance de calcul, stockage et bande passante. Ce nouveau mode de facturation a un petit nom : le pay as you go
.
Le mot Serverless peut porter à confusion, car derrière tout cela, il y a tout de même des serveurs et du matériel pour faire fonctionner nos belles applications! Il faut comprendre en fait qu'une entreprise qui met en place une architecture Serverless externalise ses processus et son matériel chez un fournisseur pour se focaliser complétement sur les aspects métiers de ses applications.
On ne peut donc pas qualifier de Serverless des infrastructions PaaS
comme Heroku car la mise à l'échelle n'est pas transparente sur ce type d'architecture.
Attention aussi, ce n'est pas la solution à tout les cas d'usage! La première étape dans la construction d'un projet est de bien identifier les cas métier, et de ceux-ci en découlent l'infrastructure à mettre en place. Et non pas l'inverse!
A l'heure actuelle, et comme on peut s'en douter, les principaux fournisseurs de ces services BaaS
sont les grands acteurs du Cloud, à savoir Amazon Web Services (le précurseur), Google Cloud Platform et Microsoft Azure. Mais d'autres solutions tentent d'émerger dans cette écosystème (comme Iron.io qui offre une solution FaaS
open source et fonctionnant chez n'importe quel fournisseur Cloud).
Ci-après un tableau comparatif des principaux composants BaaS
de nos amis les fournisseurs 'ricains.
Amazon Web Services | Google Cloud Platform | Microsoft Azure Services | |
---|---|---|---|
Hot Storage | Amazon S3 | Google Cloud Storage Standard | Azure Block Storage |
Cold Storage | Amazon Glacier | Google Cloud Storage Nearline | Azure Cool Block Storage |
Compute (FaaS) | AWS Lambda | Google Cloud Functions | Azure Functions |
Database | Amazon DynamoDB | Google Cloud Datastore / Google Cloud Bigtable | Azure DocumentDB |
En encore pleins d'autres...
Commençons par parler des promesses des architectures Serverless.
FaaS
est automatique et transparente. Elle est gérer totalement par le fournisseur et permet une facturation au plus prés de la charge consommée par le client (temps de calcul). Selon les cas d'usages et de l'état de maturité du projet, cela peut résulter dans des économies non négligeables.PaaS
ou IaaS
(Infrastructure as a Service) reste peu significative sur cet aspect là.Les architectures Serverless proposent une approche s'appuyant notamment sur des services "clés en main" pour fournir une abstration de la partie gestion de l'infrastructure. Elle se veut plus simple et promet une réduction des coûts aussi bien d'infrastructure qu'opérationnels. Toutefois cette technologie est encore jeune et il lui faudra encore un peu de temps pour être mis en place dans les entreprises qui peinent déjà pour un grand nombre à suivre le virage du Cloud et de la containeurisation.
Pour aller plus loin, je vous recommande l'article de Mike Roberts qui explique très bien, et en détail cette notion d'architecture Serverless.
Sources ayants inspirées cet article :