S

Stack

En passant dans les couloirs des étages occupés par la DNum, ou bien en faisant paisiblement la queue à la cafétéria pour y chercher un café bien mérité, vous avez peut-être entendu ce type de phrases : "il faut que tu déploies ta stack sur le tenant de prod et après, tu y accèderas en SSH par le bastion SAFITA". Et, plus généralement, avez-vous déjà eu vent d'un service recherchant un "développeur full-stack pour la refonte du SI métier"...

Alors, à ce stade de notre propos, deux options :

  • vous êtes les deux pieds dans le monde numérique et, après avoir haussé les épaules, vous jetez, l'air blasé un "oui, et ?" et vous retournez à vos occupations ;
  • vous en êtes à votre troisième gorgée de café, vos yeux piquent un peu et vous vous demandez, un peu inquiet :

Mais c'est quoi une stack ???

Une première définition

Écartons d'emblée la définition qui viendrait immédiatement à l'esprit de nos collègues en charge du littoral, à savoir celle du stack maritime : "pilier d'érosion de recul des côtes", comme la célébrissime Aiguille d'Etretat ou bien sa voisine, l'aiguille de Belval, élément d'intrigue principal du roman L'Aiguille creuse, aventure d'Arsène Lupin écrite par Maurice Leblanc.

Côte_d_Albâtre_à_l_Aiguille_de_Belval

En informatique, une stack, c'est d'abord et avant tout une pile. Mais pas n'importe laquelle, car il s'agit d'une structure de données fondée sur le principe du "dernier arrivé, premier sorti", ou LIFO en anglais (last in first out).

Très simplement, imaginons une cantine avec deux piles d'assiettes, une pile d'assiettes propres à l'entrée, et une d'assiettes sales en sortie. Un convive prend une assiette propre pour se servir, l'assiette du dessus (sauf s'il est vraiment fourbe, mais laissons-lui le bénéfice du doute). Il va donc "dépiler" (pop) l'assiette, puis aller la remplir de nourriture. Une fois qu'il a mangé, il empile (push) l'assiette sale, toujours en haut de la pile (tenter de la poser au milieu est vivement déconseillé). Bien entendu, les personnes en charge du service vont, quant à elles, réaliser les mêmes opérations, mais en ordre inverse : empiler des assiettes une fois nettoyées, dépiler les sales pour les laver.

empiler et dépiler sont les deux fonctions de base assurées par une couche logicielle, fonctions dites primitives

Dans notre monde numérique, nous utilisons régulièrement cette logique de piles, par exemple :

  • la fonction Annuler/Refaire dans un traitement de texte : les actions récentes sont empilées, on dépile pour revenir en arrière.

  • la navigation sur le web : en cliquant sur “précédent”, on dépile l’historique des pages visitées.

  • l'exécution des programmes : un call stack gère l’ordre d’appel et de retour des fonctions.

La stack technique

On retrouve cette notion de stack, mais pour décrire quelque chose d'un peu différent : la stack technique

La stack technique, également appelée tech stack, désigne l'ensemble des technologies et outils utilisés pour construire, développer et déployer une application ou un système. Elle comprend généralement plusieurs couches de technologies qui fonctionnent ensemble afin de fournir une solution ou un service.

En termes imagés, on serait donc plus proche ici du sandwich ou du croque-monsieur :

  • la tranche de pain du bas → le matériel et le système d’exploitation.
  • la salade et la viande → la partie serveur (back-end).
  • la sauce → les bases de données et les API.
  • le pain du haut → l’interface utilisateur (front-end).

Une étude menée par Stack Overflow en 2020 avait permis d'établir des corrélations entre les différentes technologies correspondant à ces couches et faisant émerger des sortes d'archipels technologiques :

https://survey.stackoverflow.co/2020#technology-how-technologies-are-connected

Quelques références

geektionnaire_stack

SSD

Que l'on soit dans le cloud ou chez son fournisseur favori de matériel informatique, construire un serveur commence toujours par s'intéresser aux quatre composants indispensables qui les constituent :

  • Processeur (CPU) : Cœur du serveur, il exécute les instructions et gère les tâches.
  • Mémoire vive (RAM) : Cruciale pour le stockage temporaire des données en cours de traitement.
  • Disques durs/SSD : Stockent les données de manière permanente.
  • Cartes réseau : Facilitent la communication avec d'autres systèmes

