4 Lektionen, die wir aus unserem neuesten Infrastruktur-Upgrade gelernt haben

Veröffentlicht: 2022-05-04

Upgrade der Infrastruktur. Eine häufige Aufgabe, insbesondere für ein SaaS-Unternehmen wie unseres, oder?

Nun, unser neuestes war nicht das typische Software-Upgrade, da wir ihm eine kleine Wendung hinzugefügt haben.

Das Hauptziel war es, unsere Software auf die neueste Version zu aktualisieren, aber dieses Mal haben wir zwei weitere Schritte in das Projekt aufgenommen – die Reduzierung der Anzahl der IPs, die unsere Kunden auf die Zulassungsliste setzen müssen, und das Erreichen von Datenbankredundanz.

Und während der Großteil des Updates reibungslos verlief, erlebten wir unterwegs auch einige Dienstunterbrechungen.

In den folgenden Zeilen werden wir hinter den Kulissen Informationen darüber geben, warum wir das Upgrade durchgeführt haben, wie es gelaufen ist und was unsere größten Erkenntnisse für die Zukunft sind.

Lassen Sie uns direkt darauf eingehen!


Warum wir das Upgrade überhaupt durchgeführt haben und was es beinhaltete

Wir verstehen die Verantwortung, die wir haben, und die Rolle, die NitroPack für den Erfolg der Unternehmen unserer Kunden spielt. Aus diesem Grund sind die Gewährleistung einer optimalen Leistung, der höchsten Sicherheitsstandards und einer Dienststabilität rund um die Uhr von entscheidender Bedeutung.

Die regelmäßige Aktualisierung unserer Infrastruktur ist eine der vielen Möglichkeiten, dies zu gewährleisten. Und wie bereits erwähnt, bestand dieses spezielle Upgrade aus drei Teilen:


1. Aktualisieren Sie unsere Software auf die neueste stabile Version

Als Cloud-basierte Lösung werden alle Optimierungen, die NitroPack für unsere über 100.000 Kundenseiten durchführt, auf unserer Infrastruktur durchgeführt. Derzeit verwenden wir mehr als 100 Server, um den Dienst auszuführen. Mit diesem Update mussten wir die Software, die unsere Serverflotte orchestriert, auf die neueste stabile Version aktualisieren.


2. Reduzieren Sie die Anzahl der IPs, die unsere Kunden auf die Zulassungsliste setzen müssen

Einfach gesagt, unser IP-Positivlisten-Prozess war nicht benutzerfreundlich.

Vor dem Update mussten unsere Kunden mehr als 40 IP-Adressen auf die Zulassungsliste setzen, die den ausgehenden Datenverkehr (Anfragen) von NitroPack zu den Websites der Kunden bedienten. Darüber hinaus wurden diese IPs nicht festgelegt, was bedeutet, dass, wenn einer unserer Server in den Ruhestand geht, ein neuer mit einer anderen IP-Adresse auftaucht.

Dieser Prozess der Generierung neuer IPs erforderte, dass unsere Kunden regelmäßig Dutzende neuer Adressen auf die Zulassungsliste setzten, damit NitroPack ihre Websites erfolgreich optimieren konnte.

Nach dem Update müssen unsere Kunden nur drei feste, sich nie ändernde IPs auf die Zulassungsliste setzen.


3. Erzielen Sie Datenbankredundanz

Lange Zeit wollten wir eine Datenbankredundanz erreichen, da dies die Gesamtleistung der Website und des Dashboards von NitroPack verbessern würde und wir in der Lage wären, die Servicesicherheit zu verbessern. Darüber hinaus würde uns dieses Update ermöglichen, zukünftige Datenbank-Upgrades ohne Ausfallzeiten durchzuführen.

Mit diesen Zielen vor Augen haben wir den Prozess in zwei Schritte unterteilt und uns einen Tag zwischen den beiden Schritten gelassen, damit wir eine gute Verschnaufpause hatten:

Schritt 1: (4. November): Verringerung der IP-Anzahl
Schritt 2: (6. November): Datenbankredundanz und Aktualisierung der Serversoftware

Aber nicht alles lief nach unseren Vorstellungen.


Was nicht wie geplant lief

Trotz unserer gründlichen Vorbereitung sind wir in allen drei Updates auf einige unerwartete Probleme gestoßen. Folgendes ist passiert:

Problem Nr. 1: Verbindungsprobleme während des IP-Aktualisierungsprozesses

Am 4. November sollten wir ein vorläufiges Service-Update durchführen, um die Anzahl der IP-Adressen für den ausgehenden Datenverkehr von NitroPack zu reduzieren.

Die ursprüngliche Version hatte einen internen Softwarefehler, der es unserem Dienst in einigen Fällen nicht erlaubte, ausgehende Verbindungen herzustellen. Leider trat dieses Problem nur auf, wenn unsere Infrastruktur Spitzenverkehrssituationen erlebte. Aus diesem Grund haben wir das Problem in unserer Staging-Umgebung während der ersten Tests nicht erkannt. Das Konnektivitätsproblem führte dazu, dass NitroPack ausgehende Optimierungen nicht zuverlässig durchführte, und einige unserer Kunden erlebten einige Stunden lang eine Instabilität des Dienstes.

