Artefaktgedanke: Beobachtbarkeit und Gegendruck fĂŒr ein wachsendes OZMAI Brain
Mit wachsender KomplexitÀt entsteht die Gefahr, dass Fehler nicht mehr als offensichtliche Fehlfunktion erscheinen.
Ein System kann weiterhin laufen und trotzdem Eigenschaften entwickeln, die erst spÀter problematisch werden:
- einzelne Bereiche wachsen unverhĂ€ltnismĂ€Ăig stark,
- Traversierungen werden immer teurer,
- wenige Knoten entwickeln extremen Fan-out,
- bestimmte Inhalte werden stÀndig gemeinsam geladen,
- andere vorhandene Inhalte werden praktisch nie erreicht,
- zyklische Strukturen erzeugen unnötige Arbeit,
- Verdichtungen verdrÀngen im tatsÀchlichen Zugriff ihre Quellen,
- ein kleiner Teil des Bestands bestimmt zunehmend den verarbeiteten Kontext,
- Beobachtung und Protokollierung erzeugen selbst relevanten Speicher- oder Rechenaufwand.
Daraus entsteht die Idee kleiner messender Artefakte.
Sie sollen nicht entscheiden, was richtig, wichtig oder löschbar ist.
Sie sollen konkrete Eigenschaften eines laufenden Systems sichtbar und spÀter vergleichbar machen.
Ihre Grundbewegung wÀre:
messen â feststellen â belegbar machen
und zunĂ€chst ausdrĂŒcklich nicht:
messen â bewerten â verĂ€ndern
Mögliche Beobachtungen
Ein spÀteres Artefakt könnte beispielsweise feststellen:
Bereich Y bestand zum Zeitpunkt X aus N Objekten und M Relationen.
Traversierung Z benötigte T Zeit und B gelesene Bytes.
Knoten A besaĂ zum Messzeitpunkt einen Fan-out von F.
Artefakt B wurde innerhalb des beobachteten Zeitraums nicht aktiviert.
Anfrageklasse Q aktivierte durchschnittlich K Objekte.
Verdichtung V wurde in 98 % der beobachteten Zugriffe verwendet, ihre Quellen dagegen in 2 %.
Solche Aussagen beschreiben einen beobachteten Zustand.
Sie begrĂŒnden fĂŒr sich genommen keine Löschung, keine Umstrukturierung und keine Aussage ĂŒber Bedeutung.
Die Auswahl der Messung ist nicht neutral
Auch ein rein beobachtendes Werkzeug trifft bereits eine Vorentscheidung dadurch, was es ĂŒberhaupt messbar macht.
Wer Fan-out pro Knoten misst, macht Fan-out sichtbar und andere Eigenschaften zunÀchst unsichtbar.
Wer AktivierungshÀufigkeit misst, macht hÀufige Aktivierung zu einer auffÀlligen Eigenschaft und seltene Aktivierung zu einer weniger sichtbaren.
Wer nur Latenz misst, kann semantische Verluste vollstĂ€ndig ĂŒbersehen.
Das bedeutet nicht, dass eine Metrik bereits eine Bewertung enthĂ€lt. Aber ihre Auswahl beeinflusst, welche PhĂ€nomene spĂ€ter ĂŒberhaupt als untersuchenswert erscheinen können.
Deshalb muss zu einer Messung nicht nur dokumentiert werden, was sie zeigt, sondern auch, was sie nicht beobachtet.
Beobachtbarkeit hat eine Grenze
Bestimmte besonders wichtige Fehler lassen sich durch reine Messung nicht erkennen.
Wenn eine relevante Feststellung fĂŒr einen Vorgang hĂ€tte aktiviert werden sollen, aber nicht aktiviert wurde, kann ein Messartefakt zunĂ€chst nur feststellen:
Y wurde nicht aktiviert.
Es kann daraus nicht ableiten:
Y hĂ€tte aktiviert werden mĂŒssen.
Diese zweite Aussage benötigt eine zusĂ€tzliche Grundlage: beispielsweise spĂ€tere Erkenntnis, externe PrĂŒfung, einen Vergleichsvorgang oder eine andere noch zu bestimmende Form von Bewertung.
Damit darf ein zukĂŒnftiges Beobachtungsartefakt nicht so beschrieben werden, als könne es automatisch alle Aktivierungsfehler finden.
Gerade falsche Negative können unsichtbar bleiben.
Ein Messartefakt ist selbst Architektur
Sobald ein Beobachtungswerkzeug dauerhaft oder regelmĂ€Ăig in einem System wirkt, ist es nicht nur ein externes Hilfsmittel.
Es wird selbst zu einer Architekturkomponente mit eigener Wirkung und eigenem Failure Scope.
Sein Ausfall kann Beobachtbarkeit verlieren lassen.
Seine Fehlmessung kann ein falsches Bild des Systems erzeugen.
Seine Ressourcenaufnahme kann andere Komponenten beeinflussen.
Seine Auswahl von Metriken kann bestimmen, welche Probleme spĂ€ter ĂŒberhaupt sichtbar werden.
Deshalb darf ein solches Werkzeug nicht allein deshalb von ArchitekturprĂŒfung ausgenommen werden, weil es ânur misstâ.
FĂŒr eine konkrete Implementierung mĂŒsste von Beginn an festgehalten werden, welche anderen Komponenten von seinem Ausfall, seiner Verzögerung, seiner Fehlkonfiguration oder seiner eigenen Ressourcenaufnahme betroffen sein können.
Das Messartefakt darf seine eigene Wirkung nicht vergessen
Ein Beobachtungssystem ist selbst Teil der physischen RealitÀt, die es beobachtet.
Es benötigt Speicher.
Es erzeugt Lesezugriffe.
Es benötigt Rechenzeit.
Es produziert möglicherweise eigene Feststellungen.
Damit verÀndert seine Existenz das gemessene System.
Wenn seine Messergebnisse wiederum in denselben Bestand geschrieben werden, den es beobachtet, entsteht zusĂ€tzlich eine RĂŒckkopplung:
Das Artefakt misst das System.
Seine Messung wird Teil des Systems.
Beim nĂ€chsten Durchlauf misst es möglicherweise auch seine eigene frĂŒhere Messung.
Das ist nicht automatisch falsch.
Aber es darf nicht stillschweigend entschieden werden.
Vor einer tatsĂ€chlichen Implementierung mĂŒsste deshalb geklĂ€rt werden, ob und wie Beobachtungsdaten:
- Teil desselben Bestands werden,
- logisch getrennt bleiben,
- bei Messungen ein- oder ausgeschlossen werden,
- auf die beobachteten ZustÀnde referenzieren.
Auch diese Frage bleibt zunÀchst offen.
Kein automatisches AufrÀumen
Aus technischen Symptomen dĂŒrfen keine unmittelbaren semantischen Entscheidungen folgen.
Aus
seit zwei Jahren nicht aktiviert
folgt nicht:
kann gelöscht werden.
Aus
hoher Fan-out
folgt nicht:
Architekturfehler.
Aus
hohe ZugriffshÀufigkeit
folgt nicht:
hohe Bedeutung.
Aus
teure Traversierung
folgt nicht:
Beziehung ist ĂŒberflĂŒssig.
Messungen können Hinweise auf Stellen liefern, die untersucht werden sollten.
Mehr zunÀchst nicht.
VerhÀltnis zu #c4m
Sollte daraus spĂ€ter tatsĂ€chlich Software entstehen, könnte #c4m kleine, klar begrenzte Mess- oder PrĂŒfartefakte erzeugen, prĂŒfen oder ausfĂŒhren.
Das ist jedoch eine mögliche spÀtere Verwendung und noch keine Anforderung an #c4m.
Vor einer Implementierung mĂŒsste fĂŒr jedes solche Artefakt konkret bestimmt werden:
- was genau es beobachtet,
- warum gerade diese Metriken ausgewÀhlt wurden,
- welche relevanten PhÀnomene dadurch nicht beobachtet werden,
- welche Ressourcen es selbst benötigt,
- welche Aussagen seine Messung tatsÀchlich erlaubt,
- welche Fehler es nicht erkennen kann,
- welche anderen Komponenten von seinem Ausfall betroffen wÀren,
- ob sein eigener Output wiederum Gegenstand seiner Messung wird.
Zweck dieses Gedankens
Dieser Text spezifiziert kein fertiges Observatory und verlangt nicht, dass eines gebaut wird.
Er hÀlt lediglich einen möglichen spÀteren Werkzeugtyp fest:
Software, die nicht versucht, die Bedeutung des OZMAI Brain zu bestimmen, sondern sichtbar macht, wie sich seine Architektur unter realer Nutzung tatsÀchlich verhÀlt.
Ob daraus ein Artefakt entsteht, welche Form es besitzt und ob es ĂŒberhaupt nötig ist, sollte erst aus realen Problemen folgen.