Cet article est le dernier de la mini-série "Comment fonctionne une application web".
Tu n'as pas lu les premiers articles ?
- Comment on communique sur le web
- C'est quoi le frontend
- La différence entre le frontend et le backend
- C'est quoi une API
Si tu n'es pas à l'aise avec les concepts, je te conseille de lire les épisodes dans l'ordre 😊.
Et sinon,
let's gooooo ! 💥
Le backend, comme un restaurant
Le backend, c'est là où est réalisé la logique d'un système informatique. On appelle ça une application serveur.
Si on reprend la métaphore du restaurant, c'est la cuisine:
- Il y a un stock d'ingrédients ( des objets )
- Il y a des fiches recettes ( des données )
- Il y a un robot qui réalise des plats avec les ingrédients, les ustensiles et les recettes ( c'est du code qui exécute des actions avec ce qu'on lui donne ).
Dans cette cuisine, le robot est capable de faire des plats, un par un.
A chaque nouvelle commande il faut lui donner:
- Les ingrédients
- La recette
Le robot peut alors faire un plat avec ce qu'on lui a donné.
Mais le robot ne possède pas de stocks d'ingrédients, il ne retient jamais les recettes et ne retient pas non plus la liste des commandes en cours.
En clair, notre robot n'a absolument aucune mémoire.
Il exécute purement et simplement des tâches précises pour lesquelles il est programmé. C'est exactement comme ça que fonctionne une application backend.
Comment fonctionne notre robot-code cuistot
On lui donne les paramètres:
- les ingrédients
- la recette
Le robot - code s'exécute et va:
- aller chercher la fiche recette
- faire l'étape 1 avec les ingrédients donnés
- faire l'étape 2 avec les ingrédients donnés
- ...
Ici on comprends que la partie application du backend est "stateless", c'est à dire que le code exécute des actions, mais n'a aucune capacité à retenir des informations entre deux exécutions.
Il est mignon toto mais on va pas à chaque commande lui écrire la recette et lui donner les ingrédients.
On a donc besoin d'enregistrer des données sur le long terme.
On a besoin d'avoir un endroit où le robot peut aller lire la recette comme un grand et un endroit où il peut aller chercher les ingrédients tout seul.
Le backend possède une couche de persistance
Le backend possède donc une partie "stateful" qui permet le stockage de long terme. On appelle ça la couche de persistance, car elle permet de persister des données au long de plusieurs exécutions du code.
Cette partie stateful c'est:
- Une base de données avec la liste des recettes
- Une base de donnée avec la liste des commandes
- Une base de donnée de stockage d'objets: les ingrédients en stock
Cette séparation est essentielle pour comprendre comment ton backend est architecturé.
Etant donné que la partie stateless et la partie stateful font des choses totalement différentes, les enjeux de l'une et l'autre n'ont rien à voir.
Votre partie "stateless" c'est du code qui doit être:
- performant
- toujours disponible pour répondre aux requêtes
Cette partie du backend tourne donc sur des serveurs avec de la puissance de calcul, comme le CPU / GPU pour les ordinateurs.
Votre partie "stateful" c'est du stockage qui doit être:
- assez vaste pour stocker tout ce dont vous avez besoin
- sauvegardé pour ne pas perdre de données
Cette partie du backend tourne donc avec des espaces de stockage comme les disques durs / SSD des ordinateurs.
Pourquoi bien séparer l'application stateless de la couche stateful ?
- Si le serveur d'exécution crash, vous ne perdez pas de données puisqu'elles sont stockées ailleurs.
- Si vous avez beaucoup de requêtes, vous pouvez faire tourner votre application sur 2 serveurs différents, connectés à la même base de données.
- Vous pouvez choisir d'héberger votre application chez un fournisseur et le stockage chez un autre selon vos besoins. Par exemple vous pouvez avoir un serveur en Europe et un serveur aux US, mais votre base de donnée est uniquement en Europe.
A toi de jouer !
J'espère que ce mini-programme a pu éclairer certains points sur les applications web qu'on utilise tous les jours !
J'ai très envie de continuer à améliorer ce programme et préparer la suite,
Pour ça j'aurai besoin de toi 2 minutes top chrono pour répondre à quelques questions / remarques / suggestions ici:
Merci beaucoup! 💜
Si le contenu t'as plu tu peux t'abonner sur linkedin et créer ton compte ici pour recevoir directement chaque nouvel article dans ta boîte mail !
A très vite! 🤩
License
Toute cette mini-série est open-source. ( ouaip il y a pas que le code qui peut être open-source et on y reviendra ! )
La license choisie signifie que tu peux faire ce que tu veux avec son contenu tant que tu me crédites 😎. royal au bar j'ai dit !
Tech me about it: comment fonctionne une application web ? © 2022 by Tancrède Simonin is licensed under Attribution 4.0 International
A chaque publication tu reçois l'article directement par mail, gratos 😘
Commentaires