Qu'est-ce que l'informatique sans serveur ? | Définition de sans serveur

L'informatique sans serveur est une méthode qui fournit des services backend facturés sur la base de leur utilisation. Les serveurs sont toujours utilisés, mais une entreprise qui obtient des services backend d'un fournisseur sans serveur est facturée en fonction de l'utilisation, et non d'une quantité fixe de bande passante ou du nombre de serveurs.

Share facebook icon linkedin icon twitter icon email icon

Sans serveur

Objectifs d’apprentissage

Après avoir lu cet article, vous :

  • Définir l'informatique sans serveur
  • Décrire les avantages de l'utilisation d'une architecture sans serveur

Qu'est-ce que l'informatique sans serveur ?

L'informatique serverless est une méthode permettant de fournir des services backend sur la base de leur utilisation. Une architecture serverless permet à l'utilisateur d'écrire et de déployer du code sans avoir à se préoccuper de l'infrastructure sous-jacente. Une société qui utilise les services backend d'un fournisseur serverless est facturé sur la base de leur utilisation et n'a pas à réserver et à payer une quantité fixe de bande passante ou un nombre de serveurs donné, dans la mesure où le service est mis à l'échelle automatiquement. On notera que même si le terme « serverless » signifie littéralement « sans serveur », des serveurs physiques sont bel et bien utilisés, mais les développeurs n'ont pas besoin de s'en soucier.

Au début du Web, quiconque souhaitait créer une application Web devait posséder le matériel physique requis pour exécuter un serveur, ce qui est lourd et coûteux.

Avec l'apparition du cloud, il est devenu possible de louer à distance un nombre fixe de serveurs ou une certaine quantité d'espace serveur. Les développeurs et les sociétés qui louaient ces unités fixes d'espace serveur en achetaient généralement trop pour être sûrs qu'un pic de trafic ou d'activité ne dépasse pas leurs limites mensuelles et ne perturbe pas le fonctionnement de leurs applications. Cela signifie qu'une grande partie de l'espace serveur acheté était habituellement gaspillée. Les fournisseurs de services de Cloud ont mis en place des modèles de mise à l'échelle (ou autoscaling) pour résoudre ce problème, mais même avec un processus d'autoscaling, un pic d'activité inattendu, par exemple une attaque DDoS, peut au bout du compte s'avérer très cher.

Avantages du serverless

L'informatique sans serveur permet aux développeurs d'acheter des services backend sur une base flexible « payez au fur et à mesure », ce qui signifie que les développeurs ne doivent payer que pour les services qu'ils utilisent. Cela revient à passer d'un forfait de données de téléphone mobile avec une limite mensuelle fixe à un forfait qui ne facture que pour chaque octet de données réellement utilisé.

Le terme « sans serveur » est quelque peu trompeur, car il existe toujours des serveurs fournissant ces services backend, mais tous les problèmes d'espace serveur et d'infrastructure sont traités par le fournisseur. Sans serveur signifie que les développeurs peuvent faire leur travail sans avoir à se soucier du tout des serveurs.

Que sont les services backend ? Quelle est la différence entre le frontend et le backend ?

Le développement d'applications est généralement divisé en deux domaines : le frontend et le backend. Le frontend est la partie de l'application avec laquelle les utilisateurs voient et interagissent, telle que la disposition visuelle. Le backend est la partie que l'utilisateur ne voit pas. Il comprend le serveur où sont stockés les fichiers de l'application et la base de données où les données utilisateur et la logique métier sont conservées.

Frontend vs back-end d'une application

Par exemple, imaginons un site Web qui vend des billets de concert. Lorsqu'un utilisateur tape une demande dans la fenêtre du navigateur, ce dernier envoie une demande au serveur de dorsal, qui répond avec les données du site Web. L'utilisateur verra alors l'interface du site Web, qui comprendra un texte, des images et des champs de formulaire que l'utilisateur doit remplir. L'utilisateur peut alors interagir avec l'un des champs de formulaire sur le frontend pour rechercher son artiste préféré. Lorsque l'utilisateur clique sur « soumettre », cela déclenchera une autre demande au backend. Le code backend vérifie sa base de données pour voir si un artiste portant ce nom existe, et si oui, quand est ce qu'il jouera et combien de billets sont disponibles. Le backend transmettra ensuite ces données au frontend, et le frontend affichera les résultats d'une manière qui aura du sens pour l'utilisateur. De même, lorsque l'utilisateur crée un compte et saisit des informations financières pour acheter les billets, une autre communication va-et-vient se produit entre le frontend et le backend.

Quels types de services backend l'informatique sans serveur peut-elle fournir ?

La plupart des fournisseurs d'informatique serverless proposent à leurs clients des services de bases de données et de stockage. Beaucoup d'entre eux disposent également de plateformes de type FaaS (Function as-a-Service), comme Cloudflare Workers. Ces plates-formes peuvent exécuter du code en périphérie sans stocker de données.

Quels sont les avantages de l'informatique sans serveur ?

  • Coûts réduits - L'informatique serverless est généralement très rentable. En effet, avec les fournisseurs cloud traditionnels de services backend (allocation de serveurs), l'utilisateur doit souvent payer pour l'espace ou le temps CPU inutilisés.
  • Passage à l'échelle simplifié - Les développeurs qui utilisent une architecture serverless n'ont pas à se préoccuper de politiques pour mettre à l'échelle le code. Le fournisseur d'informatique serverless gère le passage à l'échelle sur demande.
  • Code backend simplifié - Avec le FaaS, les développeurs peuvent créer des fonctions simples qui remplissent indépendamment un seul objectif, comme par exemple passer un appel API.
  • Délai d'exécution plus rapide - Une architecture serverless peut réduire considérablement les délais de commercialisation. Plutôt que de passer par un processus de déploiement compliqué pour mettre en œuvre des corrections de bugs et de nouvelles fonctionnalités, les développeurs peuvent ajouter et modifier le code de manière ponctuelle.