diff --git a/Writerside/images/image_863.png b/Writerside/images/image_863.png new file mode 100644 index 0000000..7501f8a Binary files /dev/null and b/Writerside/images/image_863.png differ diff --git a/Writerside/topics/04/Software Engineering/04_Operations.md b/Writerside/topics/04/Software Engineering/04_Operations.md index 114493d..01e8c31 100644 --- a/Writerside/topics/04/Software Engineering/04_Operations.md +++ b/Writerside/topics/04/Software Engineering/04_Operations.md @@ -1 +1,73 @@ # Operations +## Logging and Monitoring +- Wichtig, was in Production passiert + - Business kann Feedback bekommen + - Wenn etwas schiefgeht, können die Operatoren direkt benachrichtigt werden + - Historische Daten sind wichtig für zukünftige Planungen + +### Collecting Data +- Hardware + - Temperatur, Lüftergeschwindigkeit, Stromverbrauch, ... +- Server, Infrastruktur + - Memory-, Swap-, CPU-Verbrauch, Speicherplatz, I/O-Bandbreite, ... +- Middleware + - Ressourcennutzung, Antwortzeit, Datenbankverbindungen, ... +- Anwendungen + - Anwendungsspezifische Logs + - Gesundheitsspezifisch, Status + - Daten, die Businessuser interessieren + +#### Zentralisierte Logging Infrastruktur +- Logs sollten irgendwo aufgezeichnet werden + - nicht dort lassen, wo sie generiert werden + +## Application Logging +- Wofür? + - Debugging + - unnormales Verhalten aufzeichnen + - Security +- Sollten für den Menschen lesbar sein + +### Log Levels +![image_863.png](image_863.png) +#### Trace +- Primär für Devs +- technische Steps einer Transaktion + +#### Debug +- sämtliche Debugging-Aktivitäten +- enthalten häufig (zu) viele Informationen + - in Produktion am besten nicht mehr sichtbar + +#### Info +- Diagnostiziert, ob System korrekt läuft + +#### Warning +- Wenn Dinge nicht laufen, wie gewünscht + - Risiko, dass Error entsteht, Software läuft weiter +- Erfordern keine direkte Intervention + +#### Error +- Events, die Interventionen erfordern + - bspw. _nullpointerexception_ +- Logevents sollten Errorursache mit aufzeichnen + +#### Fatal +- Exceptionelle Error-Events +- Anwendung muss plötzlich stoppen +- möglichst viele Informationen sollten angezeigt werden + + +### Good Practices +- Frameworks nutzen, wenn möglich + - Struktur bleibt gleich + - Es kann gezielt ausgewählt werden, wie viele Log-Levels ausgegeben werden sollen +- Klare Sprache + - Maschinen und Menschenlesbar +- Kontext ist essenziell + - Was ist passiert + - Wann ist es passiert + - Wo ist es passiert + - Warum ist es passiert + - Wer hat es ausgelöst +