Combat de Pingouins !

CentOS 7 vs Debian 9 : Quelle distribution choisir pour son serveur

Ah, cette compétition intemporelle pour savoir quelle distrib est la meilleure, ou en tout cas, la plus adaptée a ces besoins.

Le match est sérré, les concurrents nombreux, mais si on se concentre sur les distributions adaptées à un serveur et gratuite, il y a deux concurrents qui sortent largement du lot : Debian et CentOS.

Voici donc un tableau comparatif sur de nombreux points, pour moi, qui suis un développeur web et non un développeur système, linux ni un sysadmin. Si par contre vous l’êtes, je serais ravi d’avoir vos retours !

Attention : si vous lisez cet article après 2019, il risque d’être obsolète.

Présentation

Debian (accronyme du créateur de la distrib, Ian, et de sa future-future-ex) est une distribution qui a été faite en suivant beaucoup de principes, dans le but d’améliorer une distribution prometteuse mais maintenant morte. C’est aussi une distribution qui veut tout gérer de a A à Z, en utilisant son propre système de paquets etc.
Elle est réputé très stable, robuste et performante.
Un chef de projet est élu chaque année, ce qui peut donc amener des changements rapidement (bons ou mauvais)
La famille « Debian » est très petite, mais populaire. Par exemple, Ubuntu, une distribution dérivée de Debian, et est peut-être la plus populaire et accessible pour un poste de travail. (Un certain nombre de distributions ont été forké ensuite à partir d’Ubuntu).

CentOS (pour Community Enterprise Operating System, et oui, l’origine du nom de Debian fait ridicule à côté) est un fork, géré par la communauté, de « Red Hat Entreprise Linux » (lui même un lointain fork de la « classique » distribution Fedora), une distribution payante et considéré comme le top en manière de serveur et de sécurité.
CentOS contient donc la plupart des fonctionnalités natives de RHEL, mais un peu plus tard, et sans le service support.
CentOS est donc compatible a 100% avec des programmes fait pour RHEL, et maintient aussi une compatilité relative avec Fedora.
Il est donc considéré comme une distribution s’adressant aux entreprises pour les serveurs, mais ceux qui n’ont pas forcément des besoin (ou le budget) complexes nécessitant d’acheter Red Hat Entreprise Linux (que je vais abréger RHEL).
Aucun fork de CentOS n’a jamais émergé, preuve que CentOS

Popularité

« Popularité » dans le monde de l’open-source rime un peu avec qualité (plus de gens pour tester et corriger les bugs) et quantité (de mises à jour, de ressources d’aide en ligne etc).

Debian est devenu plus populaire que CentOS de par sa simplicité, et du fait qu’il s’adresse pas seulement a la gamme des serveurs, mais des postes de travail par exemple, et qu’il est plus « accessible ».

CentOS n’est pas très loin derrière, dans le milieu « pro », du fait de sa proximité et son intercompatiblité avec RHEL, la « limo » des distributions serveurs. Ceci dit, elle s’adresse nettement moins aux amateurs, il y a donc une communauté plus petite, mais + qualifiée.

Debian
CentOS

Fonctionnalités

Debian: Je trouve qu’a part réinventer la roue, elle apporte peu de choses par rapport a d’autres distributions. Il fait le standard, et il le fait bien

CentOS : couvre toutes fonctionnalités de Debian, mais certaines en plus : la compatibilité avec cPanel, un outil pour les contrpole du server par exemple ; ou encore la gestion native (et optionnelle) des droits étendu SELinux.
Et… CentOS est compatible avec toutes les applications tierces faites pour RHEL. CentOS est beaucoup plus riche Debian en ce qui concerne la gestion de la sécurité.

A noter que chacune des deux distribs ont un « extra repo » non-inclut de base car non maintenu par l’équipe officielle, mais qui contient énormément de programmes, bien testé : DOTDEB pour Debian, EPEL pour CentOS. Et aussi des dépôts pour les drivers non-libres.

Debian
CentOS

