Kavacode

Blog

Welcome to the JAMStack !

  • annonce
  • technologie
Nous venons de refondre entièrement notre site sous 11ty (eleventy), un SSG tres agréable à manipuler pour concevoir des sites moderne avec la philosphie d'architecture tendance, la JAMStack.

SSG, JAMStack ?

Et oui dans notre métier les acronymes et autres termes obscurs sont légion. SSG signifie Static Site Generator. On regroupe sous cet acronyme les outils capable de produire un site Internet statique. Et il en existe un grand nombre, en voici une liste. Avec un SSG, le code source de vos pages est figé (statique) et celà présente un bon nombre d'avantages. Cette notion est la pierre fondatrice de l'architecture JAMStack.

Pour mieux comprendre, voici comment fonctionne un site dynamique "classique" :

Jamstack
Fonctionnement d'un site Internet d'entreprise traditionnel.

Avec cette architecture, à chaque fois que vous chargez une page Internet depuis votre navigateur, le serveur WEB interroge un serveur d'application qui, pour produire la page demandée, charge un ensemble d'informations depuis une base de données. Ce serveur génère en retour le code HTML de votre page et renvoi le résultat au serveur WEB qui enfin la transmet à votre navigateur.

Alors bien sur il existe tout un tas d'astuces pour accélérer ce processus (caches) mais cela complexifie encore l'architecture, sa maintenance et niveau sécurité, vous devez encore mettre en oeuvre un bon nombre d'éléments pour proteger convenablement votre site.

En comparaison, voici comment un site dit "JAMStack" fonctionne :

Jamstack
Fonctionnement d'un site Internet en architecture JAMStack.

Le CDN ou Content Delivery Network est un réseau de serveurs WEB simple mais rapide répartie autour du globe sur lequel vous pouvez déployer uniquement du contenu statique et ça tombe bien car notre site est statique. Il est disponible et se télécharge en un éclair partout sur la planète car il n'y a pas de base de données à interroger.

Pas de base de données ?

Alors oui ... et non, c'est la qu'interviennent les fameux SSG. Avec un SSG, vous allez pouvoir aggréger automatiquement vos contenus depuis différentes sources pour produire l'ensemble des pages constituant votre site Internet. Un peu de configuration au départ puis ajouter du contenu et le mettre en ligne devient tres simple à l'aide d'un dernier outil : GIT

GIT est un outil très connu des développeurs. Il permet de maintenir le code source d'un projet et son historique.

Et voilà comment une mise à jour de votre site fonctionne :

  1. Vous modifiez ou ajoutez du contenu dans votre base ou dans un nouveau fichier représentant par exemple un post de blog
  2. Vous enregistrer le changement dans GIT (commit)
  3. Votre service d'hebergement lance automatiquement la regénération de votre site et met à jour les CDN

Et voilà votre nouveau contenu est disponible en ligne.

Mais pourquoi c'est bien ?

On l'a vu, la JAMStack simplifie énormément l'infrastructure, tout du moins elle est entierement géré par votre hebergeur. Mais ce n'est pas le seul avantage.

Performance et Référencement (SEO)

Les moteurs de recherches et notamment Google favorisent les sites les plus rapide. En éliminant la génération des pages à chaque appel, les sites statique se chargent en quelques millisecondes et comme il est coutume de les heberger sur un CDN celà reste vrai partout autour du globe.

Sécurité

Votre site est statique, le contenu déployé est figé, celà signifie qu'il n'est pas possible pour un pirate d'attaquer votre base de données ou les services de votre site car il n'y en a pas.

Réduction des coûts

Avec un site statique, vous n'avez pas besoins de serveurs puissant pour diffuser votre contenu et comme vous vous appuyez sur des services tiers vous pouvez scaler à moindre coût.

Pour aller plus loin

Un site statique c'est bien mais que faire si vous avez besoin de plus d'interactivité. Vous voulez par exemple afficher une information en temps réel ou vous avez besoin d'un système de login, d'un formulaire de contact ou même de payement ?

Dans ce cas, retour à la case départ mais pas entièrement.

Pour certaines fonctionnalités, vous pouvez faire appel à des services tiers.

  • Stripe pour le payement.
  • Algolia pour la recherche
  • ou encore AuthO pour gérer l'authentification

Des services et des api en ligne il en existent beaucoup aujourd'hui. Et si un service n'existe pas, vous pouvez vous orientez vers un service ServerLess et coder votre propre fonction en quelques minutes.

Enfin si vous ne souhaitez pas dépendre d'un service tiers pour une fonctionnalité ou si votre besoin reste complexe, vous pouvez toujours mettre en oeuvre un service dédié à cette tache sur un serveur dans un Cloud ou sur un VPS.