Pour Pierre Guceski, Developer Evangelist chez Datalog*, la technologie serverless, littéralement “sans serveur”, élimine les tracas habituels de gestion et de maintenance de l’infrastructure informatique sous-jacente. Tout en simplifiant la création de nouvelles applications, le serverless y ajoute de la valeur en permettant d’en modifier rapidement et simplement leurs fonctionnalités. Observons alors les tendances d’évolution et d’utilisation du serverless à l’heure où bon nombre d’entreprises qui migrent vers le cloud l’adoptent. Ses explicaions pour les lecteurs de Solutions Numériques.
Tout d’abord, nous constatons une corrélation évidente entre l’utilisation du serverless et la taille de l’infrastructure d’une entreprise. Actuellement, cette technologie est majoritairement 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 (étude annuelle de Datadog). 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.
Serverless et conteneurs se côtoient
En janvier 2020, près de 80 % des organisations ayant une infrastructure AWS qui exécute des conteneurs avaient adopté le service serverless AWS Lambda. Parfois directement connectés, serverless et conteneurs sont plus fréquemment exploités séparément pour des besoins distincts. Par exemple, une entreprise peut exécuter la majeure partie de son application dans un cluster de conteneurs, tout en assignant à des fonctions serverless des tâches de courte durée, telles que le traitement de paiements. Ou encore, l’entraînement de modèles d’apprentissage machine est judicieux dans des conteneurs, car une exécution sur une fonction serverless est limitée à un maximum de 15 minutes. A contrario, une fonction serverless est très rapide pour faire des inférences sur un modèle généré, telles que « quel animal est sur cette photo ? ». Le serverless est une alternative que les ingénieurs et les développeurs choisissent pour des cas d’usage qui nécessitent un bon rapport coût-efficacité, des pics de charges de travail, un passage à l’échelle à l’infini, ou des projets/services qui démarrent et pour lesquels vous ne payez qu’à l’usage. Par conséquent, les entreprises sont facturées selon l’utilisation réelle: uniquement en fonction des processus et des opérations dans lesquels le code est traité. Il n’y a pas de frais pour le temps d’inactivité.
Veiller au contrôle de l’efficacité et des coûts
Les administrateurs système doivent monitorer en permanence l’efficacité du serverless ou de leurs services FaaS (Function-as-a-Service). Aucune évaluation fiable ne peut être faite sur le rapport coût-bénéfice du serverless sans la collecte de données, qui permettent de tirer des conclusions sur les chiffres opérationnels clés, tels que les cycles et les nombres de requêtes, les erreurs, les temps de latence, les logs et traces des requêtes. Avec sa mission de contrôle complet du provisionnement des services, le monitoring doit fournir des réponses à des questions telles que: l’infrastructure cloud derrière les fonctions et les applications traite-t-elle rapidement toutes les requêtes afin que les processus métiers soient opérés efficacement ? Est-il possible de faire évoluer l’infrastructure sans aucune latence et en fonction de la demande ?
Un monitoring adapté à l’architecture est la clé du succès: il permet de parfaitement maîtriser les risques et d’exploiter pleinement les avantages du serverless.
Les fonctions serverless plébiscitées
Au-delà des services de traitement, les bases de données serverless et les files d’attente de messages restent très populaires avec Amazon DynamoDB qui arrive en tête pour les environnements Lambda. Ce data store hébergé est apprécié pour sa mise à l’échelle automatique et sa faible latence. Les bases de données SQL et Amazon S3 sont les autres data stores les plus répandus pour les environnements Lambda. Amazon SQS (Simple Queue Service) est quant à lui le premier choix pour une file d’attente de messages basés sur des requêtes Lambda. Il est simple à mettre en place et à dimensionner, relativement peu coûteux tout en offrant une intégration étroite avec Lambda. Azure Web App Services est également très populaire sur Azure. Il permet de créer et d’héberger des applications web, des back-ends mobiles et des API RESTful dans le langage de programmation de son choix sans avoir à gérer l’infrastructure avec en plus une scalabilité automatique et une haute disponibilité.
Un gage de sécurité
Également choisie pour sa sécurité, la technologie serverless réduit les vecteurs d’attaques: n’ayant plus besoin de gérer l’infrastructure sous-jacente, il y a donc moins de points d’entrée. Lorsque les systèmes sont plus simples, il est plus facile d’écrire un code sûr et de s’assurer que les autorisations sont limitées à ce qu’elles doivent être. Au sein des entreprises, un expert en serverless fait généralement tout le travail initial et crée de nombreux paramètres par défaut sains pour les développeurs: certaines restrictions pouvant être mises en place en amont, pour couvrir environ 90 % des cas de sécurité, permettant alors à chacun au sein d’une entreprise de créer des fonctions serverless avec un minimum de friction.
La technologie serverless a déjà gagné toutes les applications que nous utilisons au quotidien. On pourrait penser qu’elle s’adresse plus particulièrement aux entreprises technologiques très avant-gardistes de la Silicon Valley, mais son adoption est en réalité plus générale: le serverless est tout autour de nous et imprègne tout ce que nous utilisons. Qu’il s’agisse d’une application sur smartphone ou sur un site web, elle est devenue si courante que chacun interagit au quotidien avec quelque chose qui tourne en mode serverless à un moment ou un autre. Cependant, sa marge de progression reste encore importante.
*Datadog offre un service de surveillance des applications, des serveurs, des bases de données, des outils et des services, grâce à une plateforme d’analyse de données en mode Software as a service.