Initié par AWS en 2014 avec son service Lambda, le serverless est un modèle de Cloud computing.
La technologie serverless est un véritable accélérateur de mise sur le marché. Contrairement à ce que son nom laisse entendre, le terme “Serverless Computing” ne désigne pas une informatique qui n’aurait plus besoin de serveurs pour s’exécuter mais davantage une approche IT dans laquelle la partie matérielle est totalement abstraite. Avec le serverless, le Cloud provider s’occupe de tout et le client a seulement à s’occuper du code !
Le serverless computing est un modèle de conception cloud natif, basé sur une architecture ne nécessitant pas de gestion de serveurs pour créer et exécuter des applications. Dans la lignée des services Cloud visant à faciliter le recours à des services innovants en limitant les investissements de capital, le serverless est un vrai choix stratégique, avec des enjeux liés à la stratégie fournisseur et au service rendu aux utilisateurs.
Après Amazon Web Services (AWS) en 2014, Microsoft lui a emboîté le pas avec Azure Functions en 2016. Google, pour sa part, s’est lancé dans le serverless en août 2018 avec Google Cloud Functions
La facturation ne se fait que sur la quantité de ressources utilisées pour exécuter le code et le temps d’utilisation des ressources. Le code est généralement exécuté dans des conteneurs sans état pouvant être déclenchés par divers événements, notamment des requêtes http, des événements de base de données, des services de file d’attente, des alertes de surveillance, des téléchargements de fichiers, des événements planifiés (tâches cron), etc.
Eh oui, lorsqu'une fonction serverless n'est pas utilisée, le client n’est pas facturé, ce qui est un avantage pour les sites avec peu de trafic !
Comme vous l’aurez compris, le serverless élimine certains tracas habituels de maintenance de l'infrastructure informatique sous-jacente, pour au contraire créer de nouvelles applications et ajouter de la valeur en construisant facilement de nouveaux services à partir de zéro. Le développeur n’a plus qu’à fournir son code, sous forme de fonctions, au provider de service serverless ou FAAS (pour Function As A Service).
Le FaaS est un modèle d'exécution orienté événements. Les développeurs écrivent du code qui est déployé dans des conteneurs entièrement gérés par le cloud provider, et qui sera ensuite exécutée à la demande.
Contrairement au BaaS, le modèle FaaS offre un plus grand degré de contrôle aux développeurs qui peuvent créer des applications personnalisées plutôt que d'avoir recours à une bibliothèque de services pré rédigés.
Le serverless apporte certes de nombreux avantages pour les développeurs, mais cela ne va pas sans compromis.
Il existe une corrélation entre l'adoption du serverless et la taille de l’infrastructure de l’entreprise. Actuellement, cette technologie est principalement utilisée dans les grands environnements. Par exemple, 75% des entreprises ayant adopté le service Lambda d’AWS comptent parmi les plus grandes infrastructures AWS. Pour les petites entreprises, cette adoption a du sens pour des cas d'utilisation n’étant pas liés à leur cœur de métier et pouvant être confiés à un fournisseur de services cloud, tels que faire passer à l'échelle une base de données ou un site web de façon automatique.
Les services informatiques passent en effet moins de temps à se concentrer sur les détails et la mécanique de la technologie ; ils se concentrent plus sur les bénéfices à en tirer. Résultat, la plupart des fournisseurs de cloud ont investi massivement dans cette solution : AWS Lambda, Google Cloud Functions, Azure Functions et bien d’autres encore.
Si les solutions Cloud ont fini par convaincre la très large majorité des entreprises, force est de constater que certains DSI continuent de voir plus loin, persuadés qu’il est probablement possible de louer de la puissance serveur en faisant face à moins de contraintes.
Le serverless ne marque pas la fin des serveurs. Il s’agit au contraire d’une ressource de plus pour les architectes afin d’optimiser la plateforme et répondre aux enjeux de l’usage à adresser, ce qui est une possibilité offerte aux développeurs de gagner du temps dans la conception d’une application pour un usage ponctuel. Autant dire que le serverless a des beaux jours devant lui…