Samstag, 20. Februar 2016

[LL Blog] - Aktuelle Probleme mit dem Nightly Biller

von Linden Lab am 18.02.2016 um 10:20pm PDT (19. Februar, 7:20 Uhr MEZ)
- Blogübersetzung -


Quelle: SL Brand Center
Anm.: Nur zwei Tage nach dem Bericht von Chris Linden über seine Erlebnisse im Serverteam von Linden Lab, hat diesmal Steven Linden einen Bericht über die kürzlichen Probleme beim Second Life Bezahlsystem veröffentlicht. Das waren eine Reihe von Störmeldungen, die alle im Februar aufgetreten sind.

Da es ansonsten von LL zur Zeit kaum andere Meldungen gibt, habe ich auch diesen zweiten Blogpost übersetzt, der wesentlich einfacher für Nicht-Techniker zu verstehen ist.


Aktuelle Probleme mit dem Nightly Biller

In der vergangenen Woche haben vielleicht eine Reihe von Second Life Kunden bemerkt, dass ihre Premium-Mitgliedschaft Abonnements, die Mainland-Gebühren und die monatlichen Gebühren für private Regionen, nicht pünktlich in Rechnung gestellt wurden, wobei auch einige Kunden per E-Mail versehentlich eine Mitteilung für überfällige Rechnungsbeiträge erhalten haben, wie wir auf unserem Status Blog meldeten.

Dieser Vorfall wurde inzwischen behoben und unser nächtliches Abrechnungssystem hat alle Benutzer abgearbeitet, die eigentlich in der vergangenen Woche ihre Rechnung hätten bekommen sollen.

Ich möchte euch einige Details aus unserer Störungsanalyse weitergeben, die dazu geführt haben, diesen Ausfall zu verursachen und was noch wichtiger ist, was wir getan haben, um dies in Zukunft zu verhindern.

Zusammenfassung

Jede Nacht stellt einer unserer Batch-Prozesse eine Liste der Benutzer zusammen, die an diesem Tag in Rechnung gestellt werden sollen. Diese Liste wird dann über einen unserer internen Datendienst-Untersysteme verarbeitet. Intern bezeichnen wir diesen Prozess als "Nightly Biller" (siehe Überschrift).

Eine planmäßige Installation für eine neue interne Funktion auf genau dieses Datendienst-Subsystem, enthielt dann versehentlich eine Fehlfunktion, die den Nightly Biller Prozess daran hinderte, bis zu seiner Fertigstellung durchzulaufen.

Ablauf der Ereignisse

Am 1. Februar 2016 hatten wir mit der Aufspielung von Code auf einen unserer internen Datendienst-Subsysteme begonnen. Für diese spezielle Aufspielung hatten wir uns dazu entschieden, den Code auf die Backend-Maschinen über einen Zeitraum von vier Tagen zu implementieren, mit Installationen auf sechs Dienstrechner pro Tag. Die Aufspielung wurde am 4. Februar abgeschlossen.

Das erste Support.Problem in Bezug auf Fehler bei der Rechnungsstellung, tauchte am 8. Februar auf, aber da wir nur einen Vorfall hatten, der unserem Team für Rechnungsfragen gemeldet wurde, haben wir uns entschieden zu warten, um zu sehen, ob es in der nächsten Nacht korrekt abgerechnet wurde.

Allerdings wurde uns am Morgen des 9. Februar mitgeteilt, dass 546 private Regionen nicht in Rechnung gestellt worden waren und es begann eine interne Untersuchung mit einem zusammengestellten Team aus Second Life Technikern, der Rechnungsabteilung, der Qualitätskontrolle und einigen Netzwerk-Spezialisten. Das Team identifizierte die Fehlfunktion um 9:00 Uhr und spielte die erforderlichen Code-Fixes auf unserem Build-System ein. Um die Mittagszeit wurde dann die vorgeschlagene Lösung zum Testen auf unsere Bereitstellungsumgebung geschoben.

Unglücklicherweise entdeckte man bei den Tests in der Nacht ein weiteres Problem mit dem neuen Code, der die Möglichkeit verhinderte, dass neue Nutzer sich in Second Life hätten anmelden können. Am 10. Februar setzten wir die Untersuchungen an diesem Problem fort und prüften, welche Verbindung es sowohl zum Nightly Biller System als auch zu unserem neuen internen Datendienst-Code gab.

Bis zum 11. Februar hatten wir die Entscheidung getroffen, auf die vorherige Code-Version zurückzugehen (ein Rollback), mit der unser Nightly Biller erfolgreich seine Arbeit verrichtet hatte. Das hat dann aber unsere neue interne Funktion deaktiviert. Eine abschließende Untersuchung des neuen Code deckte dann ein Problem mit einer veralteten Version einiger Linden-spezifischen Web-Bibliotheken auf. Nachdem diese Bibliotheken aktualisiert und auf unserer Testumgebung bereitgestellt waren, konnte unser QA-Team erfolgreich die Tests für unseren Nightly Biller, unserem neuen internen Datendienst-Code und dem Benutzerregistrierungsablauf durchführen.

Der neue Code wurde am 11. Februar um 7:00 Uhr in unser Produktiv-Subsystem eingespielt und das Rechnungs-Team konnte dann bestätigen, dass der Nightly Biller an diesem Abend erfolgreich bis zum Ende durchgelaufen ist.

Weitere Schritte

Als Folge dieses Vorfalls nahmen wir einige interne Prozessänderungen vor:
  • Erstens werden wir unser Build-System ändern, um sicherzustellen, dass wir immer die neueste Version unserer internen Bibliotheken verwenden, wenn wir neuen Code erzeugen.
  • Zweitens werden wir Änderungen an unserem Workflow für die Aufspielungen von Code vornehmen, um sicherzustellen, dass solche Fehlfunktionen in Zukunft nicht wieder vorkommen können.

Schlussfolgerungen

Wir sind bei Linden Lab immer bestrebt, ein geringes Risiko bei den Software-Aufspielungen einzugehen und jeder Antrag für aufzunehmenden Code, wird auf potenzielle Risiken bewertet. Um unser Risiko noch weiter zu reduzieren, haben wir interne Dokumentation, die den Freigabeprozess beschreibt. Leider wurde ein wichtiger Schritt in diesem Prozess übersehen, was zu einer hohen Risikosituation und der Fehlfunktion unseres Nightly Biller geführt hat. Die oben genannten Änderungen sind bereits im Gange, was die Wahrscheinlichkeit von Zwischenfällen wie diesen reduzieren wird.

Steven Linden

Quelle: Recent Issues with the Nightly Biller

Keine Kommentare:

Kommentar veröffentlichen