TOOLinux

Le journal du Libre

Quels sont les atouts du Serverless (sans serveur) en 2020 ?

vendredi 18 décembre 2020

Les applications et les architectures Serverless sont en vogue, bien que le terme « Serverless » soit parfois mal compris. En effet, Serverless ne signifie pas la suppression totale des serveurs, puisque des opérations élémentaires restent exécutées sur des machines.

Comment monitorer les environnements Serverless pour accélérer le développement d’applications

Le serverless consiste avant tout en une nouvelle façon de concevoir les applications, ce qui permet de passer à l’échelle plus rapidement et plus efficacement. Comme en témoigne notre récente étude, le serverless devient de plus en plus populaire : près de la moitié des clients de Datadog qui utilisent Amazon Web Services ont désormais adopté son infrastructure Serverless « Lambda ». Désormais utilisé aussi bien par de grandes entreprises que par des start-ups, le serverless n’est plus une technologie de niche.

En optant pour des applications Serverless, les développeurs ne se soucient que de la fonction serverless ou du service, les ressources nécessaires à leur fonctionnement étant gérées par le fournisseur de cloud. Cette approche offre des avantages opérationnels et financiers qui se traduisent par des économies de temps et d’argent. Ce nouveau moyen de faire abstraction de l’infrastructure sous-jacente de l’application cloud nécessite cependant un monitoring spécifique afin de garantir les performances et bénéfices escomptés.

Quels sont alors les atouts du Serverless et quel monitoring d’application faut-il mettre en place ?

Un paiement à l’usage plus économique

Contrairement aux coûts fixes du mode PaaS (Platform-as-a-Service), les architectures Serverless sont facturées selon l’utilisation réelle d’une fonction : uniquement lorsque cette dernière est exécutée. Les serveurs ne fonctionnent pas en permanence, si bien qu’ils n’engendrent pas de coûts lorsqu’ils sont inactifs. Néanmoins, il est nécessaire de contrôler que les coûts d’exécution des fonctions répondent aux exigences de performance globale de l’application. Par exemple, trop de latence pourrait générer des coûts supplémentaires et conduirait à une intervention des équipes concernées pour que les applications fonctionnent plus efficacement. Un monitoring approprié permet d’identifier et de résoudre de tels problèmes avant qu’ils n’aient une incidence réelle sur les résultats.

Un monitoring garant de l’efficacité

L’un des principaux atouts des environnements Serverless est d’apporter un gain d’efficacité dans la conception et la mise à disposition des applications, dont il est indispensable de mesurer et d’analyser la performance afin de s’assurer qu’ils atteignent les objectifs de l’entreprise. Sans un monitoring de données, telles que le nombre de requêtes, les erreurs, les temps de latence, la simultanéité, les démarrages à froid ou les Dead letters , il est impossible de déterminer si la nouvelle stratégie Serverless permet à l’entreprise de faire des économies. L’infrastructure cloud derrière l’application traite-t-elle toutes les requêtes efficacement ? Les applications au cœur de l’entreprise s’adaptent-elles rapidement au pics de la demande ? L’accès à ces données de monitoring permet de gérer au mieux les coûts et de s’assurer que l’efficacité augmente.

Un traçage distribué plus crucial que jamais

Le Serverless est une nouvelle façon de créer et de gérer des applications, si bien que tracer les parcours clients et reproduire les problèmes pour le débogage peut s’avérer difficile. Une stratégie de traçage distribué éclairera ces zones d’ombres en apportant une visibilité au sein du code exécuté par une fonction Serverless, tout comme on le ferait dans une application reposant sur une infrastructure traditionnelle. Tandis que les environnements Serverless facilitent véritablement la création et l’exécution d’applications, comprendre la performance au niveau du code est toujours nécessaire, rendant le traçage distribué plus crucial que jamais.

Une complexité accrue dans les environnements hybrides

Lorsqu’il s’agit du monitoring des applications Serverless, on ne peut ignorer l’impact des processus des fonctions sur la performance globale des applications, notamment dans des environnements hybrides et multiplateformes. Dans la lignée des bonnes pratiques DevOps existantes, le monitoring des applications Serverless doit s’effectuer en tenant compte de l’environnement complet de l’entreprise, qui inclut l’infrastructure « on-premise », dans un cloud public ou privé et chez de multiples fournisseurs de cloud.

Ce n’est qu’à cette condition que l’on pourra détecter les problèmes ou erreurs ancrés dans l’infrastructure.

Des visualisations et alertes adaptées au Serverless

Tout environnement de monitoring des environnements Serverless doit fournir une vue de toutes les fonctions dans une carte des services claire. Regrouper des fonctions individuelles par service permet de comprendre rapidement comment les fonctions interagissent avec les bases de données, les requêtes et les files d’attente de messages. La synchronisation avec d’autres services fonctionnant sur des infrastructures traditionnelles ou dans des environnements conteneurisés, tels que EC2, Kubernetes et ECS est également utile, tout comme d’autres informations détaillées, telles que les logs et les traces. Les stratégies d’alerte traditionnelles ne doivent pas non plus être oubliées, des avertissements automatisés étant nécessaires en cas de risques pour la santé du système.

L’importance de mesurer les temps de latence

La mesure et le monitoring de la latence des requêtes au niveau des applications est un élément essentiel pour comprendre les performances du Serverless. Une image pertinente de la santé et de la performance des applications Serverless peut être obtenue avec l’ajout de données, telles que le nombre d’appels, d’erreurs, de timeout, ou de restrictions dans le traitement en parallèle des requêtes. Croisés avec le traçage distribué tel que mentionné ci-dessus, les problèmes de performance peuvent même être tracés jusqu’au niveau des appels individuels, si bien que le problème peut être attribué à l’application ou au fournisseur cloud. Le Serverless étant facturé selon l’exécution de chaque fonction, tout problème de latence doit être identifié et résolu rapidement, au risque de perdre l’atout coûts-bénéfices du Serverless.

Plus flexible, plus efficace, et plus économique, la technologie Serverless permet d’exploiter des applications au plus près des objectifs fixés par l’entreprise. Tout comme chaque innovation, elle implique de nouvelles problématiques qu’un monitoring complet et précis permet de résoudre afin de bénéficier des avantages concrets de cette nouvelle technologie en pleine expansion.

Pierre Guceski, expert Datadog

Tribune publiée en primeur sur Toolinux.