Nous allons ici nous intéresser plus particulièrement au troisième de la liste, en essayant autant que faire se peut d'expliquer les différences entre un SSD, un HDD, une carte RAID, etc.

Le HDD (Hard Disk Drive) – le disque dur historique

Doyen de la famille, celui-ci fonctionne avec des pièces mécaniques : un plateau tourne à grande vitesse, et un bras lit/écrit les données, exactement comme un tourne-disque (pour les fans de vinyles, revenus à la mode soit dit en passant).

Il a le gros avantage d'être moins cher et disponible en grandes capacités (1 To, 2 To, 4 To…).

En revanche, il sera plus lent, plus fragile et plus bruyant qu'un SSD.

Il reste encore très répandu, et est encore utilisé pour stocker beaucoup de fichiers (films, archives, sauvegardes).

Le SSD (Solid State Drive) – le petit nerveux

Vous l'aurez compris, la différence fondamentale avec son prédécesseur c'est qu'il n'y a pas de pièce mobile, il va utiliser des puces électroniques. On le définit comme un disque dur à mémoire flash.

Très clairement plus rapide, silencieux et résistant aux chocs, il est aussi plus cher au gigaoctet qu’un HDD.

Si vous cherchez une solution pour installer le système d’exploitation, les programmes, et les fichiers fréquemment utilisés, c'est le choix le plus adapté.

Le SSHD (Solid State Hybrid Drive) – la solution hybride

Son nom nous fournit un sérieux indice quant à son positionnement par rapport aux deux solutions précédemment décrites : on a ici un mélange entre un HDD et un SSD, c'est-à-dire un gros disque classique avec un petit espace en SSD intégré.

Bien évidemment, il sera moins performant qu'un pur SSD, mais c'est un bon compromis entre vitesse et capacité, car il stocke automatiquement les fichiers les plus utilisés dans la partie rapide.

Le NVMe / M.2 SSD – petit nouveau de la famille

NVMe est en fait l'acronyme pour NVM (Non Volative Memory) Express, les premières spécifications datent de 2013, les dernières en date portent le numéro de version 2.1 et ont été publiées en août 2024 (voir le document de spécifications).

Ce sont des SSD encore plus rapides, connectés directement à la carte mère via un port spécial (M.2), ils utilisent le protocole NVMe, beaucoup plus rapide que l’ancien SATA.

Utilisés dans les PC récents et les ordinateurs portables modernes, ils se présentent sous une forme très compacte, comme une barrette de mémoire RAM.

En résumé :

Type Vitesse Prix Capacité Usage recommandé
HDD Lent Faible Grande Archives, gros fichiers
SSD SATA Rapide Moyen Moyenne Système, logiciels
SSHD Moyen Moyen Grande Usage mixte, PC budget
NVMe SSD Très rapide Plus cher Variable Jeux, montage vidéo, PC haut de gamme

Qu’est-ce qu’une carte RAID ?

Disposer d'un disque dur, c'est bien, pouvoir le piloter, c'est encore mieux ! C'est précisément la fonction de la carte RAID (ou simplement le RAID), utilisée pour améliorer la sécurité ou les performances du stockage.

Initialement acronyme de Redundant Array of Inexpensive Disks, "Groupe Redondant de Disques Économiques", les constructeurs de ces composants ont opté progressivement pour Redundant Array of Independent Disks, "Groupe Redondant de Disques Indépendants". Nous laissons le lecteur apprécier ce glissement sémantique...

Afin d'illustrer le fonctionnement de la carte RAID, il faut imaginer nos disques comme des tiroirs dans lesquels on veut ranger des documents importants.

La carte RAID aura alors pour mission d'organiser ces tiroirs de différentes manières :

  • En copiant les mêmes données dans plusieurs tiroirs (RAID 1), si l’un casse, les données sont toujours dans l’autre.
  • En divisant les données entre plusieurs tiroirs (RAID 0), pour accéder plus vite à ce qu’on cherche.
  • Ou en combinant les deux pour avoir à la fois sécurité et rapidité (RAID 5 ou 10 par exemple).

Une carte RAID, c’est donc un peu comme un chef d’orchestre qui organiserait plusieurs tiroirs afin d'une part, de sécuriser les données qui s'y trouvent et, d'autre part, de les rendre plus rapides à utiliser.


Pour aller plus loin

Les lecteurs anglophones et curieux pourront également consulter les quelques liens suivants pour en savoir davantage :

Illustration SSD


Paramètres d’affichage

Choisissez un thème pour personnaliser l’apparence du site.