Difficile de dater précisément l’apparition des différents paradigmes dans le monde du cloud computing. Si l’on prend l’exemple du SaaS, le concept prédate la terminologie. Salesforce lançait la première version de son CRM uniquement en ligne fin 1999[1].Alors que le terme « SaaS » lui-même vient d’un article publié en février 2001[2].

Et du côté du serverless computing, on constate que les premières plateformes à avoir vu le jour (Zimki en 2006, PiCloud en 2010), sont apparues bien avant le service AWS Lambda d’Amazon, lancé en 2014, et ont finalement fermé quelques années plus tard.[3]

Même si les dates sont un peu floues, les tendances sont, elles, de plus en plus claires. Depuis l’avènement du cloud computing, les entreprises adoptent de plus en plus de solutions informatiques qui ne sont plus installées sur leurs propres serveurs[4]. Alors que les géants du web, et quelques acteurs spécialisés dans leur sillage, accroissent, eux, de façon accélérée la taille de leurs datacenters[5].

Vous avez dit « informatique sans serveur » ?

Dans ce contexte, de nouvelles pratiques émergent, dans la continuité de cette tendance à déléguer de plus en plus la charge de la gestion de l’infrastructure aux fournisseurs de services clouds. Après l’IaaS et le SaaS, c’est au tour de « l’informatique sans serveur » (serverless computing) de faire son apparition.

Il s’agit bien évidemment d’un abus de langage – d’ailleurs identique en français et en anglais. Serverless signifiant littéralement « sans serveur » ceci souligne le fait que c’est le fournisseur du service cloud qui gére dynamiquement les ressources à allouer et les serveurs nécessaires pour faire tourner l’application conçue par le client.

Ce dernier n’a donc plus à définir ou dimensionner d’infrastructure matérielle ou logicielle, ni même à assurer le déploiement de sa solution sur cette infrastructure. De fait, les ressources réellement utilisées étant la plupart du temps allouées au dernier moment par le fournisseur du service cloud. Le client peut, en pratique, ne plus avoir connaissance de cette infrastructure.

Une des principales conséquences de ce modèle est que la tarification utilisée dans d’autres approches (comme l’laaS), en fonction des ressources matérielles provisionnées, ne fonctionne plus (puisque le client n’est pas responsable de leur provisionnement). À la place, le prix à payer est donc calculé en fonction de l’utilisation réelle des ressources (pay-per-use ou pay-as-you-go).

En termes de coût, le serveless computing, grâce à la densification, permet d’atteindre une plus grande rentabilité pour les fournisseurs de services clouds. En effet, la mutualisation de l’infrastructure, en réduisant notamment la sous-utilisation des ressources, permet de servir plus de clients à infrastructure égale (et donc coûts égaux). Cela se traduit finalement par un prix facturé au client plus faible. Ce qui permet – de son point de vue – d’améliorer la rentabilité.

Function as a service (FaaS)

Le serverless computing est étroitement lié à un autre concept : le FaaS. Il s’agit de la même idée de départ : l’utilisateur du service ne se soucie plus de l’infrastructure sous-jacente à son application. En poussant cette abstraction logique un cran plus loin, on aboutit au FaaS. L’application devient alors un microservice (ou « microwebapp »), réduit à quelques fonctions voir une seule (stateless). Et sera appelée dans des conditions définies par l’utilisateur.

Ces conditions de déclenchement s’appuient sur l’offre par ailleurs déjà existante chez les fournisseurs de services clouds : par exemple, l’insertion d’un nouvel enregistrement dans DynamoDB, la base de données cloud d’Amazon. Mais il peut aussi s’agir d’un simple appel HTTP, si la fonction a été exposée derrière un service REST. Dans les deux cas, la fonction est proche voir identique, car l’abstraction du FaaS porte aussi sur la logique de déclenchement.

Le FaaS apporte donc un gain de productivité supplémentaire : les développeurs se concentrent principalement sur l’écriture de la « fonctionnalité » dans leur code, davantage que sur d’autres aspects techniques (comme le mutlithreading ou la gestion des requêtes HTTP).

Conclusion

Le serverless computing, et en particulier le FaaS,est l’aboutissement d’une transformation des systèmes d’informations qui a commencé avec le cloud computing. Bien qu’encore relativement récent et peu adopté, les acteurs majeurs du cloud proposent désormais tous une offre FaaS et il est donc probable qu’un nombre croissant d’entreprises s’y intéresse dans les années à venir.

L’histoire de l’informatique sans serveur ne fait que commencer !


[1] http://www.salesforce.com (archive du 28 novembre 1999)

[2] Software As A Service: Strategic Backgrounder. Software & Information Industry Association. 28 février 2001 –SIIA.

[3] Zimki ferma en 2007 et PiCloud fut racheté par Dropbox en 2013.

[4] https://www.forbes.com/sites/louiscolumbus/2018/01/07/83-of-enterprise-workloads-will-be-in-the-cloud-by-2020

[5] https://www.datacenterknowledge.com/cloud/research-there-are-now-close-400-hyper-scale-data-centers-world