Formations à l'administration système

Cette aile du Guide a pour vocation de référencer les ressources pédagogiques existantes en administration système, et d'apporter des bases pratiques complémentaires.
La suite de cette page détaille notre définition de l'administration système.


L'administration système est un concept aux contours flous. Ici, on va considérer que c'est tout ce qui consiste à faire en sorte que les applications soient disponibles, que les données soient en sécurité, et que les ordinateurs puissent communiquer entre eux à travers le réseau qui nous est mis à disposition. Et tout ça doit être garanti alors que les usages des services peuvent changer, que des machines peuvent tomber en panne, que des attaques informatiques sont tentées sur notre système, que des fibres sont coupées par des tractopelles, que des bugs existent dans les logiciels, etc. Promis, on ne s'ennuie pas !

Dans d'autres domaines, il est courant de faire la différence entre "conception" et "production", et en réalité cette catégorisation s'applique très bien au monde de l'informatique tel qu'il est constitué aujourd'hui : le développement logiciel est la conception, et l'administration système est la production. Cette séparation entre "conception" et "production" n'est pas intrinsèque à l'informatique, elle est artificielle et souvent remise en question. Par exemple, les entreprises de la Silicon Valley ont remarqué que ce découpage était vecteur d'inefficiences. Formulé avec leurs mots, cette critique a donné des expressions comme "tu le développes, tu l'administres" ou encore les concepts de DevOps et SRE, qui sont parfois devenus plus des buzzwords pour cacher que rien d'autre n'avait changé. On pourrait tout aussi bien parler de division du travail.

Chez Deuxfleurs, si on identifie des tâches comme relevant de "la conception" ou de "la production", nos membres de sont pas spécialisés dans un domaine : une même personne développe et opère les logiciels. Adopter cette attitude a plusieurs avantages importants : ça encourage à concevoir des logiciels faciles à opérer, robuste et résilients, ça permet aussi d'identifier, de remonter et de corriger directement des bugs ou anomalies identifiées en production, enfin ça permet de mobiliser les outils de développement (exemple : les langages de programmation) pour opérer le système de manière plus sûre et plus rapide.

Évidemment, pouvoir jongler entre conception et opération, ça demande un grand nombre de qualifications. Heureusement, la plupart des ressources pour se former sont accessibles gratuitement sur Internet et sont d'excellente qualité. De plus, un grand nombre de ces dernières sont mêmes accessibles en Français. Bref, avec un peu d'aide, il est tout à fait possible de s'auto-former.

Pour bien commencer, il faut des bases théoriques dans un ensemble de domaines précis : réseau, système d’exploitation, « ingénieurie de la fiabilité », et sécurité/cryptographie. Pour couvrir plus largement le domaine, il est bon d'inclure également un peu de programmation, un peu d’architecture matérielle, un peu de base de données, un peu d’algorithmie, un peu de structure de données, etc. Une fois cette base acquise, il est plus aisé de se focaliser sur le le fonctionnement précis d'une technologie en particulier car on pourra toujours s'appuyer sur ses bases théoriques.