Qu'est-ce que Informatique sans serveur (serverless) ?

Manière d'exécuter des applications dans laquelle la mise à disposition des serveurs, la gestion de leur nombre et la mise à jour de l'OS sont laissées au fournisseur de cloud, si bien que les utilisateurs n'ont pas à s'en soucier. La forme typique est le FaaS (Function as a Service) : une fonction ne s'exécute qu'à l'arrivée d'une requête ou d'un événement, et la facturation dépend du nombre d'exécutions, de leur durée et de la mémoire utilisée. L'adaptation à la charge est automatique, et presque rien n'est facturé en l'absence d'utilisation. En revanche, il existe des contraintes, comme les démarrages à froid, où le premier appel après une période d'inactivité est lent, et des limites de durée d'exécution.

Nom japonais: サーバーレス

« Informatique sans serveur (serverless) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont Bases du cloud et des conteneurs.

Domaine: Bases du cloud et des conteneurs

Il y a quand même des serveurs

« Sans serveur » ne signifie pas qu'il n'y a pas de serveurs, mais que les utilisateurs n'ont pas à les gérer. Le fournisseur prépare à la demande des environnements d'exécution comme des conteneurs ou des machines virtuelles légères et y exécute les fonctions. Les applications complètes sont souvent assemblées en combinant des fonctions avec des bases de données managées, du stockage, une file d'attente de messages, etc.

Démarrages à froid

Quand une fonction n'est pas appelée pendant un certain temps, son environnement d'exécution est libéré, et l'appel suivant exige de préparer un environnement, de démarrer l'environnement d'exécution du langage et d'initialiser la fonction. Ce délai est un démarrage à froid ; selon le langage et la quantité de bibliothèques, il peut aller de quelques centaines de millisecondes à quelques secondes. On le réduit en allégeant l'initialisation ou en utilisant des réglages qui maintiennent prêts à l'avance un certain nombre d'environnements.

Charges de travail adaptées

Elle convient aux traitements événementiels qui se terminent rapidement, comme la conversion d'images téléversées, l'agrégation périodique et la réception de webhooks, ainsi qu'aux charges de travail dont la charge varie fortement et qui connaissent de longues périodes d'inactivité. Pour des charges de travail constamment élevées, des serveurs ou des conteneurs toujours actifs peuvent revenir moins cher. L'état n'est pas conservé dans les fonctions, mais dans des bases de données ou un stockage similaire.

S'entraîner : questions sur Informatique sans serveur (serverless)

Avec des fonctions sans serveur (FaaS), il arrive que seul le premier appel d'une fonction qui n'a pas été appelée depuis un certain temps réponde avec quelques centaines de millisecondes à quelques secondes de retard. Quelle explication de ce phénomène est correcte ?

  1. ALe résultat du premier appel est mis en cache : à partir du deuxième appel, le code de la fonction n'est pas exécuté et seul le résultat enregistré est renvoyé
  2. BIl faut du temps pour préparer un nouvel environnement d'exécution de la fonction, démarrer l'environnement d'exécution du langage et effectuer l'initialisation (un démarrage à froid)
  3. CAu premier appel, le code de la fonction est envoyé sur l'appareil de l'utilisateur, compilé sur place, puis exécuté
Afficher la réponse et l'explication

Réponse : B. Il faut du temps pour préparer un nouvel environnement d'exécution de la fonction, démarrer l'environnement d'exécution du langage et effectuer l'initialisation (un démarrage à froid)

Pour les fonctions sans serveur, le fournisseur prépare au besoin des environnements d'exécution (comme des conteneurs ou des machines virtuelles légères) et les libère quand ils ne sont pas utilisés pendant un certain temps. Le premier appel après la libération d'un environnement exige de préparer l'environnement, de démarrer l'environnement d'exécution du langage et d'effectuer l'initialisation de la fonction, et la réponse est retardée d'autant. Les appels suivants réutilisent l'environnement préparé et sont plus rapides (un démarrage à chaud). Parmi les contre-mesures figurent l'allègement de l'initialisation et des bibliothèques chargées, et des réglages qui maintiennent prêt à l'avance un certain nombre d'environnements.

Questions fréquentes

Le sans serveur et les conteneurs sont-ils opposés ?

Non. De nombreuses plateformes sans serveur utilisent en interne des conteneurs ou des machines virtuelles légères, et certains services peuvent exécuter directement une image de conteneur comme une fonction. La différence porte sur qui gère le nombre d'instances et l'environnement d'exécution.

Passer au sans serveur réduit-il toujours les coûts ?

Pas nécessairement. Comme on paie ce que l'on utilise, c'est moins cher pour des charges de travail légères et irrégulières, mais pour des charges de travail constantes au-dessus d'un certain niveau, des serveurs toujours actifs peuvent revenir moins cher. La comparaison doit aussi inclure des frais comme ceux du transfert de données.

« Informatique sans serveur (serverless) » dans les explications

Questions mentionnant « Informatique sans serveur (serverless) » (1)

  1. Avec des fonctions sans serveur (FaaS), il arrive que seul le premier appel d'une fonction qui n'a pas été appelée depuis un certain temps réponde avec quelques centaines de millisecondes à quelques secondes de retard. Quelle explication de ce phénomène est correcte ?

Termes associés

Conteneur Déploiement bleu-vert (blue-green deployment) Déploiement canari (canary release) Docker Image de conteneur Infrastructure en tant que code (IaC) Infrastructure immuable (immutable infrastructure) Kubernetes Mise à l'échelle automatique (autoscaling) Modèle de responsabilité partagée (shared responsibility model)

Retour au glossaire