CentOS > Debian u. Ubuntu im Web Bereich. Warum?

Guten Abend zusammen,

ich habe eine kurze Frage die mich etwas beschäftigt.

Nach meiner Recherche laufen die meisten Web Server auf CentOS, Ubuntu oder Debian, wobei CentOS ca. 50% des Marktes hält.

Zwischendurch liest man halt viele näckische Kommentare in die Richtung "nimm bloß kein Ubuntu sondern was richtiges".

Ist das inzwischen alles nur noch persönliche Präferenz? Offensichtlich kann man Web Server ja auch mit Ubuntu oder Debian betreiben. Was spricht also dafür, sich die eine oder andere Distribution noch anzueignen, wenn man mit allen Distros eigentlich auch alles machen kann?

Bin auf eure Meinungen gespannt :)
 
Es gibt verschiedene Faktoren, die bei der Distro-Wahl für Server eine Rolle spielen können, wobei die Präferenzen der zuständigen Sysadmins sicherlich auch dabei sind. Oft ist auch die Verfügbarkeit von kommerziellem Support nicht zu unterschätzen. Und es gibt auch diverse Software, wo die verschiedenen Distros mal mehr und mal weniger sinnvolle Default-Einstellungen liefern. Auch die Aktualität der Software auf einer Distro kann eine Rolle spielen. So konnte man z.B. die Container-Virtualisierung Docker auf Debian lange Zeit nur nutzen, wenn man sich einen Kernel aus den Backports installierte. Und selbst dann lief sie eher schlecht als recht.

Ich selbst setze mittlerweile auch lieber auf CentOS, weil man vieles, was dort problemlos funktioniert, bei Debian erst nachrüsten muss. Ganz besonders SELinux ist ein großes Plus. Aber auch virtuelle Disks mit Devicemapper machen auf CentOS weniger Probleme, was vor allem bei Cluster- und Cloud-Umgebungen viel Arbeit erspart.
 
Hi Bitmuncher,

danke für deine Antwort. Das sind interessante Aspekte die ich vorher so noch nicht gelesen habe.

Wo bei mir etwas das Verständnis aufhört, ist der von dir angesprochene Aspekt mit der Software Aktualität. Wenn ich es richtig gelesen habe, hat gerade CentOS nicht unbedingt immer die neusten Pakete und einiges ist auch umständlich in der Nachrüstung. Auf der anderen Seite ist der Webbereich mit seinen ganzen Frameworks wie Rails, Django oder Node.js recht schnelllebig. Wie kann das zusammenpassen? Ich hätte jetzt gedacht, dass man CentOS Aufgrund seiner Releasezyklen eher für Dinge einsetzt, die man nicht immer neu aufsetzen will wie z. B. OpenLDAP oder so. Du hast ja auf deiner Seite geschrieben, dass du oft Startups hilfst. Ist es in dem Bereich dann nicht praktikabler auf ein Ubuntu zu setzen? Zumindest habe ich schon Kommentare in die Richtung gelesen, dass Ubuntu oft von Startups in Cloud Umgebungen wie Amazon AWS usw. ausgerollt wird.

Bezieht sich dass dann immer nur auf die Startphase oder handelt es sich dann nur zufällig um einzelne Seiten wo man keine großen Anforderungen an Cluster und hohe Skalierbarkeit hat?
 
Wo bei mir etwas das Verständnis aufhört, ist der von dir angesprochene Aspekt mit der Software Aktualität. Wenn ich es richtig gelesen habe, hat gerade CentOS nicht unbedingt immer die neusten Pakete und einiges ist auch umständlich in der Nachrüstung. Auf der anderen Seite ist der Webbereich mit seinen ganzen Frameworks wie Rails, Django oder Node.js recht schnelllebig. Wie kann das zusammenpassen? Ich hätte jetzt gedacht, dass man CentOS Aufgrund seiner Releasezyklen eher für Dinge einsetzt, die man nicht immer neu aufsetzen will wie z. B. OpenLDAP oder so.
Da habe ich mich wohl etwas ungünstig ausgedrückt. Ich meinte, dass allgemein die Aktualität der Software ein Auswahlkriterium für die Wahl der Distro ist. Ich meinte damit nicht, dass CentOS deswegen eingesetzt wird.

