Wie wir email.eu gebaut haben · Teil 6 von 7

Wie wir email.eu am Laufen halten: prüfe das Versprechen, nicht den Prozess

Unsere öffentliche Statusseite zeigt dieselben Zahlen, auf die wir uns selbst alarmieren. Messungen von außen nach innen, Wächter für Ausfälle in Zeitlupe, Cloud-Wartung überstehen, und die nächtliche Kopie, die hunderte Kilometer entfernt liegt.

Jeder Anbieter sagt "Zuverlässigkeit hat für uns oberste Priorität", meist in der Entschuldigung. Dieser Beitrag ist die Fassung ohne Entschuldigung: was wir wirklich betreiben, um email.eu am Laufen zu halten, was wir für die Tage gebaut haben, an denen doch etwas kaputtgeht, und warum unsere öffentliche Statusseite dieselben Zahlen zeigt, auf die wir uns selbst aus dem Bett klingeln. Teil 6 der Reihe.

Messen wie eine Kundin, nicht wie ein Server

Der Grundfehler beim Überwachen ist, die eigenen Server zu fragen, wie sie sich fühlen. Server sind Optimisten. Der Prozess läuft, der Port ist offen, die Platte hat Platz, und währenddessen kann eine Kundin keine Post verschicken, wegen eines Hostnamens im Zertifikat oder einer festsitzenden Warteschlange zwei Ebenen höher.

Unsere Überwachung ist deshalb von außen nach innen gebaut. Messungen laufen gegen jede Säule so, wie eine Nutzerin sie erreichen würde: über die öffentlichen Adressen, über die echten Protokolle, mit Prüfung der Antworten, die ein echtes Programm braucht. Der Mail-TLS-Wächter aus Teil 3 ist das klarste Beispiel: Ein Zertifikat kann gültig und vertrauenswürdig sein und trotzdem den einen Hostnamen verfehlen, auf dem ein strenges Mailprogramm besteht, und nur eine Prüfung, die sich wie dieses Programm verbindet, wird es merken, also verbindet sich unsere genau so. Das Muster, "prüfe das Versprechen, nicht den Prozess", gilt über die ganze Plattform: Messungen melden sich dort an, wo eine Nutzerin sich anmelden würde, und holen, was eine Nutzerin holen würde.

Dieselben Messungen speisen status.email.eu. Zwischen unserer Alarmierung und der öffentlichen Seite liegt keine Marketingschicht; die Verfügbarkeitszahl, die Sie sehen, wird aus den Prüfungen berechnet, die uns wecken. Eine Statusseite, die während Störungen von Hand bearbeitet wird, ist eine Pressemitteilung. Unsere ist ein Messinstrument.

Wächter für Ausfälle in Zeitlupe

Störungen bekommen alle Aufmerksamkeit, aber die Mängel, die eine Plattform wirklich aushöhlen, sind die langsamen: eine Platte, die über Wochen vollläuft, eine Zertifikatserneuerung, die einen Hostnamen fallen lässt, eine nächtliche Aufgabe, die still aufhört. Für jeden davon betreiben wir einen kleinen Wächter, dessen einzige Aufgabe professioneller Pessimismus ist. Einer sieht täglich nach den Mailzertifikaten, wie oben. Einer sieht nach dem freien Plattenplatz der Datenbanken und beschwert sich lange bevor "lange bevor es zählt" dringend wird. Das Muster ist bewusst dumm: ein winziger unabhängiger Prüfer pro bekannter langsamer Ausfallart, denn ein subtiles Überwachungssystem ist noch ein Ding, das subtil versagen kann. Jedes Mal, wenn wir eine neue langsame Ausfallart finden, bekommt sie ihren eigenen Wächter, und die Sammlung wächst nur.

Für den schlechten Tag entwerfen: nehmen Sie an, der Boden bewegt sich

Unser Cloud-Anbieter ersetzt regelmäßig die Maschinen unter dem Kubernetes-Cluster. Kernel-Patches, Hardwarewartung, Routine und halbwegs unangekündigt. In einer verwalteten Cloud bewegt sich der Boden, und es ist unsere Aufgabe, daraus ein Nicht-Ereignis zu machen. Alles Kritische läuft deshalb mit mindestens zwei Replikaten, und, genauso wichtig, dem Planer wird ausdrücklich gesagt, welche Paare nie gleichzeitig ausfallen dürfen, sodass Wartung die Maschinen in einer Reihenfolge leert, die jeden Dienst beschlussfähig hält. Der Maßstab für eine Wartungsnacht ist nicht "wir waren schnell wieder da". Er lautet "es ist nichts Wahrnehmbares passiert".

Die Kopie, die woanders wohnt

Redundante Server schützen davor, dass Maschinen ausfallen. Sie schützen nicht vor den größeren, selteneren Kategorien: einem Ereignis auf Rechenzentrumsgröße, oder einem Betriebsfehler, der sich brav auf jedes Replikat kopiert. Dafür werden die Kerndaten von Kundinnen jede Nacht in eine zweite OVH-Region hunderte Kilometer entfernt kopiert, auf getrennter Infrastruktur.

Ein Backup, das niemand ansieht, ist eine Hoffnung und kein Backup, also hat die Kopie ihre eigene Messung: Die Verwaltungsoberfläche prüft, wie frisch die Kopie in der anderen Region ist, und behandelt eine veraltete Kopie als eigenen Vorfall und nicht als etwas, das man während einer Katastrophe entdeckt. Wir halten uns hier an dieselbe Regel wie überall: Behaupten Sie nicht mehr, als in der Produktion läuft. Wenn wir neue Produkte hinzufügen, gehört es zum Ausliefern, ihre Daten in diese Kopie zu bringen, und die Frischeprüfungen sind die Durchsetzung.

Woran Sie uns halten können

Was wir versprechen, ist Struktur: zwei von allem Kritischen, bewusst klein gehaltene Schadensbereiche, Wächter, die Probleme vor den Kundinnen sichtbar machen, eine Statusseite, die uns nicht schmeicheln kann, und gerade Antworten darauf, wenn doch etwas kaputtgeht. Zuverlässigkeit ist kein Heldentum. Sie ist das geduldige Entfernen jedes Grundes, eines zu brauchen.

Als Letztes in der Reihe, Teil 7: die sechzig Sekunden, nachdem Sie auf Anmelden klicken, und dort muss jede Säule dieser Reihe gleichzeitig funktionieren.