Illustration for the postNext.js est-il un framework serverless ?

Next.js est-il un framework serverless ?

On ne s’en rend pas toujours compte, mais Next.js est un framework indissociable de la notion de serverless.

Beaucoup de choix technologiques de Next s’expliquent en fait par la volonté de Vercel de le rendre parfaitement compatible avec cette forme d’hébergement.

Comprendre le serverless

Le serverless est un modèle de cloud computing où le fournisseur alloue dynamiquement les ressources serveur pour le compte du client et facture à l’usage.

Le nom est trompeur : avec le serverless, vous utilisez toujours des serveurs, mais vous n’avez juste pas à les gérer vous-même.

Cela va plus loin qu’une approche micro-services, car vous ne provisionnez même pas une machine virtuelle ou un serveur partagé pour héberger votre appli. L’hébergeur gère tout cela pour vous.

En serverless, on va payer du temps CPU, de la bande-passante etc., plutôt que la location d’un CPU virtuel d’une taille donnée.

Le serverless dans Next.js : une application, des fonctions

Du point de vue architectural, l’application Next est découpée en fonctions indépendantes et de petite taille.

C’est ce qui permet à l’hébergeur serverless d’allouer exactement les ressources nécessaires à votre appli, avec une granularité très fine.

Ce mode de déploiement s’intègre d’ailleurs parfaitement au système de routage basé sur les fichiers de Next.js. Chaque page du dossier app peut être déployée comme sa propre fonction serverless indépendante.

Par exemple, app/page.tsx est une fonction, app/about/page.tsx en est une autre, et ainsi de suite. Chacune de ces pages peut être mise à l’échelle indépendamment par la plateforme serverless.

Cela fonctionne de la même façon pour les points d’entrée d’API, nommés “route handlers” dans le langage de Next.js.

Usage mesuré par Vercel pour les enquêtes State of JavaScript, divisé en fonctions

Voici les informations fournies par Vercel lors de l’hébergement du formulaire de l’enquête State of JavaScript : elles sont divisées par fonction. Notre point d’entrée GraphQL est le plus sollicité, et passera plus vite à l’échelle que les autres.

Intérêt du serverless pour Next.js

En résumé les avantages de ce modèle serverless avec Next.js sont les suivants :

  1. Mise à l’échelle automatique, avec une granularité très fine à l’échelle de la fonction (= une page, un point d’entrée d’API). Cela nous est très utile pour gérer l’hébergement des enquêtes State of JavaScript qui subissent des pics de demande.
  2. Paiement des ressources réellement utilisées. Attention, en pratique cela revient finalement parfois plus cher, il faut comparer !
  3. Déploiement simplifié, les hébergeurs serverless ont souvent un fonctionnement clé-en-main. Le serverless peut aussi s’auto-héberger, OpenNext facilite le déploiement d’applications Next.js en mode serverless sur votre propre cloud AWS ou équivalent.

Et si je n’en veux pas ?

Si vous avez besoin de plus de contrôle sur l’environnement serveur, Next.js fournit des “escape hatches” pour sortir du mode serverless :

En résumé

Les applications Next.js sont directement compatibles avec le paradigme serverless, qui présente certains avantages : paiement à l’usage, scalabilité infinie et automatique. Mais ce n’est pas non plus une obligation. On peut aussi héberger une application Next.js comme n’importe quelle application Node.js via la commande next start.

Réferences

Vous avez apprécié cette ressource ?

Découvrez toutes nos formations Next.js et Astro en présentiel ou en distanciel

Voire toutes les ressources

Partager sur Bluesky Partager sur X
Flux RSS