Nouvelle version majeures durée de support

Debian: Actuellement, il y une nouvelle version a peu près touts les 2 ans, et chaque version est maintenue pendant environ 5 ans. Après, çà dépend des versions (il y a des version LTS et d’autres non).
Pour un serveur, il est important d’avoir une version sous maintenance, pour pas se retrouver avec des gros trous de sécurité ;
Les mises à jour de version « à chaud » fonctionnent bien, en général, a condition d’avoir pas trop de paquets venant de dépôts annexes, et d’avoir pas trop modifié son système.
A noter : pour passer de Debian 8 à 9, si vous utilisez MySQL, ca peut etre compliqué.
Bref, mieux vaut faire une sauvegarde de tout quelque part, avant de tenter une mises a jour « à chaud », car vous pourriez vous retrouvez à avoir le réinstaller à partir de rien.

CentOS : Les nouvelles version de CentOS sont beaucoup moins fréquentes, et calquée sur les sorties de nouvelles versions RHEL. La version actuelle, 7 (maintenant 7.5) est sorti depuis des lustres, et vu que RHEL 8 est toujours au stade embryonnaire, elle va encore durer quelques années je pense.
Chaque version de CentOS sont supportés pour la même durée que sa version RHEL, et c’est normalement, 10 ans.
Par contre, mettre à jour son OS à la dernière version, CentOS ne s’engage a rien sur une mises a jour « à chaud », et recommande de réinstaller le système plutôt.

Ce qu’on retiendra de plus important, pour un serveur : il réinstaller le système tous les 10 ans. Chez Debian, c’est tous les 5 ans, mais il est possible tenter une mise à jour sans réinstaller.
Les 2 cas se valent, çà dépend de vos préférences. Moi je préfère le cas CentOS, pour un serveur.

Debian
CentOS

Stabilité

Les deux distributions sont au top de la stabilité, et de mon point de vue (et à mon niveau de perception), les deux se valent.
Debian se permet des mises à jours plus fréquentes pour le même niveau de stabilité ceci dit.

Debian
Centos

Performances

Si tout est bien installé et optimisé, les deux distributions sont au top, et a quelques variations prêts, c’est kif-kif sur les consomations mémoires, processeurs etc.

Debian
CentOS

Facilité d’installation

C’est un serveur hein, donc l’installation est censé être faite par des experts. Les deux distributions sont pas les plus simples à installer, mais c’est pas compliqué non plus.

Dernièrement, Debian fait + d’effort ces temps-çi de ce coté-là.
Sur CentOS, y a un peu plus de fonctionnalité à configurer, du fait que… CentOS a + de fonctionnalité orienté sur la securité (comme SELinux ou firewalld), et moins de paquets pré-installés, donc ca prends un peu plus de temps, a désactiver ou configurer, mais au final on aussi plus de contrôle.

Debian
CentOS

Gestion des paquets

Debian: le système de package est .DEB, qui a été créé pour Debian comme une modernisation (et donc amélioration) du système historique .RPM utilisé pour la plupart des distributions.
L’installation de package se fait via « dpkg », ou son amélioration « gdebi ». Le gestionnaire de package est « aptitude » (commandes apt-get ou apt).

CentOS : Le système de package est .RPM, qui est utilisé pour la plupart des distributions.
Il se maintient en terme de qualité et performances au niveau du .DEB depuis longtemps, mais il a un certain avantage du a son ancienneté, et du fait que c’est le système de base de la plupart des distributions linux : il y a beaucoup plus de packages, trouvable notamment en ligne sur des sites de bibliothèques RPM.

L’installation de package se fait via « rpm ». Le gestionnaire de package est « yum », qui se révèle plus lent que apt.

Je préfère « rpm » à « dpkg » pour le nombre de ressources disponibles, et « apt » à « yum » pour la vitesse, au final c’est un peu match nul, et le meilleur est dans OpenSUSE de toute façon.

Debian
CentOS

Fraîcheur des paquets maintenus par la distribution