Aber gerade für Software-Komponenten, die betriebsrelevant sind, nutzt man sowieso oft selbst gebaute Pakete oder Pakete direkt vom Projekt, da man auf diese Weise oft schneller und flexibler auf Updates des jeweiligen Projekts reagieren oder die Software besser optimieren kann. Mit den richtigen Verwaltungstools ist die Arbeit dafür heutzutage kaum größer als 1-2 Befehle.

Du hast ja auf deiner Seite geschrieben, dass du oft Startups hilfst. Ist es in dem Bereich dann nicht praktikabler auf ein Ubuntu zu setzen? Zumindest habe ich schon Kommentare in die Richtung gelesen, dass Ubuntu oft von Startups in Cloud Umgebungen wie Amazon AWS usw. ausgerollt wird. Bezieht sich dass dann immer nur auf die Startphase oder handelt es sich dann nur zufällig um einzelne Seiten wo man keine großen Anforderungen an Cluster und hohe Skalierbarkeit hat?
Auf AWS nutzen auch die meisten Startups oft die Amazon-AMIs. Diese bieten für die Infrastruktur von AWS einige Vorteile. Es ist aber tatsächlich so, dass Startups gerade in den Anfangsphasen gern auf Ubuntu setzen. Ich komme zumeist erst dann in's Spiel, wenn man feststellt, dass man mit einem grafischen Installer nicht unbedingt die Sicherheits- und Performance-Anforderungen heutiger IT erfüllen kann. Ubuntu ist halt ziemlich einfach auch von relativen Laien zu verwalten. Und in Startups ist es üblich, dass die erste Umgebung häufig von Entwicklern und nicht von Sysadmins eingerichtet wird. Da Entwickler häufig, wenn sie denn überhaupt Linux nutzen, mit Ubuntu erste Erfahrungen haben, nutzen sie dieses auch bevorzugt für die Server des Startups. Ab einer gewissen Komplexität bringen aber die Verwaltungstools von Ubuntu kaum noch Vorteile und dann werden Leute wie ich gerufen um die Infrastruktur so aufzubauen, dass sie auch hohen Skalierungsanforderungen gerecht wird. Das bedeutet dann in den meisten Fällen den Einsatz von Virtualisierungstechnologien, Aufbau eines vernünftigen Rechte-Managements, Einführung von CI-Prozessen uvm.. Spätestens dann fallen die Schwächen von Ubuntu in's Auge, weil die Basis dieses Systems halt doch eher für Desktops ausgelegt ist. Auch will man vielleicht nicht immer gleich die neueste Software, weil Versionsupdates häufig auch Anpassungen in der Webapp bedeuten.

