Qu'est-ce que le serverless computing ? Une explication en langage simple
Qu'est-ce que le serverless computing ? Une explication en langage simple
TL;DR — Réponse rapide
2 min de lectureLe serverless computing signifie que le fournisseur cloud gere toute l'administration des serveurs pendant que vous ecrivez du code. Vous ne payez que le temps de calcul reel, cela s'adapte automatiquement depuis zero, mais il y a des compromis comme les demarrages a froid et les limites de temps d'execution.
Malgre son nom, le serverless computing implique absolument des serveurs. Le terme "serverless" signifie que vous, le developpeur, ne gerez pas ces serveurs. Le fournisseur cloud s'occupe du provisionnement, de la mise a l'echelle, des correctifs et de la maintenance. Vous ecrivez du code ; ils l'executent.
Comment fonctionne le serverless
Dans l'hebergement traditionnel, vous louez ou gerez un serveur qui tourne 24h/24, que quelqu'un utilise votre application ou non. Vous payez pour le serveur quel que soit le trafic, et vous etes responsable de le maintenir a jour, securise et correctement dimensionne.
En serverless computing, votre code s'execute en reponse a des evenements (requetes HTTP, telechargements de fichiers, modifications de base de donnees, declencheurs programmes). Le fournisseur cloud cree un environnement d'execution temporaire, execute votre code, puis libere les ressources. Vous ne payez que le temps de calcul reellement consomme.
Caracteristiques principales
Mise a l'echelle automatique. Les plateformes serverless passent de zero a des milliers d'executions simultanees automatiquement. Aucune planification de capacite n'est necessaire.
Paiement a l'usage. Vous etes facture pour les millisecondes d'execution de votre code, pas pour le temps d'inactivite. Une application sans trafic ne coute rien.
Aucune gestion de serveur. Pas de correctifs systeme, pas de mises a jour de securite, pas de surveillance de l'espace disque. Le fournisseur gere tout ce qui est en dessous de la couche applicative.
Pilote par les evenements. Les fonctions s'executent en reponse a des declencheurs specifiques plutot que de tourner en continu.
Plateformes serverless populaires
- AWS Lambda -- La plateforme serverless la plus etablie, supportant de nombreux langages de programmation dont PHP (via des runtimes personnalises et des outils comme Laravel Vapor)
- Google Cloud Functions -- L'offre serverless de Google
- Azure Functions -- L'equivalent de Microsoft
- Cloudflare Workers -- Serverless en peripherie, executant le code au plus pres des utilisateurs dans le monde entier
Compromis
Demarrages a froid. Lorsqu'une fonction n'a pas ete appelee recemment, la premiere invocation peut prendre plus de temps car la plateforme cree un nouvel environnement d'execution. Cela peut etre attenue par des strategies de prechauffage.
Limites de temps d'execution. La plupart des plateformes serverless imposent des durees d'execution maximales (15 minutes pour AWS Lambda). Les processus longs necessitent des architectures differentes.
Dependance au fournisseur. Les applications serverless dependent souvent de services specifiques au fournisseur, rendant la migration entre fournisseurs plus complexe.
Complexite du debogage. Les fonctions distribuees sont plus difficiles a deboguer que les applications monolithiques fonctionnant sur un seul serveur.
Gestion de l'etat. Les fonctions serverless sont sans etat par conception. Toute donnee persistante doit etre stockee en externe dans des bases de donnees, des caches ou du stockage objet.
Quand utiliser le serverless
Le serverless fonctionne bien pour : les API et applications web a trafic variable, le traitement d'evenements et les pipelines de donnees, les taches programmees et les jobs cron, et les prototypes qui doivent etre lances rapidement sans configuration d'infrastructure.
Le serverless peut ne pas etre ideal pour : les applications a trafic eleve constant (ou la capacite reservee est moins chere), les charges de travail necessitant des connexions persistantes, et les equipes sans experience en systemes distribues.
L'essentiel
Le serverless computing retire la gestion de l'infrastructure des responsabilites du developpeur, permettant aux equipes de se concentrer sur la logique applicative. Ce n'est pas universellement superieur a l'hebergement traditionnel mais offre des avantages convaincants pour de nombreux patterns de charge, en particulier les applications a trafic variable et les equipes qui souhaitent minimiser la charge operationnelle.
Cet article vous a-t-il été utile ?
Dites-nous ce que vous en pensez !
Avant de partir...
Articles connexes
Laravel peut-il supporter l'hyper-croissance ? Une analyse pratique
Le debat 'Laravel passe-t-il a l'echelle ?' tranche avec des donnees reelles. Spoiler : le framework n'est jamais le goulot d'etranglement -- ce sont les bases de donnees, les caches et les services externes.
Bilan d'un an avec Laravel Vapor : retours d'experience du PHP serverless en production
Apres une annee complete a faire tourner du Laravel a fort trafic sur AWS Lambda via Vapor, voici les avantages, les defis et les enseignements de performance en toute honnetete.
Comment ameliorer les temps de reponse de Laravel Vapor avec le prechauffage
Le prechauffage des conteneurs Lambda dans Laravel Vapor elimine les demarrages a froid pour quelques centimes par mois. Voici comment le configurer et pourquoi vous devriez toujours l'activer en production.