#20JahreHO

Die Technik hinter heise online

20 Jahre heise online – ein idealer Anlass für einen Blick hinter die Kulissen. Eckebrecht von Pappenheim, Leiter des IT-Systemmanagements, zeigt, was unter der Haube läuft.

In Pocket speichern vorlesen Druckansicht 238 Kommentare lesen
20 Jahre heise online
Lesezeit: 5 Min.
Von
  • Eckebrecht von Pappenheim
Inhaltsverzeichnis

In der IT-Welt erscheinen 20 Jahre wie eine Ewigkeit. Und auch seit dem vorigen Artikel zur Technik hinter heise online sind nun schon rund 16 Jahre ins Land gegangen. Dennoch ist er im Grundsatz nach wie vor aktuell: Noch immer wird die Hauptlast von heise online von einem Cluster von x86-Maschinen unter Debian Linux getragen, natürlich einige Hardware-Generationen und einige Toy-Story-Charaktere weiter. Nachdem es zwischenzeitlich 29 Boxen waren, hat der Fortschritt bei den Prozessoren es trotz wachsender Last erlaubt, die Zahl auf aktuell 15 zu reduzieren.

Drumherum hat sich aber viel getan. Dank stabiler x64-Linuxe ist Solaris Geschichte, viel Infrastruktur läuft virtualisiert. Neben einem Pärchen unter VMware ESXi haben wir einen Cluster aus Maschinen unter ProxMox als Hosts für VMs. Als Storage-Backend für diese nutzen wir einen Ceph Storage Cluster, seit kurzem vollständig auf SSDs. Ceph ist ein verteilter, hoch redundanter Object Store, der auf einfacher Serverhardware läuft und Block Storage für virtuelle Festplatten, S3-kompatiblen Object Store und ein Cluster-Dateisystem bietet.

Als Shared Storage für den heise-online-Cluster nutzen wir zurzeit noch NFS, arbeiten aber intensiv daran, diesen Single Point of Failure zu eliminieren. Die Daten der Webserver werden repliziert, aber das ist nicht immer praktikabel.

Einmal nutzen wir als Alternative virtuelle Festplatten, die unser Ceph-Cluster bereitstellt, die sich einzelne VMs, aber auch Hardware Maschinen teilen. Als Cluster-Dateisystem verwenden wir dafür OCFS2, sind aber damit nicht vollständig zufrieden, weil es schon unter mittlerer Schreiblast instabil wird. Die mount-Option 'noatime' ist unbedingt Pflicht. Als Alternative schielen wird auf das Ceph-FS, das ist allerdings erst vor kurzem stabil geworden und erfordert ein Upgrade unseres Clusters.

Von Applikationen aus nutzen wir den Ceph Object Store als Alternative zum geteilten Dateisystem. Und zu guter Letzt kann auch Redis gemeinsame Daten aufnehmen. Mehrere Server stellen MySQL-Datenbanken zur Verfügung, noch mit einer selbst gebauten Failover-Lösung, der Umstieg auf Galera und/oder Mariadb Proxy ist auf der langen Liste der Dinge, die mal getan werden müssten.

Logdaten sammeln wir zentral mit logstash auf einem Cluster aus abgelegter Hardware mit Elasticsearch 1.x. Es ist erstaunlich, was man alles nachguckt, wenn man die Daten hat, wobei wir die Logdaten der Webserver nur 1:100 gesampelt aufheben, sonst würden wir in der schieren Masse untergehen. Für langfristige Aussagen über Entwicklungen von Zugriffszahlen oder Antwortzeiten ist das aber ausreichend.

Daneben haben wir einen neueren Cluster mit Elasticsearch 2.x, in dem diverse Dienste ihre Daten speichern. Schon lange sind nicht mehr alle Applikationen Perl fastcgis unter einem Apache, wir haben Node.js, Mojolicious- und Java-Apps, die fastcgis laufen jetzt meist unter supervisord und neuerdings auch in Docker-Containern.

Zusammengehalten und dem Leser zur Verfügung gestellt werden die Dienste über ein redundantes Pärchen von Loadbalancern, die auch die SSL-Verbindungen terminieren. Das ermöglicht den Einsatz von Varnish-Cache-Servern, die viele dynamisch erzeugte Inhalte, insbesondere Bilder in verschiedenen Auflösungen, puffern und dadurch die Backend-Server entlasten. Auf den Clustermaschinen läuft jeweils ein nginx als Reverse Proxy, der die fastcgis HTTP Services und CMS-Inhalte aus dem Apache zusammenfasst.

Die Konfiguration der verschiedenen Server und Dienste steckt mittlerweile zu großen Teilen in einem Ansible-Repository. Darüber können die Cluster-Maschinen aufgesetzt und konfiguriert werden. Und es können virtuelle Maschinen aufgebaut werden, die analog zu den Produktions-Servern aufgesetzt und konfiguriert werden, sodass die Entwickler mit einer Umgebung arbeiten können, die dem Umfeld im Cluster weitgehend entspricht.

Obwohl heise online über eine sehr gute Anbindung verfügt, haben wir doch einige Dienste mit hohem Traffic oder sehr starken Lastschwankungen in Cloud-Dienste ausgelagert, um immer genügend Luft in der Anbindung und den Servern zu haben.

So geht die Entwicklung immer weiter, um den Anforderungen von Lesern, Entwicklern und nicht zuletzt der Wirtschaftlichkeit so gut wie möglich gerecht zu werden. Worüber wir beim nächsten Jubiläum an dieser Stelle sprechen werden, mag mir meine Glaskugel jetzt noch nicht verraten. Sicher weiß ich nur: Unser Admin-Alltag wird so oder so voller Überraschungen bleiben.

Update 12.7.2016 12:40: Korrigiert: heise online läuft natürlich nicht auf i386-CPUs mit 32 Bit sondern auf x86-Hardware. (axk)