Die API war weg, wie kam es denn dazu?

Sebastian
11.08.2016 3 3:15 min

Viele unserer Kunden kennen und schätzen unsere APIs und die Möglichkeiten der Nutzung. (Und wem das jetzt noch gar nichts sagt, der kann diesen Artikel lesen, danach ist garantiert alles klar.) Letzte Woche Mittwoch allerdings war die XMLRPC-API, die die Grundlage für unseren Faxdrucker, das Firefox-Plugin und viele von unseren Kunden selbst entwickelte Lösungen bildet, für mehrere Stunden nicht verfügbar. Wir wollen kurz erklären, wie es dazu kam und was wir getan haben, dass das hoffentlich nicht wieder vorkommt.

Was war passiert?

Gegen Mittag berichteten mehr und mehr Kunden, dass sie Probleme mit dem Faxversand und -empfang hätten. Ein Blick in die Graphen unseres Monitorings zeigte auch, dass da etwas „komisch“ war. Also haben wir uns rollenübergreifend zusammengesetzt und versucht, das Problem zu verstehen. Und ziemlich schnell kamen wir auf ein System, das für das Speichern und Abrufen von Eventlisteneinträgen, Faxen, Voicemails, Gesprächsmitschnitten usw. zuständig ist.

Und was hat das mit der API zu tun?

Wir haben dann festgestellt, dass ziemlich viele Anfragen an dieses System von der API kamen. Und der Grund dafür war auch recht verständlich. Wenn ein Kunde über die API ein Fax verschickt, z.B. über den Faxdrucker, dann möchte dieser auch wissen, ob das Fax erfolgreich versendet wurde. Und dafür fragt er regelmäßig nach, wie der Status dieses Faxes nun ist. Und zwar so lange bis wir eine endgültige Antwort geben.

Für ein einzelnes Fax mag das nicht schlimm sein. Wir haben allerdings auch Kunden, die mehrere Tausend Faxe pro Tag versenden. Und wenn die Applikation des Kunden nun für jedes Fax immer wieder nach dem Status fragt, gleichzeitig aber auch immer mehr Faxe bei uns zum Versand abkippt, werden die Anfragen an unsere API immer mehr. Und irgendwann macht das oben genannte System nichts mehr als der API zu antworten, dass es keine Neuigkeiten zu all den Faxen gibt.

Aber was war denn nun das eigentliche Problem?

db11_transactionsWir haben deshalb die API eine Zeit lang abgeschaltet, um dem System Luft zu geben, die eigentlichen Aufgaben zu erledigen. Das hat allerdings nicht die erhoffte Entspannung gebracht, also haben wir weiter gesucht. Schlussendlich stellte sich eine Datenbank als Verursacher der Probleme heraus, die zwar noch lief aber nicht wie gewohnt arbeitete. Als recht deutlichen Indikator dafür konnte man sehen, dass die laufenden und gelockten Transaktionen zum Beginn des Problems schlagartig in die Höhe gingen. Leider hatten wir diesen Wert zwar im visuellen Monitoring (also Graphen), allerdings nicht im Alarmierungssystem.

Ein Neustart hat den ganzen Spuk beendet – unbefriedigend, ich weiß. Nachdem die angesammelten Eventlisteneinträge, Faxe und Voicemails dann nach und nach abgearbeitet wurden, haben wir die API wieder eingeschaltet. Am Ende stand dann aber leider doch ein Ausfall von mehreren Stunden zu Buche.

Passiert das jetzt häufiger?

Nein. Zumindest haben wir alles dafür getan, um es beim nächsten Mal schneller mitzubekommen und zu beheben. Wir haben uns am nächsten Tag zusammengesetzt, die Gründe und Auswirkungen nochmals beleuchtet und entsprechende Maßnahmen getroffen. Diese sind:

  • Wir überwachen den Füllstand bestimmter Tabellen dieser Datenbank und werden bei Überschreiten von Schwellwerten alarmiert.
  • Wir überwachen mehr Performance-Werte aller Datenbanken und werden bei Überschreiten von Schwellwerten alarmiert.
  • Die API speichert Anfragen nach dem Faxstatus für eine gewisse Zeit zwischen und verhindert somit eine Servicedegradierung durch wildgewordene Client-Applikationen.

