diff --git a/content/blog/post-mortem/sre-interpretation-incident.md b/content/blog/post-mortem/sre-interpretation-incident.md new file mode 100644 index 00000000..06a48a3b --- /dev/null +++ b/content/blog/post-mortem/sre-interpretation-incident.md @@ -0,0 +1,184 @@ +--- +type: "post" +title: "Interprétation et diagnostic d'un incident en production." +date: "2023-10-16" +lastModified: ~ +tableOfContent: true +description: "Interprétation pas à pas d'un incident sur infrastructures applicatives, cas pratique d'un incident vécu." + +thumbnail: "content/images/blog/thumbnails/thisisengineering.jpg" +credits: { name: "ThisisEngineering RAEng", url: "https://unsplash.com/@thisisengineering" } +tags: ["sre", "devops", "incident", "post-mortem"] +categories: ["post-mortem"] +authors: ["rix"] +--- +## Préambule + +Premier article concernant la résolution d'incidents, toujours à but de formation. +N'ayant jamais vu beaucoup d'articles traitant du sujet il nous parait intéressant d'expliquer et commenter les post-mortems qu'il nous arrive d'envoyer à nos clients. +C'est aussi, à notre avis, une bonne façon (si ce n'est la meilleure) d'expliquer pourquoi le DevOps est important dans les métiers SRE, à quoi il sert et comment nous utilisons les outils que l'on met en place. + +Gardez à l'esprit que **chaque applicatif est unique** (même si l'on retrouve des comportements type) et que l'un des meilleurs indices d'anomalie et **« l'écart par rapport à la moyenne normale »**, autrement dit un comportement qui **diffère fortement** de ce que vous avez l'habitude de voir. + +Pour finir, c'est l'exercice le moins « confortable » du métier. +En fonction de sa gravité, l'incident infra peut passer inaperçu comme **impacter de manière significative** l'activité d'un client, **l'expérience des équipes** dans ce cas de figure est souvent un facteur clé pour la rapidité de la résolution. + +## Contexte + +Le contexte est assez classique pour de l'application web. + +- Un applicatif métier « relativement » pas mal utilisé en journée recevant environ **240 requêtes/s** (Réparties à **80% sur l'API**, **les 20% restant** étant dédié à du **back-office**); +- 6 frontaux web (Nginx / PHP-FPM); +- 1 répartiteur de charge managé; +- 1 répartiteur de charge SQL MaxScale; +- 2 instances MariaDB en configuration « Primary / Replica ». + +**En complément:** + +- L'API répond principalement à une application mobile; +- Le back-office déclenche l'envoi de notifications (~ 800 000/jour) vers ces mêmes applications. + +## Déroulé de l'incident + +- **Durée totale de l'incident:** 1h20 +- **Impact:** Significatif +- **Type:** Indisponibilité complète + +**Comme tous les incidents, nous sommes alertés par nos sondes infra:** + +
Il n'est pas rare d'avoir des alertes isolées dues à une défaillance d'un hyperviseur ou à une panne réseau, dans notre cas de figure l'effondrement de l'infrastructure est très rapide (inférieure à 3 minutes), aucun doute donc sur « un gros pépin ».
+Les alertes infras se terminent par une alerte StatusCake sur le « endpoint » applicatif HTTP configuré.
+Sur l'ensemble des instances nous ne constatons pas d'augmentation de la consommation des ressources, de même le traffic n'explose pas, nous ne sommes donc pas dans le cas d'un afflux massif de connexions (légitimes ou non d'ailleurs), ni d'une charge anormale du à un script mal conçu.
+Nous disposons toutefois d'un premier indice au niveau réseau, puisque nous constatons une augmentation des connexions « ouvertes » et une chute flagrante des connexions en attente de fermeture.
+