Blog

Tests de bout en bout des fournisseurs de SMS : c'est ainsi que nous garantissons la livraison des alertes SMS

par Ashwin Jiwane 28 avril 2014 | 4 minutes de lecture

La fiabilité est importante pour nous. Nous injecter de la défaillance dans nos systèmes tous les vendredis pour le prouver. Mais lorsqu'il s'agit d'envoyer des alertes, la fiabilité va au-delà de l'écriture d'un code sans faille. Nous nous appuyons sur plusieurs opérateurs tiers pour envoyer des alertes à nos clients. Si un SMS n'est pas envoyé, vous n'êtes pas averti d'une panne. Nous ne pouvons pas faire l'autruche en vous disant que c'est parce que nos fournisseurs étaient en panne. Ce n'est pas suffisant. Nous devons trouver un moyen de garantir que vous recevrez vos alertes quoi qu'il arrive.

Au début, nous avons assuré la fiabilité de nos fournisseurs grâce à la redondance. Nous avons plusieurs fournisseurs qui nous aident à envoyer nos alertes SMS à nos clients. La redondance est une excellente chose et c'est quelque chose que nous allons continuer à faire. Mais nous avons le sentiment que nous pouvons faire encore mieux.

Au cours des 4 derniers mois, nous avons mis en place des tests de fournisseurs SMS de bout en bout pour identifier de manière proactive les retards ou les pannes que nos fournisseurs peuvent subir, même si leurs pages d'état publiques sont obsolètes. Nous avons souvent constaté que nos fournisseurs indiquaient que leurs systèmes étaient entièrement disponibles, mais que les messages SMS n'étaient pas reçus, allant même jusqu'à nous envoyer une confirmation de livraison. Grâce aux tests de fournisseurs de bout en bout, nous pouvons rapidement changer l'ordre de nos fournisseurs principaux, secondaires et tertiaires pour garantir que les alertes de nos clients ne soient pas affectées par des pannes inattendues de nos fournisseurs tiers. Avant d'introduire ces tests, nous n'avions pas d'autre choix que de croire nos fournisseurs et de réagir en conséquence.

Comment nous effectuons des tests de bout en bout auprès des fournisseurs de SMS

Nous testons en permanence nos fournisseurs de SMS. Pour nos codes courts, nous envoyons un SMS de test toutes les deux minutes, tout en variant la fréquence pour nos codes longs, moins fréquemment utilisés. Pour effectuer les tests, nous nous envoyons des alertes toute la journée en utilisant chacun de nos fournisseurs. Nous pouvons mesurer le temps nécessaire à la réception du message, le cas échéant, pour déterminer si un fournisseur est disponible (et s'il est performant). Nous déterminons ensuite si nous devons rétrograder ou promouvoir l'utilisation de nos fournisseurs.

Comment nous automatisons les tests de bout en bout des fournisseurs de SMS

  • Actuellement, nous avons 3 téléphones Android avec différents réseaux d'opérateurs mobiles : AT&T, Verizon et T-Mobile. (Nous ajouterons bientôt Sprint)

  • En utilisant notre application Android créée en interne pour ce système de test, nous envoyons des alertes SMS de test depuis notre système à chacun de nos téléphones Android dans une rotation circulaire.

  • À l'aide de Datadog, nous calculons le temps nécessaire à chaque SMS pour atteindre le téléphone de test désigné et le temps que notre application de test met à nous répondre.

  • Sur la base de mesures, nous déterminons si un fournisseur est en panne ou dégradé, puis prenons les mesures appropriées.

Nous considérons qu'un fournisseur est dégradé si sa latence de livraison de SMS est supérieure à 3 minutes ou si aucun SMS n'est reçu lors des deux dernières tentatives sur chacun des réseaux des opérateurs mobiles. Si un fournisseur est dégradé, notre équipe est alertée et remplace le fournisseur de manière proactive pour éviter que nos clients ne manquent l'une de leurs alertes SMS.

L'avenir des tests de bout en bout des fournisseurs de SMS

Actuellement, le processus de changement de niveau de priorité de nos fournisseurs SMS est un processus manuel. Nous recevons une alerte indiquant qu'un fournisseur est dégradé et nous réagissons en conséquence. Au fur et à mesure que nous progressons, nous automatiserons en créant un modèle probabiliste, en nous éloignant de la réception d'alertes de défaillance des fournisseurs.

Ce processus a permis à notre équipe de recevoir des alertes appropriées de nos systèmes de test, ce qui nous évite d'avoir à configurer une variété d'alertes sur différentes ressources pour être informés des problèmes. Cela réduit le nombre total de pages que reçoit notre ingénieur d'astreinte, ce qui nous permet de passer du temps à résoudre les problèmes et à améliorer les processus sans nous laisser distraire par le bruit.

Nous continuerons à nous concentrer sur la fiabilité ici chez PagerDuty. Non seulement ces tests et pratiques d'automatisation maintiennent notre produit à votre disposition, mais nous compilons également de nombreux enseignements tirés de l'état des systèmes avec lesquels nous nous connectons. Nous avons une connaissance définitive des performances de nos fournisseurs de téléphonie mobile sans avoir à nous fier à des rapports externes, ce qui nous permet d'être proactifs et de vous offrir une expérience PagerDuty impressionnante.