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.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
L'informatique serverless est une méthode de proposition de services back-end, facturés sur la base de leur utilisation. Un fournisseur d'informatique serverless permet à un utilisateur d'écrire et de déployer du code, sans avoir à se préoccuper de l'infrastructure sous-jacente. Une entreprise utilisant les services back-end d'un fournisseur d'informatique serverless est facturée sur la base de leur utilisation. Elle n'a ni à réserver ni à payer une certaine quantité fixe de bande passante ou un nombre de serveurs donné, dans la mesure où le service est automatiquement mis à l'échelle. Veuillez noter que même si le terme « serverless » signifie littéralement « sans serveur », le processus utilise bel et bien des serveurs physiques. Toutefois, les développeurs n'ont pas besoin de s'en occuper.
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 computing (informatique 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 entreprises qui louaient ces unités fixes d'espace serveur en achetaient généralement trop afin de s'assurer qu'un pic de trafic ou d'activité ne les entraîne pas à dépasser leurs limites mensuelles et ne perturbe pas le fonctionnement de leurs applications. Ce mode opératoire implique qu'une grande partie de l'espace serveur acheté se trouve gaspillée. Les fournisseurs de services cloud ont mis en place des modèles de mise à l'échelle automatique pour résoudre ce problème. Toutefois, même avec ces derniers, un pic d'activité inattendu (une attaque DDoS, par exemple) peut se révéler particulièrement coûteux.
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.
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.
Prenons un exemple et imaginons un site web qui vend des billets de concert. Lorsqu'un utilisateur saisit une demande dans la fenêtre du navigateur, ce dernier envoie une demande au serveur gérant la partie administrative (back-end), qui répond en envoyant les données du site web. L'utilisateur verra alors l'interface publique (front-end) du site web, qui peut comprendre divers éléments, comme du texte, des images et des champs de formulaire à renseigner. L'utilisateur peut alors interagir avec l'un des champs de formulaire de l'interface front-end pour rechercher son artiste préféré. La finalisation de cette recherche (en cliquant sur « Valider ») adressera une nouvelle requête au back-end. Le code du back-end consultera sa base de données pour vérifier si un artiste portant ce nom existe et, dans l'affirmative, à quelle date est prévue son prochain concert et combien de billets sont disponibles. Le back-end transmettra ensuite ces données à l'interface front-end et cette dernière affichera les résultats d'une manière compréhensible par l'utilisateur. De même, lorsque l'utilisateur crée un compte et saisit des informations financières afin d'acheter des billets, une autre communication aller-retour se produit entre le front-end et le back-end.
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 plates-formes de type FaaS (Function-as-a-Service), comme Cloudflare Workers. Le modèle FaaS permet aux développeurs d'exécuter de petites parties de code en périphérie du réseau. De même, grâce à l'approche FaaS, ces derniers peuvent développer une architecture modulaire, afin de créer une base de code plus évolutive, sans se soucier de mobiliser des ressources pour l'entretien de l'infrastructure back-end sous-jacente. En savoir plus sur l'approche FaaS >>
En savoir plus sur les avantages de l'informatique serverless.
Les technologies Backend-as-a-Service et Platform-as-a-Service sont souvent confondues avec l'informatique serverless. S'ils partagent certaines similitudes, ces modèles ne répondent toutefois pas nécessairement aux exigences de l'approche serverless.
Dans le modèle de service Backend-as-a-service (BaaS), un fournisseur cloud propose des services back-end, comme le stockage de données, afin de permettre aux développeurs de se concentrer sur l'écriture de leur code front-end. Toutefois, alors que les applications serverless sont orientées événements (event-driven) et s'exécutent en périphérie du réseau, les applications BaaS peuvent ne pas répondre à ces conditions. En savoir plus sur le modèle BaaS >>
Dans le modèle Platform-as-a-service (PaaS), les développeurs louent à un fournisseur cloud l'ensemble des outils nécessaires au développement et au déploiement d'applications, notamment les éléments tels que les systèmes d'exploitation et les intergiciels (middleware). Les applications PaaS ne se révèlent toutefois pas aussi évolutives que leur pendant serverless, du moins pas aussi facilement. L'approche PaaS ne s'exécute pas non plus nécessairement à la périphérie du réseau et présente souvent un délai notable au démarrage, contrairement aux applications serverless. En savoir plus sur le modèle PaaS >>
Le terme Infrastructure-as-a-service (IaaS) est une expression fourre-tout désignant les fournisseurs qui hébergent une infrastructure pour le compte de leurs clients. Les fournisseurs de services IaaS peuvent proposer des fonctionnalités serverless, mais ces termes ne sont pas synonymes. En savoir plus sur le modèle IaaS >>
L'informatique serverless continue d'évoluer à mesure que les fournisseurs en la matière trouvent de nouvelles solutions pour surmonter certains inconvénients du modèle, comme les démarrages à froid.
En règle générale, lorsqu'une fonction serverless particulière reste inusitée pendant un moment, le fournisseur désactive cette dernière afin d'économiser de l'énergie et d'éviter le surprovisionnement. Lorsqu'un utilisateur exécutera de nouveau une application faisant appel à cette fonction, le fournisseur d'informatique serverless devra lancer à nouveau cette dernière et recommencer à l'héberger. Ce temps de démarrage ajoute une latence notable, connue sous le nom de « démarrage à froid » (cold start).
Une fois de nouveau en cours d'exécution, la fonction sera traitée beaucoup plus rapidement lors des requêtes suivantes (démarrages à chaud), mais se verra à nouveau mise en veille si elle demeure inusitée pendant un certain temps. L'utilisateur suivant à solliciter cette fonction connaîtra donc un épisode de démarrage à froid. Jusqu'à récemment, ce phénomène de démarrage à froid était considéré comme un compromis nécessaire à l'utilisation des fonctions serverless.
Cloudflare Workers a répondu à ce problème en démarrant les fonctions serverless à l'avance, pendant la négociation TLS. Comme les fonctions Workers démarrent à la périphérie en un temps très court, plus court même que le temps nécessaire à la finalisation de la négociation, il en résulte une plate-forme FaaS exempte de démarrages à froid. Pour vous lancer avec Cloudflare Workers, consultez notre documentation pour les développeurs.
Avec l'accroissement de la popularité de l'informatique périphérique et la résolution des inconvénients liés à l'utilisation du serverless, nous pouvons nous attendre à voir ce type d'architecture se répandre de plus en plus.