An mich wenden sich Startups jedenfalls zumeist aus 4 verschiedenen Gründen.
1. Sie verzeichnen ein großes Wachstum und brauchen entsprechend eine Server-Umgebung, die schnell und unkompliziert nach oben skalieren kann. In solchen Fällen baue ich dann zumeist Cloud-Umgebungen auf Basis von Kubernetes, Docker Swarm, AWS und ähnlichem auf. Da kann ich z.B. mit Debian relativ wenig anfangen, Ubuntu ist nur manchmal eine Option. Beide haben so ihre Schwächen bei Container-basierten Infrastrukturen.
2. Ihre Anforderungen an Datenschutz und Datensicherheit für die Daten auf den Servern wachsen. In solchen Fällen nutze ich ausschliesslich Distros, in denen ich SELinux nicht erst umständlich nachrüsten muss, weil ihre Pakete bereits auf die Nutzung mit SELinux ausgelegt sind. Da ich bei Servern allgemein Wert auf Sicherheit lege, ist CentOS häufig meine erste Wahl, wenn keine anderen Gründe dagegen sprechen.
3. Die Infrastruktur wird so komplex, dass die manuelle Verwaltung zu mühselig wird. In solchen Fällen rüste ich zumeist nur entsprechende Konfigurationsverwaltungstools wie Puppet, Chef, Rex o.ä. nach, wobei mir die Distro dann zumeist egal sein kann.
4. Es treten Performance-Probleme auf, weil die Datenmengen immer weiter wachsen und die vorhandene Software damit nicht mehr umgehen kann. In solchen Fällen werde ich zumeist nur beratend tätig und schaue mir die eingesetzte Software aus dem Blickwinkel von Big O an. Auch hierbei können systemrelevante Probleme auftreten und man muss z.B. entscheiden die Verarbeitung der Daten in eine DMZ zu verlegen, wo sie auf den minimal möglichsten Systemen verarbeitet werden können. Für solche Dinge sind dann Systeme wie CentOS oder auch Ubuntu viel zu überladen und man greift dann eher zu Gentoo, LFS oder ähnlichem, die man entsprechend schlank gestalten kann.

Es gibt also kein Patentrezept, das für jeden Anwendungsfall optimal ist. Auch im Bereich der Websoftware beschränken sich die Anforderungen heutzutage nicht mehr nur auf einen Webserver und eine Datenbank. Da spielen dann auch mal Aspekte wie das Speicherverhalten der Distros eine Rolle, wenn es um Caching-Systeme geht, die Unterstützung bestimmter Hardware, wenn man quasi auf Knopfdruck neue Maschinen aufsetzen muss und vieles mehr. 3 von 4 Anwendungsfällen kann man aber meiner Erfahrung nach eher mit CentOS als mit einem Ubuntu begegnen.

Aber wie gesagt spielen auch die Präferenzen des Sysadmins eine Rolle. Da nehme ich mich nicht aus. Ich habe halt einen Fokus auf die Sicherheit von Webapp-Technologien, weswegen ich gern auf SELinux und somit Distros mit SELinux setze, weil ich dort nicht für jede Software, die ich installiere erstmal Policies anpassen muss. Andere Admins haben eher einen Fokus auf Geschwindigkeit und nutzen dann eher Debian oder Gentoo. Manche sind auch so in ihrer OpenSource-Welt gefangen, dass sie keine kommerziellen Teile in ihrer Distro sehen wollen, so dass dann auch eher ein Debian zum Einsatz kommt. Wieder andere wollen grafische Konfigurationstools oder wenigstens welche mit (N)Curses-Interface und setzen entsprechend auf Ubuntu oder SuSE.

Die Gründe für die Auswahl der Distro sind also vielfältig. Dass CentOS den Markt erobern konnte, liegt vor allem an einem recht guten kommerziellen Support (auch durch viele freiberufliche Sysadmins), der einfachen Migration von RHEL auf CentOS (und damit entsprechende Kostenersparnisse) und einer relativ hohen Sicherheit, wenn man ein paar Regeln bei der Einrichtung beachtet.
 
Vielen Dank für deine ausführlichen Erklärungen zu so später Stunde.

Ein paar genannte Dinge z. B. SELinux muss ich mir mal genauer anschauen damit ich die Präferenz und die Vorteile besser nachvollziehen kann. Auch Container Virtualisierung ist ein Feld, mit dem ich bislang noch keine Berührung hatte. Ich hatte das immer für "recht neu" gehalten so dass ich erstaunt bin, dass du damit schon umfangreiche Erfahrungen in diversen Umgebungen gesammelt hast.

Das Startups oft von Entwicklern gegründet werden, erklärt natürlich die zunächst anhaltende Ubuntu Präferenz.

In jedem Falll ist da ist wieder einiges neues auf meiner Todo Liste das ich mir mal anschauen sollte. Vieles ist nun auch schon klarer. :) ...

Wünsche erstmal einen schönen Tag :)

Ark
 
Zurück
Oben