Selfhosted Server as a Service - das sollten Sie wissen!

Selfhosted Server as a Service - das sollten Sie wissen!

Bereits seit einigen Jahren betreuen wir eine Vielzahl an verschiedenen Servern für verschiedene Firmen und Institutionen wie z.B. der Firma Dräxlmaier, Mitsubishi Chemical Advanced Materials, der Hochschule Karlsruhe oder des Bayerischen Landes-Sportverbandes. In dieser Zusammenarbeit stoßen wir regelmäßig auf Herausforderungen verschiedenster Arten im Bereich Web und wollen hierbei auf ein paar Tools und Begrifflichkeiten näher eingehen.

High availability

Ein System ist dann hochverfügbar, wenn es trotz Ausfalls einer oder mehreren Komponenten weiterhin erreichbar ist und ohne sofortigen Eingriff genutzt werden kann. Um das zu realisieren, müssen folgende Gegebenheiten beachtet werden: 

Single Point of Failure

Man spricht vom Single Point of Failure, wenn ein Ausfall oder eine Fehlfunktion einer einzelnen Komponente das komplette System betriebsunfähig macht. Einen möglichen Single Point of Failure gilt es grundsätzlich zu vermeiden.

Redundanz

Identische oder miteinander vergleichbare Systeme sind mindestens zweimal vorhanden. In der Technik lässt sich dadurch sicherstellen, dass die Bereitstellung dieser Dienste auch im Fehlerfall eines Teilbereiches verfügbar bleibt.

Lösungen für einzelne Dienste

Multi-Webserver

Um die Verfügbarkeit Ihrer Webseiten auch beim Ausfall eines Webservers sicherzustellen, müssen mehr als ein Webserver vorhanden sein. Apache oder NGINX als Webserver können dies hinter einem Loadbalancer, welcher auf die Verfügbarkeit und Funktion der einzelnen Webserver prüft, ermöglichen.

Datenbankcluster

Ein Datenbankcluster ist ein Verbund von mehreren Datenbankservern, die alle denselben Datenstand vorhalten. Aufgrund der Redundanz zwischen allen Servern im Datenbankcluster, wird es ermöglicht, dass beim Ausfall eines Datenbankservers die anderen Teilnehmer dessen Aufgabe mit übernehmen. Als Datenbanksoftware eignet sich etwa MariaDB-Galera und PerconaXtraDB. Eine Anbindung der Webserver an diesen Cluster ist mit ProxySQL oder HAproxy umsetzbar. 

Filesystemcluster

Ein Filesystemcluster ist ein Dateisystem, das in einem Serververbund Zugriff auf freigegebene Verzeichnisse erlaubt. Durch das Vorhalten von Dateien auf mehreren Servern bleiben diese auch beim Ausfall eines Servers im Cluster verfügbar. Auf ein Dateisystem-Cluster greifen alle Server zu, welche Dateien aus diesen Datei-Freigaben benötigen. Zu Filesystemclustern gehören zum Beispiel GlusterFS oder CephFS

High performance

Mit einer schnellen Website können Sie nur gewinnen! Ihre Besucher werden sich wohlfühlen und Suchmaschinen wie etwa Google danken Ihnen hierfür mit einer besseren Suchmaschinenplatzierung. Hierbei gibt es ein paar Punkte zu beachten, um Höchstleistung aus der verfügbaren Hardware zu kitzeln.

Load balancing

Load balancing bedeutet Lastverteilung. So werden etwa große Mengen von Anfragen auf mehrere parallel arbeitende Systeme verteilt. Somit können Anfragen zeitgleich bearbeitet werden und die Auslastung der einzelnen Komponenten hinter dem Loadbalancer ist steuerbar. Dazu gehören zum Beispiel der HA-ProxyGoogle Seesaw oder F5-Load-Balancer.

Profiling

Als Profiler werden Programmierwerkzeuge bezeichnet, die dem Entwickler helfen, laufende Programme zu analysieren und zu vergleichen. Somit können Performance- und Ressourcenbedarf geprüft und Problembereiche aufgedeckt werden. Ein Profiling sollte immer der erste Schritt in Richtung High Performance sein. Wenn diese Analyse und Optimierung fehlt, kann das nur mit Hardware erschlagen werden. Auf Dauer ist das sehr teuer. Ein solches Profiling-Werkzeug ist zum Beispiel Blackfire.

Caching

Mit Caching kann man wiederkehrende Ereignisse von Aufgaben und Anfragen zwischenspeichern. Bei zukünftigen Anfragen kann auf die bereits vorliegenden Daten zugegriffen werden. Abgerufene oder bereits berechnete Daten können somit um ein Vielfaches schneller ausgeliefert und weiterverarbeitet werden. Solche Caches sind zum Beispiel MemCache, QueryCache, Redis oder Varnish. Für TYPO3 empfiehlt sich die Erweiterung staticfilecache. Caching ist eine Grundvoraussetzung für Geschwindigkeit!

Security

Mit am wichtigsten in der Serverwartung ist die Sicherheit. Man will sich rund um die Uhr vor Hacks, unerkannten Cryptominern oder Verlust von persönlichen Daten schützen. Dabei braucht man aber auch gewisse Abläufe und Tools.

