Der Blog

End-to-End-Tests für SMS-Anbieter: So stellen wir sicher, dass SMS-Benachrichtigungen zugestellt werden

von Ashwin Jiwane 28. April 2014 | 4 Minuten Lesezeit

Zuverlässigkeit ist uns wichtig. Wir jeden Freitag Fehler in unsere Systeme einschleusen um es zu beweisen. Aber wenn es um das Senden von Warnmeldungen geht, geht Zuverlässigkeit über das Schreiben von fehlerfreiem Code hinaus. Wir verlassen uns auf mehrere Drittanbieter, um unseren Kunden Warnmeldungen zu übermitteln. Wenn eine SMS nicht zugestellt wird, werden Sie nicht über einen Ausfall benachrichtigt. Wir können nicht den Kopf in den Sand stecken und Ihnen sagen, dass es daran lag, dass unsere Anbieter ausgefallen waren. Das ist nicht gut genug. Wir müssen sicherstellen, dass Sie Ihre Warnmeldungen auf jeden Fall erhalten.

Zunächst haben wir die Zuverlässigkeit unserer Anbieter durch Redundanz sichergestellt. Wir haben mehrere Anbieter, die uns dabei helfen, unseren Kunden SMS-Benachrichtigungen zu übermitteln. Redundanz ist großartig und wir werden das auch weiterhin tun. Aber wir hatten das Gefühl, dass wir es noch besser machen können.

In den letzten 4 Monaten haben wir End-to-End-Tests für SMS-Anbieter eingeführt, um Verzögerungen oder Ausfälle, die bei unseren Anbietern auftreten können, proaktiv zu identifizieren, selbst wenn ihre öffentlich zugänglichen Statusseiten veraltet sind. Wir haben oft festgestellt, dass unsere Anbieter zwar zeigten, dass ihre Systeme vollständig verfügbar waren, SMS-Nachrichten jedoch nicht empfangen wurden, und uns sogar eine Zustellbestätigung schickten. Mithilfe von End-to-End-Tests für Anbieter können wir die Reihenfolge unserer primären, sekundären und tertiären Anbieter schnell ändern, um sicherzustellen, dass die Benachrichtigungen unserer Kunden nicht durch unerwartete Ausfälle bei unseren Drittanbietern beeinträchtigt werden. Vor der Einführung dieser Tests hatten wir keine andere Wahl, als unseren Anbietern zu glauben und entsprechend zu reagieren.

So führen wir End-to-End-Tests für SMS-Anbieter durch

Wir testen unsere SMS-Anbieter kontinuierlich. Für unsere Kurzwahlnummern senden wir alle zwei Minuten eine Test-SMS, während wir die Häufigkeit für unsere weniger häufig genutzten Langwahlnummern variieren. Um Tests durchzuführen, senden wir uns den ganzen Tag über über jeden unserer Anbieter Benachrichtigungen. Wir können messen, wie lange es dauert, bis die Nachricht empfangen wird, wenn überhaupt, um festzustellen, ob ein Anbieter verfügbar ist (und wie gut er funktioniert). Dann entscheiden wir, ob wir die Nutzung unserer Anbieter herabstufen oder fördern sollten.

So automatisieren wir End-to-End-Tests für SMS-Anbieter

  • Derzeit haben wir 3 Android-Telefone mit unterschiedlichen Mobilfunknetzen: AT&T, Verizon und T-Mobile. (Sprint wird bald hinzugefügt)

  • Mithilfe unserer intern entwickelten Android-App für dieses Testsystem senden wir im Round-Robin-Verfahren Test-SMS-Benachrichtigungen von unserem System an jedes unserer Android-Telefone.

  • Mit Datadog berechnen wir die Zeit, die jede SMS benötigt, um das angegebene Testtelefon zu erreichen, und wie lange unsere Test-App braucht, um uns zu antworten.

  • Anhand von Messungen ermitteln wir, ob ein Anbieter ausgefallen oder in seiner Leistung beeinträchtigt ist, und ergreifen dann die entsprechenden Maßnahmen.

Wir betrachten einen Anbieter als herabgestuft, wenn die Latenzzeit für die SMS-Zustellung mehr als 3 Minuten beträgt oder wenn bei den letzten beiden Versuchen in allen Mobilfunknetzen keine SMS empfangen wird. Wenn ein Anbieter herabgestuft wird, wird unser Team benachrichtigt und ersetzt den Anbieter, um proaktiv zu verhindern, dass unsere Kunden SMS-Benachrichtigungen verpassen.

Die Zukunft des End-to-End-Tests von SMS-Anbietern

Derzeit erfolgt das Ändern der Prioritätsstufe unserer SMS-Anbieter manuell. Wir erhalten eine Warnung, dass die Leistung eines Anbieters herabgestuft wird, und reagieren entsprechend. In Zukunft werden wir dies automatisieren, indem wir ein Wahrscheinlichkeitsmodell erstellen und keine Warnungen mehr über fehlerhafte Anbieter erhalten.

Durch diesen Prozess erhält unser Team entsprechende Warnmeldungen von unseren Testsystemen, sodass wir nicht mehrere Warnmeldungen für verschiedene Ressourcen einrichten müssen, um über Probleme informiert zu sein. Dadurch wird die Gesamtzahl der Seiten reduziert, die unser Bereitschaftstechniker erhält, und wir können Zeit damit verbringen, Probleme zu lösen und Prozesse zu verbessern, ohne durch Lärm abgelenkt zu werden.

Wir werden uns hier bei PagerDuty weiterhin auf Zuverlässigkeit konzentrieren. Diese Tests und Automatisierungspraktiken sorgen nicht nur dafür, dass unser Produkt für Sie verfügbar bleibt, sondern wir sammeln auch viele Erkenntnisse über den Zustand der Systeme, mit denen wir verbunden sind. Wir verfügen über umfassende Kenntnisse über die Leistung unserer Mobilfunkanbieter, ohne uns auf externe Berichte verlassen zu müssen. So können wir proaktiv vorgehen und Ihnen ein großartiges PagerDuty Erlebnis bieten.