Architectures serverless : pourquoi les adopter ?

Ce type d’architecture peut être uniquement mis en place sur les plateformes de services Cloud comme Azure, Amazon ou Google. La seule contrainte est donc dictée par le choix dudit fournisseur.

Qu’est-ce qu’une architecture serverless ?

L’idée est simple : tels des LEGO, il va falloir utiliser ou construire des briques élémentaires. Leur agencement va définir une solution sans serveur, autrement dit « serverless ».

Pour concevoir ces briques, il faut se concentrer sur l’écriture du code pour répondre à un besoin spécifique. Les équipes de développement ne vont pas avoir à se soucier de l’hébergement ou de l’infrastructure, gérés par un fournisseur de service Cloud. En effet, ce type d’architecture peut être uniquement mis en place sur les plateformes de services Cloud comme Azure, Amazon ou Google. La seule contrainte est donc dictée par le choix dudit fournisseur.

Le processus est très simple : les équipes vont pouvoir programmer une fonction ou une méthode contenant du code. Il ne sera pas nécessaire de compiler ou packager une application. Le code sera en effet directement déployé chez le fournisseur de service. Ensuite, il sera exécuté en fonction d’événements particuliers qui auront lieu sur la plateforme.

Par exemple, un utilisateur va envoyer une image qui sera déposée dans un stockage dédié. Une fois l’envoi terminé, une fonction va se déclencher pour redimensionner l’image aux formats adaptés à son utilisation sur vos différentes applications.

Chacune des fonctions doit être unitaire.

L’approche de conception est très similaire à une approche microservices.

Quels sont les avantages du serverless ?

L’avantage principal de ce type de solution serverless  est l’adaptabilité. La solution s’adapte directement à la charge de l’utilisation. Dès qu’un événement se produit, les ressources sont provisionnées pour traiter l’événement. De plus, les coûts se trouvent optimisés. Certains services, comme les fonctions (Azure Function, Amazon Lambda), sont calculés à la milliseconde d’exécution ou encore à la charge mémoire utilisée. En résumé, si rien ne se produit sur la plateforme, aucun coût n’est déclenché.

Serverless versus microservices ?

La façon de concevoir les solutions serverless s’appuie sur les méthodes de conception de microservices. Dans ce cas, comment choisir entre une implémentation par conteneur et des briques serverless ?

L’argument principal en défaveur des architectures serverless est leur adhérence avec le fournisseur de services Cloud. Si ce critère est un facteur de décision important, il est préférable d’opter pour une approche entièrement microservices s’appuyant sur des conteneurs. Ceux-ci pourront être déployés dans n’importe quel contexte d’hébergement.

Cependant, les deux approches sont entièrement compatibles. Il est possible d’implémenter une application à l’aide de microservices et une petite partie seulement, sera implémentée à l’aide de briques serverless. C’est notamment avantageux si une méthode d’une API est particulièrement sollicitée ou doit s’adapter à des pics de charge imprévisibles.

En conclusion, les briques serverless permettent de construire des solutions complètes, en s’appuyant ou non sur des parties déjà existantes d’applications. L’avantage pour le client sera d’optimiser au mieux ses coûts en s’adaptant à son usage.