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.