Runbooks

Mar 07 2023
Un meilleur ami de la personne de garde
Introduction Les runbooks ne sont pas une nouveauté, au contraire ils existent depuis de nombreuses années. Un Runbook peut être considéré comme un guide pratique pour effectuer une tâche qui peut être utilisé pour la réponse aux incidents en cas d'alerte.

Introduction

Les runbooks ne sont pas une nouveauté, au contraire ils existent depuis de nombreuses années. Un Runbook peut être considéré comme un guide pratique pour effectuer une tâche qui peut être utilisé pour la réponse aux incidents en cas d'alerte.

Ce guide pratique peut inclure des textes, des listes de contrôle, des diagrammes, des flux de travail, à peu près tout ce qui facilitera la tâche de la personne d'astreinte lors d'un incident.

Les runbooks peuvent être utilisés pour accélérer la réponse aux incidents courants

Ceci est un exemple de Runbook sur ce qu'il faut faire lorsque les cibles Prometheus sont en panne

Pourquoi c'est important

Avoir un runbook contenant une liste d'étapes pour répondre à un incident, ou pour effectuer une action spécifique ou déclencher des étapes est inestimable pour une personne d'astreinte qui est appelée à 2 heures du matin. Ces étapes aident la personne de garde à déboguer, atténuer et résoudre les problèmes, sans avoir besoin de comprendre chaque problème et de comprendre le fonctionnement du service.

Cela réduira les temps d'arrêt et donnera à la personne de garde quelques heures supplémentaires pour dormir :)

Selon le Google SRE Workbook, les Runbooks devraient "réduire le stress, le temps moyen de réparation (MTTR) et le risque d'erreur humaine".

Que doit contenir un Runbook ?

  • Un Runbook doit se concentrer sur une tâche et contenir les étapes requises pour résoudre un problème.
  • Les étapes du runbook doivent être claires, afin que n'importe qui puisse résoudre rapidement le problème, même pour une personne d'astreinte à moitié endormie.
  • Chaque problème doit inclure un nom d'alerte et une description .
  • Il doit décrire la gravité du problème.
  • Il doit décrire toutes les dépendances à d'autres services.
  • Il devrait contenir ce que l' impact commercial est.
  • Il doit contenir des informations sur la manière de communiquer avec les parties prenantes, le client et l'organisation.
  • Il doit contenir des informations de contact et de garde .
  • Une section de FAQ (questions fréquemment posées)

Création d'un Runbook

Tout cela semble bien, mais comment créez-vous une telle chose? Par où commencer ?

Vous pouvez commencer à créer un runbook en écrivant des instructions pour une tâche basée sur un incident précédent. Pensez aux incidents les plus courants. Ces informations peuvent être récupérées à partir des post-mortems .

Chaque fois qu'une alerte est créée, une entrée de runbook correspondante doit être créée.

Pour commencer, je vous recommande de consulter la collection des GitLab Runbooks . Ce référentiel fournit de nombreux runbooks pour commencer et c'est un bon début pour vous inspirer sur la façon de créer un runbook qui fonctionne pour votre équipe / organisation.

Une première étape pourrait consister à rédiger un runbook d'astreinte pour l'équipe avec des instructions sur la façon de répondre aux alertes. À titre d'exemple, ce Runbook On-Call fournit un modèle pour les personnes qui commencent un quart de travail sur appel.

Qui devrait rédiger les Runbooks ?

La propriété et la responsabilité doivent incomber aux équipes. Ils sont responsables de la mise à jour et de l'exactitude des runbooks. L'équipe SRE peut fournir un modèle aux équipes, mais elles en sont responsables et chaque modification de celui-ci est un effort conjoint de l'équipe.

Où les Runbooks doivent-ils être stockés ?

Les Runbooks peuvent être conservés dans un référentiel GitHub (bon pour l'automatisation) ou sur une page de confluence, une page wiki, etc. L'important ici est qu'ils sont faciles à trouver et à rechercher lors d'un incident.

À quelle fréquence dois-je mettre à jour les Runbooks ?

Un problème courant avec les runbooks est qu'ils deviennent obsolètes. Un runbook doit être constamment mis à jour et contenir les informations les plus récentes. Si une nouvelle dépendance est ajoutée, des informations sur cette dépendance doivent être ajoutées à la documentation.

Ressources

Voici quelques articles que je recommanderais pour en savoir plus sur les Runbooks.

https://gitlab.com/gitlab-com/runbooks

https://sre.google/workbook/on-call/

Si vous avez trouvé cela utile, veuillez appuyer sur ce bouton et suivez-moi pour obtenir plus d'articles sur votre flux.