Einmal Hosting, bitte!
Eine leistungsstarke und flexible Hosting-Infrastruktur spielt eine enorm große Rolle! Hard- und softwaretechnisch sollte diese den aktuellsten Standards entsprechen und darüber hinaus äußerst flexible, skalierbare und leistungsstarke Infrastrukturressourcen bieten. Für connetation ist es besonders wichtig, die optimale Hostinginfrastrukur bereitzustellen und für alle kommenden Projekte bestmöglich gerüstet zu sein.
Ende 2014 wurde es wieder Zeit die alte Hosting-Infrastruktur zu überdenken und sich für alle kommenden Projekte optimal zu rüsten.
Bei der Auswahl der bestmöglichen Lösung standen unsere hochgesetzten Anforderungen im Vordergrund, welche die Auswahl natürlich etwas erschwerten:
- Hochverfügbarkeit
- Skalierbarkeit
- Stabilität
- Einfach in der Handhabung
- Ausreichend Leistung
- Geringe Latenzzeiten
- Umfassende Konfigurations-Möglichkeiten
- Sicherheit
- Support im Rechenzentrum
Mit einem Hostingpaket "von der Stange" kommt man hier nicht weit. Selbst mit einem Managed Server oder Root-Server werden diese Anforderungen nicht alle vollständig abgedeckt. Vor allem, wenn nicht nur eine Website auf dem Server betrieben werden sollte, sondern gleich Hunderte oder mehr.
Somit haben wir auf dem leeren Blatt Papier begonnen und uns die Komponenten überlegt, die sich zu einem Gesamtsystem zusammenfügen sollten.
- Webserver
- Datenbank
- PHP-Laufzeitumgebung
- Mailserver
- etc.
Bei all diesen Komponenten kamen uns sofort die bekannten Vertreter in den Sinn: Apache, MySQL, PHP etc.
Ja, die sind alle bewährt, funktionieren, ... Nur gibt's da im Anbetracht unserer Anforderungen nicht doch etwas Besseres?
Webserver: nginx
nginx liefert statischen Content (HTML, Stylesheets, Javaskripte und Bilder) schneller, als jener von Apache. Zudem werden deutlich weniger Ressourcen benötigt.
Datenbank: MariaDB
MariaDB ist ursprünglich aus einer Abspaltung von MySQL entstanden. Selbst Google und Wikipedia nutzen inzwischen diesen MySQL-Fork.
PHP-Laufzeitumgebung: PHP und HHVM
Aus Kompatibilitätsgründen setzten wir hier auf zwei unterschiedliche Lauftzeitumgebungen. Einerseits PHP (natürlich in aktuellsten Versionen) mit aktiviertem OP-Cache bietet diese für alle Projekte eine stabile Basis. Zusätzlich kann HHVM das letzte Quäntchen Performance aus dem PHP-Code herausholen.
Facebook hat mit HHVM (HipHop) eine Laufzeitumgebung geschaffen, die weitestgehend kompatibel mit PHP ist, aber das Doppelte oder Dreifache an Leistung liefert.
Somit werden die Anfragen an die Webseite schneller ausgeliefert und es können viel mehr Anfragen gleichzeitig abgearbeitet werden.
Cluster
Alle Server laufen als virtuelle Maschinen in einem HA-Cluster. Bei Bedarf können weitere physische Maschinen dem Cluster hinzugefügt werden. Die virtuellen Maschinen können zwischen den physischen Maschinen transferiert werden ohne sie herunterfahren zu müssen.
Im Bild oben wird die Architektur skizziert, wie sich die einzelnen Bausteine zusammenfügen.