Qu'est-ce que l'architecture "Serverless"?




Déployer une application peut s'avérer compliqué. Le déploiement des serveurs, leurs maintenances peuvent vite engendrer des difficultés et engendrer des coûts importants. C'est là qu'intervient l'architecture  dite "Serverless".

L'architecture Serverless est un modèle de cloud computing où l'utilisateur peut créer des applications sans se soucier de l'aspect infrastructure, notamment des serveurs (d'où le terme serverless).

Cela ne signifie pas pour autant que pour fonctionner, une application ne nécessitera pas de serveurs. Simplement, pour développer une application, le développeur aura juste à fournir son code et le fournisseur cloud s'occupera de l'aspect infrastructure (déploiement de l'application sur les serveurs, maintenace, mises à jour...).

                                        
Particularités:

Avec l'architecture Serverless, le code est découpé en fonctions qui ont un rôle spécifique au sein de l'application, on les appelle Faas(Functions as a Service).


Une autre des particularité est son système de facturation. Celui-ci est basé sur le temps réel d'execution du code et permet au client de ne payer que les ressources utilisées (s'il n'y a pas de traffic, le client ne paie rien).


 Principaux acteurs du marché:



Les 3 principaux fournisseurs sont :

  1. AWS Lambda (amazon web services), crée en 2014.
  2. Microsoft Azure, depuis 2016.
  3. Google cloud Functions.
Tous trois possèdent des spécificités qui leurs sont propres (langage supporté, tarifs...), mais ont en commun d'être payant.
Il existe cependant des solutions open sources sous forme de frameworks tel Fn présenté par Oracle qui s'appuie sur Docker et supporte le langage JAVA. Fn a la particularité de pouvoir tourner sur différents cloud afin d'éviter la dépendance à un seul fournisseur de cloud computing.


Avantages / Inconvénients de l'architecture Serverless:

Même si elle dispose de nombreux atouts, l'architecture Serverless possède quelques inconvénients:

Avantages :
  • L'impact écologique: Les ressources des serveurs non utilisées sont allouées à d'autres appplications contrairement aux traditionnels Data Center où les serveurs tournent continuellement.
  • La gestion des serveurs est affranchie pour les entreprises clientes (pas de déploiement,pas de maintenance).
  •  Incitation à l'optimisation du code: plus le code est rapide, moins important sera le coût.
  • Meilleur sécurisation du code.

 
Inconvénients : 
  • La dépendance à un fournisseur de services : une fois choisi, pour garantir une bonne communications entre les services, il faut conserver le fournisseur.
  • la durée d'exécution des applications: limitée dans le temps, elle réduit le nombre de fonctions adaptées à l'architecture Serverless.
  • Le modèle de facturation: Même s'il possède des atouts, il ne permet pas au client de pouvoir se projeter sur un coût en cas de pics d'utilisation.


Julien Plumyoën.



Sources:
  •  https://www.journaldunet.com/solutions/cloud-computing/1207866-serverless-la-prochaine-revolution-du-cloud/
  •  https://www.lebigdata.fr/faas-definition
  •  https://www.globalsecuritymag.fr/Le-Serverless-un-concept-jeune,20180920,80978.html
 

Commentaires