Was wir tun · Daten und Web: Hochverfügbare Web-Tiers, N+1 auf jeder Ebene

Jede Ebene Ihrer Website existiert mindestens zweimal: TLS-Terminierung, Seiten-Cache, Webserver und PHP. Floating-Adressen wandern von selbst, wenn ein Knoten ausfällt, und wir dimensionieren den Stack so, dass er mit einem fehlenden Knoten jeder Ebene mit voller Geschwindigkeit läuft.
Was es ist: Load Balancing und Clustering für Web-Tiers
Eine Webplattform für Websites, die nicht ausfallen dürfen: Nachrichten, E-Commerce, Publishing, SaaS-Frontends. Der Edge terminiert TLS und cacht Seiten, die Web-Ebene betreibt nginx mit PHP-FPM, und das Ganze ist so gebaut, dass Ihre Besucher nie etwas davon sehen, wenn ein Knoten ausfällt, neu startet oder gepatcht wird.
Wie wir es bauen
Ein gekreuzter Edge. Zwei Edge-Knoten pro Property betreiben HAProxy für TLS, Routing und Health Checks, Varnish für Full-Page-Caching und keepalived für Floating-Adressen. Jeder Edge ist Primary für eine öffentliche Adresse und Standby für die andere, sodass beide die ganze Zeit Traffic tragen. Ein Health-Skript stuft einen Edge zurück, dessen HAProxy nicht mehr antwortet, und der Partner übernimmt dessen Adresse binnen Sekunden.
Eine Web-Ebene ohne Favoriten. Hinter dem Edge betreiben zwei oder mehr Web-Knoten nginx und PHP-FPM mit einem Pool pro Website, gleich gewichtet. Der Admin-Pfad ist an einen Knoten gebunden, der zugleich die Quelle der Einweg-Dateireplikation ist, sodass Uploads und Plugin-Änderungen die anderen Knoten binnen Sekunden erreichen, ohne widersprüchliche Löschungen.
Ein Cache, der durch Störungen hindurch ausliefert. Varnish sitzt auf All-Flash-Storage mit SAN-Anbindung und einem begrenzten Speicherpool, wodurch es weit mehr Objekte halten kann als der RAM, bei praktisch gleicher Geschwindigkeit. Sind alle Backends ungesund, liefert Varnish bis zu einem Tag lang die letzte gute Kopie jeder Seite weiter aus. Die Cache-Invalidierung wird ereignisgesteuert vom CMS ausgelöst, sodass ein veröffentlichter Artikel sofort erscheint, statt auf einen Timer zu warten.
Neustarts, die niemand sieht. HAProxy wiederholt und verteilt eine Anfrage neu, wenn ein Backend neu startet, Health Checks sind so abgestimmt, dass Logrotation nie ein Flapping auslöst, und PHP-FPM kann Knoten für Knoten neu gestartet werden, während der Edge die Lücke auffängt.
Doppelt in die Fabric angebunden. Jeder Web-Knoten ist dual-homed in unsere Fabric angebunden, beide Links in Nutzung; wie die Bonds gebaut sind, steht auf der Seite zur Rechenzentrums-Fabric.
Wovor es Sie schützt
- Ein einzelner Web-, Cache- oder Load-Balancer-Knoten, der ausfällt oder einen Reboot braucht.
- Ein Backend-Problem (Datenbankwartung, ein hängender PHP-Pool), das zu einer leeren Seite wird: Leser bekommen weiter gecachte Inhalte.
- Sicherheits-Neustarts und PHP-Updates, die sichtbare Fehler erzeugen.
- Eine Traffic-Spitze, die PHP überlastet, obwohl die meisten Anfragen aus dem Cache bedient werden könnten.
In der Praxis
Vor dem Start lastgetestet. Auf dem neuen Edge-Paar eines Lifestyle-Verlags haben wir fünfzehn Minuten lang Zehntausende virtuelle Nutzer laufen lassen und dabei über zehntausend Anfragen pro Sekunde gehalten, mit null 503-Fehlern und null Backend-Health-Ausfällen.
Ein PHP-Sicherheitsupdate mitten am Arbeitstag. Wir haben beide Web-Knoten eines Sportportals live gepatcht, einen Knoten nach dem anderen. Der Origin sah kurze Neustart-Lücken von jeweils etwa einer Sekunde; der Edge wiederholte die Anfragen und lieferte gecachte Inhalte, und die Zahl der Fehler, die Besucher erhielten, war null.
Mehr Cache, weniger Arbeitsspeicher. Ein Edge-Paar von einem RAM-Cache auf Flash-gestützten Storage umzustellen, hat eine große Menge Arbeitsspeicher für andere Aufgaben freigemacht.
Warum EuroVPS
- N+1 auf jeder Ebene, einschließlich der Load Balancer, nicht nur «zwei Webserver hinter einem Proxy».
- Failover vor der Übergabe getestet und gemessen.
- Der Cache ist dafür gebaut, Ihre Website online zu halten, wenn das Backend es nicht ist.
- Wir stimmen Health Checks, Retries und Redispatch ab, die Details, die entscheiden, ob ein Backend-Failover unsichtbar ist oder nur kurz.
- Dieselben Ingenieure betreiben Netzwerk, Storage und Stack, sodass nichts zwischen Teams verloren geht.
Häufige Fragen
- Brauchen wir zusätzlich ein CDN? Nicht für die Verfügbarkeit. Viele Kunden ergänzen eines für globale Reichweite; der Stack funktioniert mit oder ohne, und wir konfigurieren Varnish und HAProxy so, dass sie es respektieren.
- Wie lange dauert ein Edge-Failover? Sekunden. Wir messen es bei jedem Build und nennen Ihnen die Zahl bei der Übergabe.
- Können Sie WordPress, Magento und PrestaShop darauf betreiben? Ja, ebenso Laravel und individuelles PHP. Jede Website bekommt ihren eigenen PHP-FPM-Pool.
- Was passiert mit eingeloggten Nutzern und Checkouts? Diese Anfragen umgehen den Cache absichtlich und werden über die Web-Ebene verteilt. Fällt ein Web-Knoten aus, gehen neue Anfragen an die verbleibenden.
- Können wir Code selbst deployen? Ja. Deployments landen auf dem Admin-Knoten und replizieren von dort, oder gehen über Ihre eigene Pipeline auf jeden Knoten.
Möchten Sie eine Website, die weiter ausliefert, während wir daran arbeiten? Sprechen Sie mit einem Ingenieur.
Ihr nächster Infrastrukturpartner
Sehen wir uns Ihre Umgebung an.
Erzählen Sie uns, was Sie heute betreiben und was besser werden muss. Ein Ingenieur sieht Ihre Anfrage durch und hilft Ihnen, den nächsten Schritt zu planen.
+357 222 32280
Beginnen wir mit Ihrer Umgebung.
Ein wenig Kontext hilft uns, das richtige Gespräch zu beginnen.
