Analyse des causes profondes des interruptions de service et mesures de suivi à compter du 21 octobre 2016
Suite à notre post précédent Depuis hier, nous avons souhaité partager les actions que nous allons mener sur la base de notre analyse initiale des causes profondes.
Causes fondamentales primaires et secondaires
En parcourant notre chronologie des événements survenus pendant la panne, nous avons découvert deux problèmes :
- Notre approche de basculement pour les problèmes DNS
- La qualité du suivi pour évaluer l'expérience client de bout en bout
Comme nous l'avons déjà évoqué, nous préférons concevoir nos systèmes dans une architecture multi-maître plutôt que dans une architecture de basculement afin d'obtenir une disponibilité continue. Cette approche, bien que nécessitant un investissement important dans la conception des systèmes, présente les avantages suivants : une capacité prévisible dans les scénarios dégradés, une automatisation accrue et des modifications incrémentielles plus faciles et plus sûres. Cependant, nous n'avions pas d'architecture multi-maître en place pour nos systèmes DNS. Au lieu de cela, nous avons eu besoin d'un basculement manuel vers un fournisseur secondaire pendant la panne.
Mesurer l'expérience client de bout en bout est toujours un défi en cas de problèmes DNS. Après tout, si un client ne peut pas communiquer avec vos systèmes, comment pouvez-vous savoir quelle est son expérience ? Nous nous appuyons fortement sur la surveillance et les alertes sur chaque partie des services de PagerDuty. Nous disposons d'équipes d'ingénieurs dédiées à s'assurer que chaque partie de l'expérience client correspond aux attentes de nos clients. Pendant cette panne, nous n'avons pas été en mesure de diagnostiquer correctement les problèmes rencontrés par les clients car ceux-ci n'étaient pas en mesure d'accéder à nos systèmes. Cela a entraîné un allongement du temps de résolution pour nos clients.
Mesures de suivi
Dans les semaines à venir, nous envisageons d'apporter plusieurs améliorations à notre infrastructure, à nos processus et à notre automatisation. Ces améliorations contribueront à réduire le risque d'une panne à l'échelle du système pour les mêmes causes profondes identifiées.
Adopter une approche multi-maître pour le DNS
Notre priorité absolue est de repenser et de mettre en œuvre une nouvelle architecture DNS qui permet à plusieurs fournisseurs DNS d'être exploités dans une approche multi-maître. Nous mettons à jour nos outils internes et notre automatisation pour nous assurer que nos enregistrements DNS destinés aux clients externes exploitent plusieurs fournisseurs DNS, ainsi que pour nous assurer que nos serveurs internes exploitent un système similaire.
Audit de tous les TTL DNS
Nous disposons de plusieurs points de terminaison que nos clients utilisent pour interagir avec PagerDuty: notre site Web, nos API et nos applications mobiles. Pour garantir une expérience cohérente dans tous ces éléments, nous auditerons les TTL DNS pour nos zones, y compris les enregistrements NS et SOA pour chaque zone.
Manuel d'exploitation pour le vidage du cache DNS
De nombreux fournisseurs DNS publics offrent la possibilité de vider proactivement les caches lorsque les enregistrements ont changé. Par exemple, Google fournit cette fonctionnalité via une interface Web. Nous examinerons quels sont les principaux fournisseurs DNS de nos clients et déterminerons les étapes à suivre par chaque fournisseur pour vider proactivement les caches afin de fournir des enregistrements à jour plus rapidement lorsque cela est possible.
Améliorer la surveillance des utilisateurs réels
Nous utilisons une combinaison de systèmes de surveillance internes et de fournisseurs externes. Pendant cette panne, nous avons utilisé ces systèmes de surveillance pour évaluer l'impact sur le client et déterminer la meilleure façon de hiérarchiser les étapes de résolution. Malheureusement, la plupart des systèmes internes sont conçus pour être une vue de l'intérieur de notre infrastructure et ne décrivent pas correctement notre expérience utilisateur de bout en bout, en particulier pour nos clients des côtes est et ouest des États-Unis. Nous investirons des ressources supplémentaires dans une surveillance globale qui prend en compte l'expérience externe et client de nos systèmes et de notre offre de services globale. Cela inclut notre site Web, nos API et nos expériences mobiles, ainsi que notre expérience de notification.
Améliorer la priorisation des étapes de résolution
Chez PagerDuty, nous exploitons une architecture orientée services pour prendre en charge plusieurs fonctionnalités exploitées par nos clients. Pour la majorité des incidents rencontrés par nos clients, seule une partie de notre service est affectée en cas d’interruption de service. Un composant central tel que DNS n'étant pas disponible, plusieurs composants de notre service ont été affectés. Lors du rétablissement de nos services à l'avenir, nous devons être en mesure de donner la priorité aux services les plus critiques et les plus importants qui comptent le plus pour nos clients.
Améliorer le processus de réponse multi-équipes
Comme indiqué dans la section précédente, nous disposons de plusieurs équipes disponibles en permanence pour aider PagerDuty à fonctionner correctement. Bien que nous exploitions notre propre produit pour nous aider dans nos efforts d’orchestration des ressources humaines, nous n’avions pas tous les outils de support en place pour certaines équipes impliquées. Nous prévoyons de mettre en œuvre des processus et d'améliorer nos meilleures pratiques afin que chaque équipe soit en mesure de résoudre efficacement les problèmes de ses propres services.
Conclusion
Vendredi dernier a été une journée difficile pour presque tous les ingénieurs de garde. Chez PagerDuty, nous sommes très fiers de fournir un service sur lequel nous savons que des milliers de clients comptent. Nous n’avons pas répondu aux attentes élevées que nous nous étions fixées et nous prenons des mesures cruciales pour améliorer continuellement la fiabilité et la disponibilité de nos systèmes. Fort de cette expérience, je suis convaincu que nous fournirons un service encore plus fiable qui sera là lorsque nos clients ont le plus besoin de nous.
Comme toujours, si vous avez des questions ou des préoccupations, n'hésitez pas à me contacter ou à contacter notre équipe d'assistance à support@pagerduty.com