Provisionierung

Ein großes Problem sind sogenannte "Schneeflockenserver". Der Begriff beschreibt den Zustand, dass eigentlich alle Server gleich sind, bei genauerer Betrachtung aber Unterschiede auffallen. In der Wartung oder auch weiteren Entwicklung kann ein solcher Zustand zu Problemen führen. Die Lösung hierfür ist eine Provisionierung. Hierbei wird die Konfiguration eines Servers als Code in Textform hinterlegt. Von einem Programm wie z.B. Ansible, Puppet, Chef oder Saltstack wird die Konfiguration dann auf die gewünschten Server ausgerollt. Dieses Vorgehen stellt sicher, dass Services und Tools auf allen Servern gleich konfiguriert sind. Ebenso erhält man mit diesem Code eine komplette technische Dokumentation der Server. Eine Neuinstallation. z.B. auf neuer Hardware, dauert mit Hilfe einer vorhandenen Provisionierung auch nur einen Bruchteil der sonst nötigen Zeit. 

Personalisiertes Monitoring

Um Server vorausschauend betreuen zu können, ist eine Überwachung mit personalisierten Tests eine gute Lösung. Durch sinnvolle Testszenarien können im Optimalfall schon zukünftig mögliche Probleme vorab identifiziert werden. Außerdem ist es unser Anspruch, Probleme vor unseren Kunden zu erkennen! Dazu bieten sich Tools wie Nagios oder Icinga sowie Zabbix an. 

Backup

Als Backup bezeichnet man eine Sicherheitskopie, die alle benötigten Daten für den Fall eines Systemausfalls oder eines Datenverlustes vorhält. Diese Daten können jederzeit zurückkopiert oder wiederhergestellt werden. Auch ein sogenannter Restore von Daten eines älteren Zeitpunktes ist somit möglich. Dabei gibt es verschiedene Backupmethoden wie ein Fullbackup mit allen Dateien oder ein Incremential-/Differential-Backup welches nur Teilbackups enthält. Besonders wichtig ist auch das Testen eines Backups, damit man im Ernstfall keine Überraschung erlebt. Ein ungetestetes Backup ist im schlimmsten Fall einfach nur Datenmüll.

Disaster Recovery

Disaster Recovery bedeutet eine Wiederherstellung im Katastrophenfall. Als Katastrophenfall wird zum Beispiel ein Komplettausfall von Hardware bezeichnet. Ein kritischer Punkt ist hierbei das Wiederherstellen von nicht mehr benutzbarer Infrastruktur oder Hardware in möglichst kurzer Zeit. Hierfür dient etwa das Tool REAR (Relax and Recover).

Haben Sie noch Fragen zu diesem Thema oder konkreten Bedarf an einer Infrastrukturanalyse? Martin Huber steht Ihnen gerne persönlich zur Verfügung.

Martin Huber

Unterstützung bei der Server-Infrastruktur?

Benötigen Sie Unterstützung bei der Verwaltung Ihrer Web-Infrastruktur?

Unser Spezialist für komplexe Infrastrukturen Martin Huber hilft Ihnen gerne weiter.

Martin Huber  |  Leitung Serverteam & CTO

Wir verabschieden uns von der Plattform X

Nach reiflicher Überlegung haben wir uns dazu entschlossen, unsere Aktivitäten auf der Plattform X (ehemals Twitter) einzustellen. Wir haben die Entwicklung der Plattform in den letzten Monaten...

Zum Beitrag

Zum zweiten Mal in Folge - TYPO3 Award Winner 2024

Eine aufregende Woche in Düsseldorf liegt hinter uns – und wir schwelgen immer noch in Erinnerungen an die T3CON 2024. Mit dabei waren unser in2code Messestand, vier Kollegen und ein spannender...

Zum Beitrag

LUX Marketing Automation: TYPO3 13, Darkmode und Livesearch

Pünktlich zur bedeutendsten TYPO3-Konferenz des Jahres präsentieren wir die neuesten Versionen unserer Marketing-Automation-Lösungen: LUX 38.0.0 und LUXenterprise 44.0.0. Diese Updates bringen nicht...

Zum Beitrag

Technical relaunch for the TUM Campus Heilbronn

At the TUM Campus Heilbronn, state-of-the-art education and research programs are established in the Heilbronn region, which are aimed in particular at students who want to work in digital...

Zum Beitrag
[Translate to English:]

Content Publisher Version 12: Schneller, moderner und benutzerfreundlicher

Mit der neuen Version des Content Publishers Version 12 (für TYPO3 11 & 12) wird die Verwaltung und Veröffentlichung von Inhalten in TYPO3 spürbar verbessert. Die neue Version bringt einige...

Zum Beitrag
Fröhlicher Mann am Laptop

Unser Qualitätsversprechen – Sicherheit und Standards auf höchstem Niveau

Jeder in der Tech-Branche weiß, dass Qualität in der Softwareentwicklung kein Zufall ist, sondern das Ergebnis sorgfältiger Planung und hartnäckiger Arbeit. Bei in2code nehmen wir das Thema Qualität...

Zum Beitrag
Teamwork