Le serverless se démocratise

Aujourd'hui, bon nombre d'entreprises qui migrent vers le cloud adoptent le "sans serveur". Quelles sont ses tendances actuelles d'évolution et d'utilisation ? Le point.

La technologie serverless - littéralement "sans serveur" - est un véritable accélérateur de mise sur le marché. Elle élimine les tracas habituels de gestion et de maintenance de l'infrastructure informatique sous-jacente pour au contraire créer de nouvelles applications et ajouter de la valeur en construisant facilement quelque chose à partir de zéro.

Plus répandu dans les grands environnements 

Nous constatons une corrélation évidente entre l'adoption du serverless et la taille de l’infrastructure d'une 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.

Serverless et conteneur

Bien que très différents, les environnements de conteneurs et serverless semblent souvent se côtoyer. En janvier 2020, près de 80% des organisations ayant une infrastructure AWS qui exécute des conteneurs avaient adopté 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 judicieuse 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é.

Contrôle de l’efficacité et des coûts du serverless ou FaaS

Les administrateurs système doivent monitorer en permanence l'efficacité 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 clés opérationnels, tels que les cycles et les nombres de requêtes, les erreurs, les temps de latence, les logs et traces des requêtes. En perspective d'un contrôle complet du provisionnement de 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 les plus populaires

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 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é.

Qu’en est-il de la sécurité du serverless ?

La technologie serverless est aussi choisie pour sa sécurité. Elle laisse moins de vecteurs d'attaques parce qu'il y a moins à gérer, 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 à chacun au sein d’une entreprise de créer des fonctions serverless avec un minimum de friction.

Même avec une marge de progression encore importante, la technologie serverless a déjà imprégné 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.