Die gute Nachricht ist, dass es unserem Entwicklerteam gelungen ist, das Problem umgehend zu beheben, indem es die Software unseres HTTP-Clients aktualisiert hat.


Problem Nr. 2: Die Datenbanksicherung dauerte länger als geschätzt

Als wir am 6. November mit der Arbeit an der Datenbankredundanz begannen, stellten wir schnell fest, dass es viel länger dauern würde als geplant. Dies zwang uns, das Serversoftware-Upgrade einen Tag später durchzuführen.

Aber es geschah in guter Absicht. Wir wollten mit der Sicherung der Datenbank von vornherein äußerst vorsichtig sein, damit wir die Redundanz ohne Probleme durchführen können.


Problem Nr. 3: Ein Serverfehler verlangsamte den Software-Upgrade-Prozess

Als wir am 7. November mit der Bereitstellung des Serversoftware-Upgrades begannen, gab eine kleine Anzahl (weniger als 1 %) der Server unerwartete Fehler aus, die letztendlich die Bereitstellung des Updates verhinderten und den gesamten Prozess verlangsamten. Es gab keine Möglichkeit, die Probleme selbst zu beheben, und wir waren gezwungen, sie an unseren Serveranbieter weiterzuleiten.

Obwohl es angesichts des Umfangs der Aufgabe wie ein kleiner Schluckauf erscheint, führte dieser unerwartete Fehler dazu, dass ein kleiner Teil (weniger als 2 %) der Kunden von NitroPack zeitweise kurze Service-Ausfallzeiten erlebte.


Problem Nr. 4: Unerwartete 502-CDN-Fehler verursachten Dienstinstabilität

Als wir dachten, wir wären mit dem Upgrade fertig, begann unser Überwachungssystem, häufig auftretende CDN-Fehler mit dem HTTP-Statuscode 502 zu registrieren.

Leider betraf der Fehler alle unsere Kunden und verursachte einige Tage lang eine Instabilität der Bereitstellung von CDN-Ressourcen. Nach Untersuchung des Problems haben wir ein Software-Update herausgegeben, das die Instabilität des Dienstes dauerhaft behebt.

Nachdem alles mit NitroPack ordnungsgemäß funktionierte, hielten wir ein Retrospektive-Meeting ab, um darüber nachzudenken, was wir basierend auf unseren Erkenntnissen aus diesem Infrastruktur-Upgrade in Zukunft verbessern könnten.

Schritte, die wir unternehmen, um sicherzustellen, dass die gleichen Probleme in Zukunft nicht noch einmal auftreten

Insgesamt sind wir stolz darauf, wie das gesamte Upgrade verlaufen ist. Wir erlebten gelegentliche Instabilität des Dienstes, aber dies geschah auf kontrollierte Weise, und wir konnten Ausfallzeiten des gesamten Dienstes für den gesamten Kundenstamm erfolgreich vermeiden.

Wir wissen jedoch, dass es uns als Unternehmen und Dienst nicht weiterbringt, uns selbst auf die Schulter zu klopfen und uns ausschließlich auf das zu konzentrieren, was richtig gelaufen ist.

Deshalb möchten wir die Verbesserungen kommunizieren, die wir implementieren werden, um zukünftige Upgrades noch effizienter durchzuführen. Hier sind die wichtigsten Punkte:

Stresstestfähige Staging-Umgebung

Auf diese Weise können wir Fehler erkennen, die nur in Situationen mit hohem Volumen und Zehntausenden von Anfragen auftreten. Das hätte uns beispielsweise geholfen, Probleme mit dem HTTP-Client und wiederverwendbaren Verbindungen im Voraus zu erkennen, und wir hätten das IP-Update ohne Unterbrechungen durchführen können.


Bessere Überwachungs- und Warnsysteme

Basierend auf den Problemen, die während dieses Upgrades aufgetreten sind, konnten wir Bereiche identifizieren, in denen uns sowohl Überwachung als auch Warnungen fehlten. Die gute Nachricht ist, dass wir beides bereits für diese Bereiche konfiguriert haben.


Bessere teamübergreifende Zusammenarbeit und proaktivere Kundenkommunikation

Da die verschiedenen Teams, die an dem Upgrade beteiligt waren, nicht optimal aufeinander abgestimmt waren, hatten wir das Gefühl, dass wir unseren bestehenden Kunden den Fortschritt des Upgrades nicht proaktiv und zeitnah mitteilen konnten. Wir hatten unsere Seite status.nitropack.io, damit jeder verfolgen konnte, was mit dem Upgrade geschah, aber das war nicht genug.

Beim nächsten Mal werden wir den Fortschritt des Upgrades über so viele Kanäle wie möglich kommunizieren, einschließlich Social Media, E-Mail, Dashboard und Website!


Bessere Koordination mit unserem Serveranbieter

Für zukünftige Updates werden wir uns um eine bessere Koordination mit unserem Dienstanbieter bemühen, um zeitnahe Lösungen für unerwartete Probleme zu gewährleisten. Dies hilft uns, unvorhergesehene Serverfehler effizienter zu behandeln.

Abschließend möchten wir allen unseren Kunden für ihre Geduld und ihr Verständnis danken. Ihr Vertrauen ist unser Antrieb, unseren Service ständig zu verbessern.