oui, c’est bizarre dit comme ça.

Debian: Pour un serveur de production, on veut un système le plus stable et testé possible : on utilisera donc la branche stable.
Les paquets sur les dépôts officiels sont en général plutot vieux, ducoup. Mais du fait que la communauté Debian soit plus grande que celle de CentOS, il y a plus de tests, et donc les version sont moins obsolètes que sur CentOS.
Pour une machine virtuelle ou un serveur de développement, on pourra utiliser la branche test qui contient les paquets en pré-release, jugés « assez » stables donc déja grandement testés.

CentOS : Les dépôts officiels sont globalement un peu plus récents que ceux de Debian Stable, mais beaucoup plus vieux que ceux de Debian Test. A une exception : CentOS est plus réactif sur les mises a jour de sécurité.

On attend d’un serveur que le système soit stable, quitte a ce que les dépôts de base contiennent des veilles versions : au moins, c’est stable et éprouvé. Quitte a récupérer hors-dépôts-officiels les 2-3 applications a jour que le projet demande : au moins, tout le reste a coté, est stable. (Seule exception : si une application exige un « Make » ou « GCC » récent, les versions dde base sont préhistoriques, et c’est un casse-tête à installer une version récente de ces programmes vu toutes les dépendances. J’ai cependant réussi a faire cela sans trop de casse sur CentOS via les nombreux moteurs de recherche de RPM, sur Debian ça aurait été une autre histoire.

Debian
CentOS

Serveur web

De mémoire, Apache 2 et Tomcat 7 sont dans dépots officiels de la distribution pour les 2 cas, et Nginx non (et j’ai une préférence pour Nginx plutôt que pour Apache, du fait qu’il force à l’utilisation des bonnes pratiques, qui mènent à + d’optimisations (pour commencer, l’obligation d’utiliser PHP-FPM, les .htaccess dans les dossiers du site web ignorés), et qu’il est en général plus performant (surtout sur les pages statiques) et moins gourmand, tout en proposant + de fonctionnalités.

Apache et Nginx tourne avec l’user « www-data » par défaut sur Debian, mais dans CentOS, Apache s’appelle « httpd » partout, et l’user pré-configuré pour PHP-FPM, pour httpd/apache ET nginx est « apache », et pour Nginx, c’est « Nginx » C’est un peu plus confus et ca va nécéssiter une reconfiguration d’au moins un fichier, dans ce cas-là.

(pour être plus exact, « apache » dans php-fpm.d/www.conf, et « nginx » dans nginx.conf, donc PHP pourra pas fonctionner sans modifier un de ces deux fichiers. Je vous suggère de modifier plutôt le 2eme fichier, que nginx tourne avec « apache », pour pouvoir faire cohabiter apache+nginx+php-fpm dans le futur et simplifier les permissions).

A noter que Nginx peut être trouvé dans les dépots d’EPEL, mais la version est un peu obsolète et moins bien pré-configuré que si on rajoute un accès au dépot officiel de Nginx.
Et dans ces 2 dépots de Centos, Nginx n’est au départ pas configuré avec le mécanisme de dossier sites-available sites-enabled par défaut (même si c’est facile a modifier), contrairement a Debian.

Debian
CentOS

Base de données

Debian: utilisait Oracle MySQL dans ces paquets officiels jusqu’a Debian 8, et il fallait utiliser un repo annexe pour installer MariaDB.
A la version 9, ils ont décidé les paquets « mysql » contiennent subitement « mariaDB », car MySQL n’est plus vraiment Libre depuis le rachat par Oracle. Ca peut faire des micmac pour les gens qui migre de Debian 8 a 9 qui utilisaient MySQL ou MariaDB (via un repo annexe).
Pas génial
De mes souvenirs toutes les version de Debian. Le service tourne sous le nom « mysql » qu’il s’agisse de mysql ou mariaDB.

CentOS : mariaDB est aussi a télécharger sur un dépot annexe, mais il est bien différencié de MySQL (y compris le service, qui s’apelle « mariadb »).

Sinon PostgreSQL sont tous les 2 sur les dépots de base, et Percona Server fonctionne bien aussi (via dépots annexes officiels).

Debian
CentOS

PHP

Debian: intègre PHP 7.0 dans son dépot officiel. Ceci dit, comme pouvoir jongler avec les dernières version PHP est quelque chose d’important pour un développeur PHP, on lui preferera un dépot externe, « sury », qui permettra de gérer les version supérieures,.
Le dépot « sury » est d’ailleurs celui qui sert de base quand les dépots officiels sont mis à jour sur une nouvelle version PHP. Chaque version de PHP cli, apache et PHP-FPM est gérée différement, ce qui donne de la flexibilité si par exemple on veut faire tourner plusieurs sites avec plusieurs version de PHP / PHP-FPM différentes, l’inconvénient c’est qu’il faut se reconfigurer les php.ini pour chaque version.

CentOS : est toujours a PHP 5 dans ses dépots officiels, mais il y a un très bon dépot qui gère (entre autres) toutes les version PHP et à jours, REMI. REMI a un mécanisme qui premet de définir une version PHP comme celle « par défaut » et de la changer la version en une seule ligne de commande, en centralisant en fichier SEUL php.ini pour toutes les instances C’est super pratique pour la maintenance quand on a tout nos sites qui tournent sur la même version.

Debian
CentOS

Conclusion, KIKALAPLUSGROSSE?

Debian
CentOS

Pour résumer les points forts de ces 2 distribs en 2 mots :
Debian = popularité et simplicité
CentOS = sécurité et stabilité.

Si c’est pour un usage professionnel, et que vous voulez faire un serveur évolutif ou polyvalent, CentOS est pour une meilleure alternative, du fait que vous pourrez facilement migrer sur RHEL.
Si vous n’avez pas des gros besoin de sécurité, vous n’aurez pas besoin des « petits » + de CentOS. Il est un peu plus facile de trouver des paquets plus récent et de l’aide en ligne sur Debian aussi.

La différence principale entre les 2 est dans la stratégie release et de maintenance différente, sans que l’une soit vraiment meilleur que l’autre, et le dépôt de base de Debian qui contient des versions de paquets plus récents.

Les 2 distribs ont un bel avenir devant elles, mais prenez en compte ces deux derniers éléments avant de choisir une distribution sur votre serveur :
– Si vous utilisez un projet open-source (ou propriétaire), quelle est la distribution que la communauté autour (ou l’éditeur) recommande / maitrise le mieux ?
– Quelle est la distrib sur laquelle vous êtes la plus à l’aise pour l’instant, et est-ce que l’autre vous apportera une réelle plus-value ?
– Avez-vous des besoins en sécurité spécifiques que le commun des distributions ne couvre pas ?

J’ai un serveur sur chacune des deux distributions, et malgré que j’ai passé + de temps a configurer CentOS, je suis un peu plus serein sur la maintenance de celui-çi du fait que les versions durent plus longtemps, PHP se met a jour plus facilement, et j’ai des fonctionnalités de sécurité supplémentaire comme SELinux que je pourrais activer si un jour, j’en vois l’intérêt.

Soyons clair, sur un serveur pur LAMP/LEMP pour gérer des CMS basiques avec des patchs de sécurités réguliers, les fonctionnalités de sécurité fournies par Debian seront largement suffisantes, Vous trouverez également plus d’aide sur internet en cas d’erreur de configuration.

Mais sur des projets plus experimentaux, ou « multi-stacks », avec des gros webservices à gérer, ou traitant des données très sensibles, CentOS peut avoir un réél intérêt, du fait qu’il peut combler les lacunes de sécurités applicatives.

C’est mon humble avis n’étant pas expert en administration systèmes, et si vous avez une autre opinion ou des éléments en +, laissez-les en commentaire, je serais ravis d’avoirs d’autres avis, du moment que c’est argumenté 😉

Un commentaire ?

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.