Note:

Tous les schémas sont modifiables en important le PNG sur diagrams.net.

  • En vert : les machines physiques, qu’on appelle aussi serveurs ou hyperviseurs.
  • En bleu : les machines virtuelles.
  • En blanc : les conteneurs, qui font tourner les services. On voit quelques exemples, mais ce n’est pas exhaustif.

C’est parti pour les explications ! :-D

Picasoft possède deux machines physiques, appelées Alice et Bob, et ce sont des « tours ». Si tu es curieux·se, la configuration matérielle est ici. Pour te faire une idée, ce sont ces tours :

Question:

Les serveurs, ça ressemble pas plutôt à des boîtes à pizza ? Genre ça ?

Si ! On appelle ça des machines rackables, avec des rails sur les côtés, qu’on entasse dans des armoires. Mais… c’est beaucoup plus cher. Alors on a choisi d’acheter des ordinateurs moins « professionnels » mais assez puissants, avec nos moyens.

Question:

Et elles sont où ces tours ?

Elles sont hébergées à Toulouse, par Tetaneutral, un FAI (Fournisseur d’Accès à Internet) associatif. Les FAI associatifs sont en général engagés pour le respect de la vie privée sur Internet et la neutralité du réseau (ne pas privilégier une personne ou un service…), ce qui se recoupe avec nos valeurs.

Tetaneutral gère une salle associative dans TLS00, un datacenter de l’entreprise Fullsave près de Toulouse. Voilà une photo de l’installation de la sale en 2014. Nos machines sont dans une de ces armoires.

Question:

Mais pourquoi aller jusqu’à Toulouse ? Faut du soleil pour faire un FAI associatif ?

Parce qu’en général, les hébergeurs n’hébergent que des machines rackables. On connaissait Tetaneutral, on a discuté avec eux, et ils ont accepté d’héberger nos tours !

Ces machines sont aussi appelées hyperviseurs. Comme on le voit sur le schéma, les services comme Mattermost ou Etherpad ne tournent pas directement sur Alice et Bob, mais à l’intérieur d’autres machines comme pica01, pica02

Question:

Des machines dans des machines ?

Exactement ! C’est ce qu’on appelle des machines virtuelles. Et justement, on appelle hyperviseur une machine spécialisée dans la création, l’administration, la sauvegarde… de machines virtuelles.

Picasoft possède une troisième machine : Caribou ! (normalement, la suite d’Alice et Bob, c’est Charlie, mais ça valait le coup d’être un peu plus originaux. :-P)

Contrairement à Alice et Bob, Caribou est une machine rackable et est hébergée par Rhizome, un FAI associatif de l’UTC. Rhizome a une armoire dédiée dans la salle machine de la DSI de l’UTC :

On la voit ici en train d’être installée dans l’armoire :

C’est une installation plus « standard », compatible avec ce qui se fait dans toutes les salles machines. On pourra donc déplacer plus facilement cette machine si besoin.

Une machine virtuelle est une illusion.

Concrètement, il s’agit de simuler une machine physique. Une machine virtuelle n’a pas d’existence physique, mais du code va simuler :

  • Un processeur
  • De la RAM
  • Des disques dur
  • etc.

Comme une machine physique, une machine virtuelle fait tourner un système d’exploitation, qui peut être complètement différent de celui de son hôte, c’est-à-dire de l’hyperviseur.

Question:

Mais pourquoi s’embêter à simuler une machine entière à l’intérieur d’une autre machine ?

C’est très pratique pour plein de raisons !

  1. Isoler les services pour la sécurité. Par exemple, monitoring est une machine virtuelle qui héberge des services très critiques, dont dépend le reste de l’infrastructure, comme la gestion des comptes. On va donc isoler cette machine.
  2. Créer des environnements de test. pica01-test est une machine où on peut tout casser pour s’entraîner, et on est très content que cette machine soit isolée des services qui tournent pour de vrai ! Sans machine virtuelle, il aurait fallu acheter une machine physique dédiée aux tests, ça revient vite cher…
  3. Allouer des ressources différentes. Chaque machine a un processeur virtuel et une mémoire virtuelle qu’on choisit en fonction des besoins. Par exemple, media héberge et traite de gros fichiers, mais n’a pas besoin d’être très rapide : on lui met beaucoup de RAM et peu de processeurs. De la sorte, si une machine consomme 100% de son processeur, elle n’impactera pas les autres.
  4. Transférer facilement les machines. Puisqu’elles sont virtuelles, les machines ne sont finalement qu’un gros fichier que l’on peut transférer sur un autre hyperviseur. Si pica02 devient trop gourmande en ressource, parce que tout le monde utilise Mattermost, on pourra la mettre sur une troisième machine physique « simplement » en la transférant par Internet !

On passe le plus clair de notre temps sur les machines virtuelles, parce que c’est l’endroit où tournent les services « pour de vrai ».

Question:

Et les services alors, ils tournent tous ensemble sur les machines virtuelles ? On les installe les uns à côté, des autres, genre :

snippet.bash
apt install mattermost
apt install etherpad

?

Presque ! On les installe dans des conteneurs.

En fait, on a aussi envie d’isoler les services les uns des autres pour les mêmes raisons qu’on utilise des machines virtuelles. On veut que si un service est corrompu, il ne puisse pas corrompre les autres. On veut pouvoir choisir les ressources qu’on alloue à tel ou tel service. On veut faire en sorte qu’il ne puisse pas y avoir de conflit, par exemple des fichiers que plusieurs services vont aller écrire en même temps.

Question:

Pourquoi on met pas tout simplement un service par machine virtuelle, alors ?

Parce qu’une machine virtuelle, c’est quand même assez lourd ! Il faut simuler tout le matériel. Tandis qu’un conteneur, c’est une sorte de virtualisation légère : on ne simule pas le matériel, ni même le système d’exploitation (du moins son noyau, son cœur) : on utilise celui de l’hôte. C’est beaucoup plus rapide.

Pour résumer, on a donc trois niveaux :

  • Les hyperviseurs, qui sont en chair et en os et qui nous servent à créer des machines virtuelles, faire des sauvegardes, etc.
  • Les machines virtuelles, qui permettent de grouper les services en fonction de leur criticité, des ressources dont ils ont besoin, d’allouer plus ou moins de mémoire à tel ou tel groupe de services, etc.
  • Les conteneurs, qui font concrètement tourner les services, et qui s’appuient sur le « matériel » des machines virtuelles pour fonctionner, tout en étant isolés les uns des autres.

A Savoir:

Pour en savoir plus sur les conteneurs, on parle de Docker dans une des pages suivantes. Docker est le logiciel qu’utilise Picasoft pour créer des conteneurs. Mais avant, il faut pouvoir se connecter aux machines de Picasoft !

  • technique/tech_team/pres_infra.txt
  • de qduchemi