Le serverless, une approche efficace à bas prix

Nous avions introduit dans l’article précédent ce qu’était la notion de moteur de requête de dashboarding. Nous allons à présent nous concentrer sur une nouvelle notion, plus proche des ressources matérielles, le serverless.

Qu’est-ce que le serverless? L’informatique sans serveur est un modèle de cloud dans lequel le fournisseur de cloud alloue les ressources de la machine à la demande, en prenant soin des serveurs pour le compte de ses clients. Lorsqu’une application n’est pas en cours d’utilisation, aucune ressource informatique n’est allouée à l’application. La tarification est basée sur la quantité réelle de ressources consommées par une application. Les serveurs sont toujours utilisés par les fournisseurs de services cloud pour exécuter du code pour les développeurs. Cependant, les développeurs d’applications sans serveur ne sont pas concernés par la planification de la capacité, la configuration, la gestion, la maintenance, l’exploitation ou la mise à l’échelle des conteneurs, des machines virtuelles ou des serveurs physiques.

L’informatique sans serveur peut simplifier le processus de déploiement du code en production. Le code sans serveur peut être utilisé en conjonction avec du code déployé dans des styles traditionnels, tels que des microservices ou des monolithes. Alternativement, les applications peuvent être écrites pour être purement sans serveur et n’utiliser aucun serveur provisionné.

Ces environnements d’exécution sont également appelés plateformes “Function As A Service”, FaaS. Leurs premières instances en “Pay as you go” datent de 2006, et ont été successivement popularisées en 2008 par Google avec leur Google App Engine, puis en 2014 par Amazon avec le fameux AWS Lambda. Depuis, IBM et Microsoft ont suivi avec les IBM Cloud Functions et les Azures Functions.

A quoi sert le Serverless? Nous venons de voir que le serverless permet : 

  • d’avoir une capacité de calcul de manière transparente pour l’utilisateur final, au moment où il en a besoin. 
  • Avant, le développeur devait réfléchir sur quel serveur le code allait fonctionner. Maintenant, le serverless permet à l’utilisateur de ne plus avoir à gérer la machine, qu’elle soit physique ou virtuelle. 
  • Mais l’intérêt du serverless est de permettre d’avoir un accès à des machines de manière très compétitive d’un point de vue prix, notamment en ne fixant pas le nombre de serveurs alloués au départ. La notion de facturation à l’usage rend ce type de solution de plus en plus populaire.
  • Un dernier avantage est la capacité d’adaptation des capacités de manière automatique, “auto-scalling”, que Google traduit pour le cas ainsi: “from prototype to production to planet-scale”. On favorise ainsi l’émergence de pratique DevOps.

Ces avantages sont malgré tout à mettre en perspective de la latence de ce type de solutions. Les architectures serverless nécessitent un peu de temps pour que les ressources soient allouées à l’application clientes, ce qui peut poser un problème si un client attend une réponse rapide à sa requête. Il y a donc là un enjeu à adresser: le temps de latence des solutions serverless.

Nous analyserons la semaine prochaine les solutions les plus connues dans le domaine du traitement de données à grande échelle, Spark et Elasticsearch.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *