Ich versuche zu verstehen, wie Daten am besten erfasst werden können, um mit der Messung der MTTR-Metriken (Mean Time To Repair) zu beginnen, und ich muss mich darum kümmern, wie sich "Rollback" positiv oder negativ auf die MTTR auswirkt.
Szenario 1
Unter der Annahme, dass eine solide Überwachung vorhanden ist, wird Code bereitgestellt, der einen Vorfall verursacht, der ziemlich schnell erkannt wird (niedriger MTTI). Zum Zeitpunkt der Identifizierung gibt es zwei mögliche Hauptpfade (ja, ich vereinfache dies zu Diskussionszwecken zu stark):
Setzen Sie die Bereitstellung zurück und geben Sie schnell Stabilität zurück, jedoch ohne die beabsichtigten Funktionen in der Produktion.
Roll-Forward mit zusätzlichen Änderungen, die den Vorfall beheben und die beabsichtigten Funktionen am Leben erhalten.
In diesem Szenario ist die MTTR verdammt niedrig, da die Stabilität der Website ziemlich schnell wiederhergestellt werden kann. Das beabsichtigte Ergebnis der Änderung ist jedoch nicht live, und daher bleibt der Code / die Funktion / die Änderung noch in Bearbeitung. Wenn ein Ziel eine niedrige MTTR ist, scheint dies einen Anreiz für das Rollback als Wiederherstellungsmechanismus zu sein.
Szenario 2
In diesem Szenario wird MTTR streng daran gemessen, wie lange es dauert, bis der erwartete Code / die erwartete Funktion / Änderung in der Produktion ordnungsgemäß funktioniert. Selbst wenn ich ein Rollback durchführe, läuft der MTTR-Timer weiter, bis meine "feste" Codeänderung in das Produkt übergeht. In diesem Fall scheint MTTR an die Stabilität der Geschäftsergebnisse gebunden zu sein, anstatt nur "Hey, die Dinge sind stabil".
Die Antwort mag jetzt so einfach sein, dass MTTR nicht als Metrik in einem Vakuum verwendet wird, sondern in Verbindung mit der Änderungsfehlerrate - eine extrem niedrige MTTR, die durch häufige Rollbacks verursacht wird, könnte auf eine himmelhohe Änderungsfehlerrate hinweisen. Die Idee, die MTTR-Messung vom Geschäftsergebnis zu trennen, scheint mir jedoch nicht richtig zu sein.
Ich überdenke das vielleicht viel, aber ich bin gespannt, wie andere die MTTR messen und wie der Endzeitpunkt für die "Wiederherstellung" ist. Verwenden Sie es einfach als Stabilität oder bestimmen andere Faktoren, was "wiederhergestellt" bedeutet?
Die mittlere Zeit zur Genesung hat ein implizites Thema - die mittlere Zeit zur Genesung was ? Dies zu definieren ist der Schlüssel zur effektiven Verwendung der Metrik.
Stellen Sie die allgemeine Verfügbarkeit Ihrer Produktionswebsite wieder her? Stellen Sie die Funktionalität einer bestimmten Funktion wieder her, die einen Fehler enthält? Sobald Sie wissen, was Sie tatsächlich messen möchten, ist es viel einfacher, es zu messen!
Der allgemeine Schwerpunkt Ihrer Frage scheint darin zu liegen, die konkurrierenden Ziele der Versandfunktionen und der Aufrechterhaltung der Zuverlässigkeit zu verfolgen, was ein jahrhundertealter Kampf ist. Traditionell sind es die Aufgaben der Entwickler, neue Dinge zu implementieren, und die Aufgaben der Systemadministratoren, um zu verhindern, dass Dinge kaputt gehen. Dies führt zu Konflikten zwischen den Abteilungen, da Änderungen dazu neigen, zu brechen. Eine der häufig mit DevOps verbundenen Philosophien ist die Idee, dass Entwickler und Ops-Ingenieure eng zusammenarbeiten sollten, um diese Spannungen abzubauen.
Möglicherweise interessiert Sie auch der Ansatz von Google für dieses Problem, nämlich "Fehlerbudgets" für Entwicklungsteams bereitzustellen. Sobald sie die Stabilität zu sehr bestraft haben, müssen sie den Rest des Quartals nur noch an der Stabilität arbeiten. Zusammen mit diesem haben die Website Zuverlässigkeit Ingenieure verfügbar Ziele, und wenn sie über zu schießen, werden ermutigt , sie mehr Änderungen durchzulassen; Die Idee dabei ist, dass ihr Ziel nicht einfach darin bestehen muss, die Zuverlässigkeit so hoch wie möglich zu halten, da sie dann motiviert wären, Veränderungen in jeder Situation zu bekämpfen.
quelle