Diese Maßnahmen sollten uns helfen, beim erneuten Auftreten des Problems schneller die Ursache zu erkennen und die Auswirkungen zu begrenzen.

Zu den Kommentaren

Teilen Sie diesen Beitrag

6 Kommentare


Thomas:

Mal einfach für 3 Tage alle Projekte anhalten – wie sehr würde ich mir das bei uns in der Firma wünschen – geniale Idee.

antworten

Ein Nichtmehrlange-Kunde:

„Unser Ziel war es, Funktionen zu bauen, die verblüffen: Huch, das geht?““: Das ist gelungen! Dazu gebuchte Sipaccounts sind über Nacht einfach verschwunden. Echt verblüffend. Antwort vom Support: Natürlich keine. Aus Sipgate wird so leider Siphate. Huch, das geht!

antworten

Marcel:

Oh, das klingt nicht gut. Wenn Sie mir (mellor@sipgate.de) mal Ihre Kundennummer schicken, schaue ich gerne nach, was schief gelaufen ist.

antworten

nik_cake:

Ich würde mir mal WOW!Days für Kunden wünschen. Das Feedback-Forum vegetiert ja vor sich hin (http://feedback.sipgate.de/forums/107443-sipgate-team?lang=de), hier sind viele produktive und nützliche Kundenwünsche geäußert, welche (teilweise) seit Jahren unberücksichtigt bleiben.

Vielleicht stellt ihr ja mal ein Team ab, welche das Feedback-Forum aus dem Dornröschenschlaf wecken und die größten/besten Wünsche in 3-WOW!Tagen umsetzen. Das wär mal was…

antworten

Thorsten:

WoW!
Wie waere es mit:
-Sammeln aller Verbesserungsvorschlaege der Kunden/Mitarbeiter in einem zentralen Forum
-Einem „Steering“ Meeting fuer alle Verbesserungsvorschlaege jeden Freitag um xx Uhr, das jede einzelne Idee der Woche abschliessend bearbeitet.
-Garantiertes „Steering“ Feedback zu allen Verbesserungsvorschlaegen der Woche nach diesem Meeting

Damit das auch eine richtige Herausforderung fuer Euch wird, erwarte ich folgendes:

Kunde/Mitarbeiter schreibt einen Verbesserungsvorschlag z.B. am Donnerstag und erwartet, dass darueber im Meeting am Freitag abschliessend entschieden wird, Antwort hier sollte z.B. lauten:
1. Machen wir oder machen wir nicht (und auch warum nicht)
2. Falls Ihr die Verbesserung einfuehrt, das Datum der Einfuehrung

Das ist keine Utopie, ich kenne eine australische Softwarefirma, die das genau so seit ca. 10Jahren umsetzt und auch sich selbst an Ihren versprochenen Daten misst. Ich denke mit derzeit 92% liegen die super gut, d.h. wenn die Firma versprochen hat das neue Feature am 12.02.2017 einzufuehren, dann schaffen sie es in 92% aller Faelle und das ist logistisch mit allem was so zwischendrin in der Programmierphase passieren kann ein genialer Wert. Das heisst aber auch, dass deren „Steering“ Kommitee hochrangig besetzt ist mit denen die die Entscheidung treffen koennen und denen, die die entstehende Arbeit auch direkt abschaetzen koennen.

antworten

Marcel:

Vielen Dank für die Ideen zu unserem sipgate team Feedback-Forum! Da haben wir tatsächlich noch Nachholbedarf, besonders was die Reaktionszeit angeht. Wir überlegen zur Zeit, wie wir Feedback und die Ideen unserer Kunden noch sinnvoller kanalisieren können.

antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.