Bienvenue dans ce cours !
Vous rêvez de monter votre premier serveur de fichiers sous Linux ? C’est parfait, nous allons y venir rapidement. Mais avant, faisons ensemble le point sur ce qu’est un serveur, et pourquoi il est aujourd’hui devenu omniprésent dans le monde de l’entreprise.
L’ordinateur depuis lequel vous visionnez cette page vous offre de nombreuses fonctionnalités : vous disposez peut-être d’un logiciel de dessin, d’un traitement de texte, d’un lecteur multimédia, de jeux, etc. Pour utiliser tout cela, votre ordinateur est autonome et vous n’avez besoin que d’un peu d’électricité.
En revanche, pour certaines fonctionnalités, vous avez besoin d’être connecté à un réseau car votre ordinateur va aller demander à un autre ordinateur quelque part sur le réseau l’information qui vous intéresse : c’est le cas pour afficher cette page Web. Dans ce cas, on dit que votre ordinateur se comporte comme un client qui va demander de l’information à un serveur.
Voyons plus précisément comment fonctionne cette relation client-serveur.
Initiez-vous au modèle client-serveur
En fait, c’est exactement la même chose quand vous êtes assis à la terrasse d’un café. Vous êtes le client et vous demandez une boisson au serveur.
Le serveur fournit un service : il apporte des boissons. Pour obtenir une boisson, le client doit en faire la demande au serveur : il doit faire une requête.
Pour que le client puisse faire une demande au serveur et être compris, il aura besoin d’un langage commun avec le serveur. En informatique, lorsqu’un client et un serveur communiquent, ils utilisent un protocole réseau.
Par exemple, pour afficher cette page, votre navigateur (on parle de logiciel client) a utilisé le protocole HTTP pour en faire la demande au serveur web d’OpenClassrooms. Comme on est sympa, on a accepté de vous envoyer la page demandée pour qu’elle puisse être affichée par votre navigateur.
Il faut bien comprendre que dans le modèle client-serveur, chaque entité joue le rôle du client ou du serveur dans un contexte donné mais peut changer de rôle dans un autre contexte. Par exemple, le serveur du café commande tous les mois des boissons à son grossiste. Dans ce contexte, le serveur de café est client de son grossiste qui lui fournit un service de vente de boissons en gros. Le cafetier est donc serveur pour la vente au détail et client pour la vente en gros.
Maintenant que cette relation client-serveur est plus claire, essayons de définir simplement ce qu’est un serveur.
En pratique, vous verrez que le terme de serveur est employé aussi bien pour désigner le logiciel que le matériel ou même les services fournis. C’est le contexte qui vous permettra de savoir de quoi on parle vraiment.
Découvrez les services
On vient de voir que la raison d’être d’un serveur est de fournir un service. Vous vous demandez peut-être quels types de services peut bien fournir un serveur ? Voici un petit aperçu des services les plus courants :
Un serveur peut fournir tous ces services ?
Oui et bien plus encore car cette liste est loin d’être exhaustive.
Et je peux mettre en place tous ces services sur mon ordinateur personnel ?
Oui et non.
Même si théoriquement n’importe quel ordinateur peut fournir les services ci-dessus, ils ne sont pas toujours optimisés pour ça et on utilise généralement un matériel dédié : un serveur informatique.
Voyons ensemble ce qui fait la spécificité de ces matériels dédiés.
Découvrez les caractéristiques d’un serveur
Même si les caractéristiques précises d’un serveur informatique peuvent varier en fonction du service qu’on veut rendre et de beaucoup d’autres facteurs, voici quelques caractéristiques qu’on retrouve très souvent :
Un serveur est généralement allumé 24h/24 et 7j/7. Vous imaginez bien qu’on attend de la plupart de ces services qu’ils soient disponibles tout le temps.
Très souvent, il ne dispose ni d’écran, ni de clavier, ni d’équipements multimédia (carte son, etc.). Un serveur interagit principalement avec d’autres machines et logiciels donc il est simplement connecté au réseau et l’administration du serveur se fait à distance.
Il est généralement entreposé dans une salle machine dont l’accès est sécurisé et qui présente des sécurités vis-à-vis des risques liés au feu et à l’eau. L’alimentation en électricité et la connexion au réseau peuvent être redondées (en double). Et oui, quand on ne peut pas se permettre de se passer des services fournis par notre serveur, il est nécessaire d’en assurer la sécurité physique. De plus, cette salle est généralement climatisée pour éviter la surchauffe et donc la destruction de nos serveurs.
Un serveur Linux n’a généralement pas d’interface graphique car on préfère désactiver les composants jugés non-essentiels pour des raisons de performance et de sécurité. Pour administrer ces serveurs, il vous faudra donc être à l’aise avec la ligne de commande car ce sera souvent votre seul moyen d’interagir avec le système.
Un serveur utilise généralement un système d’exploitation spécialisé. Vous vous souvenez ? Un système d’exploitation c’est par exemple Windows, MacOS, GNU/Linux. La plupart des systèmes d’exploitation proposent des versions spéciales pour serveur (je vous en dirai plus ci-dessous).
Un serveur peut disposer de performances physiques plus importantes qu’un poste client. Il est plus difficile de généraliser ce dernier point mais que ce soit en terme de processeur, de mémoire, d’espace de stockage, de carte réseau ou autre, il est très courant d’avoir des configurations matérielles bien supérieures à ce qu’on pourrait trouver sur un poste client.
Vous savez maintenant qu’il existe des systèmes d’exploitation ou OS (pour Operating Systems) spécialisés pour serveurs mais vous vous demandez peut-être ce que ces OS peuvent bien avoir de spécial. Voyons ça plus en détails.
Différenciez les OS serveurs des OS Desktop
Mais alors, qu’est-ce qui différencie un OS Serveur de l’OS de mon ordinateur personnel ?
En fait, assez peu de choses :-) Ils sont généralement très proches des OS dits “Desktop” (de bureau) mais présentent des configurations optimisées pour l’installation de logiciels serveur et pour toutes les caractéristiques que vous venez de voir :
Comme les serveurs restent allumés en permanence, les OS ne sont pas configurés avec des fonctions de mise en veille.
Les OS Serveur sont fournis avec peu de pilotes multimédia mais sont plutôt configurés pour supporter le matériel qu’on trouve sur les serveurs (support de composants matériels spécifiques, de grandes quantités de RAM ou de nombreux processeurs)
Les OS Serveur sont installés sans interface graphique pour les systèmes Linux et avec une interface sans effets esthétiques pour les systèmes Windows
Le programme d’installation est pensé à destination des professionnels avec une esthétique plus sobre et des choix plus techniques
Les licences et systèmes de tarification sont généralement différents et bien plus chers
Il est possible de souscrire à des services de support payants pensés pour les entreprises
Vous aurez bientôt l’occasion d’expérimenter vous-même les différences de configuration de ces systèmes puisque vous terminerez cette partie par l’installation de deux version d’Ubuntu : une Server et une Desktop.
Au final, retenez que la notion essentielle qui se cache derrière le terme de serveur est celle de service. Or les services que vous choisirez de fournir auront de grandes conséquences sur votre installation. C’est pourquoi dans le chapitre suivant, nous verrons comment définir vos besoins pour faire les choix matériels, logiciels et d’infrastructure les plus adaptés.
En résumé
Un serveur est un logiciel qui fournit des services à d’autres logiciels.
Par extension, on parle aussi de serveur pour désigner la machine physique et parfois le service.
On parle de relation client-serveur pour désigner les demandes d’informations d’un logiciel vers un autre logiciel.
Un serveur dispose d’un matériel, d’un OS et de logiciels optimisés pour le service qu’il doit rendre.
Vous avez appris dans ce chapitre à quoi servent les serveurs, leurs caractéristiques communes et ce qu'est une distribution Linux. Vous allez dans la suite du cours apprendre à construire une solution adaptée.