gate_v1_in_ci/rollout_criteria/README.md

4.9 KiB
Raw Permalink Blame History

Rollout-Kriterien für GateV1 im CISystem

Purpose

Festlegung der Rollout-Kriterien und Entscheidungslogik für den GateV1Step im Continuous Integration (CI).

Problemstellung: Fehlende standardisierte Entscheidungskriterien bei der Integration von GateV1 in automatisierte CIPipelines.

Ziele:

  • Operationelle Einführung von GateV1 als CIStep
  • Definition von Bewertungs- und Eskalationslogik (PASS, WARN, REVIEW)
  • Dokumentation der stabilen Rollout-Phasen und Schwellenwerte

Kontext & Hintergrund

Die GateV1Komponente wertet Metriken aus den Policy-Berechnungen aus und erzeugt daraus ein gate_result.json.

Gruppierung:

  • pro CIRun
  • pro PolicySet

Trace-Metadaten / zusätzliche Tags:

  • policy_hash zur Nachverfolgbarkeit der Policy-Konfiguration

Domänenkontext:

  • CIWorkflows
  • kontinuierliche Qualitätssicherung
  • automatisierte PolicyValidierung

Outlier-Definition:

  • Methode: Schwellenwertbasiert
  • Beschreibung: Runs mit UnknownRate > 1% werden als Ausreißer und REVIEWFälle markiert.
  • Metrik: UnknownRate

Motivation:

  • Transparente, nachvollziehbare Entscheidungen in CIPipelines
  • Konsistentes Evaluationsverhalten über mehrere Runs hinweg
  • Reduktion des logbasierten manuellen Prüfaufwands

Methode / Spezifikation

Übersicht:

  • Der GateV1Step erhält policy_constants.json und den daraus berechneten policy_hash.
  • Er erzeugt ein gate_result.json mit Outcome, Hash, CountMetriken und TopReasons.
  • Er ergänzt den CILauf um einen kompakten PRKommentar mit diesen Daten.

Algorithmen / Verfahren:

  • Ermitteln der Unknown, WARN und Sichtbarkeitsraten aus PolicyErgebnissen.
  • Zuweisung eines Outcomes (PASS, WARN, REVIEW) anhand fester Schwellen.
  • Speichern der Resultate in gate_result.json.
  • Posten eines standardisierten CIKommentars mit Hash, Outcome und Begründung.

Input / Output

Input-Anforderungen

Hardware: Software:

  • CIUmgebung mit JSONSupport
  • Zugriff auf PolicyAuswertungsartefakte

Konfiguration:

  • Bereitstellung von policy_constants.json
  • Berechnung eines stabilen policy_hash

Erwartete Rohdaten

Felder pro Run:

  • policy_hash
  • outcome
  • unknown_rate
  • visibility
  • top_reasons

Formatbeispiele:

  • {"policy_hash": "abcd1234", "outcome": "PASS", "unknown_rate": 0.009, "visibility": 0.995, "top_reasons": ["Sichtbarkeit ≥99%", "Unknown ≤1%"]}

Trace-Daten:

  • Format: JSON
  • Hinweis: Keine Zusatzfelder oder Telemetrie; minimalistische Struktur für diffbasierte Vergleiche.

Analyse-Ausgaben

Pro Gruppe / pro Governor:

  • UnknownRate

  • VisibilityWert

  • WarnRate

  • Trace-Muster: Stabilität des policy_hash über wiederholte Runs prüfen.

Workflow / Nutzung

Analyse-Workflow:

  • Ausführen des GateV1Steps in der CIPipeline.
  • Erzeugen des gate_result.json.
  • Kommentieren des PRs mit kompaktem Ergebnisblock.
  • Bewerten der Resultate über mehrere Runs.

Trace-Template-Anforderungen

Ziel: Stabilität und Nachvollziehbarkeit der CIErgebnisse.

Erforderliche Tags & Metadaten:

  • policy_hash
  • outcome
  • CountsMetriken (Unknown, Visibility, etc.)

trace-cmd-Setup:

  • Keine zusätzlichen Tracepunkte im commentonlyModus.

Run-Design für Contributors:

  • Mindestens zwei RunKategorien (Baseline, Degradiert).
  • Kein ParameterTuning während der Validierung.

Interpretation & erwartete Ergebnisse

Kernbefunde:

  • PASS bei stabiler UnknownRate ≤1% und Sichtbarkeit ≥99%.
  • REVIEW bei erhöhter UnknownRate.
  • Bytestabile Resultate zwischen Runs sind Indikator funktionaler Stabilität.

Implikationen für Experimente:

  • GateV1 kann reproduzierbare und erklärbare CIEntscheidungen liefern.
  • Die UnknownKategorie dient als Trigger für manuelle Prüfung.

Planungsziel:

  • Ziel: Schrittweiser Rollout des GateMechanismus mit sicherer Eskalationslogik.
  • Vorgehen:
    • Phase1: commentonly
    • Phase2: WARNGate bei definierten Kriterien
    • Option3: blockend mit harten Bedingungen

Limitationen & Fallstricke

Datenbezogene Limitationen:

  • Abhängigkeit von Genauigkeit der PolicyMetriken.
  • Keine Datenvalidierung außerhalb der definierten Counts.

Kausalität & Generalisierbarkeit:

  • Bewertungen gelten nur für getestete PolicyKonfigurationen.

Praktische Fallstricke:

  • Falsche UnknownKlassifizierung kann zu unnötigen REVIEWs führen.
  • HashÄnderungen ohne sichtbare PolicyDifferenz erschweren Vergleichbarkeit.

Nächste Schritte & Erweiterungen

Geplante Experimente:

  • Einführung des WARNGates nach stabilen 40 Runs.

Analyseziele:

  • Quantifizierung der UnknownRateVerteilung über längere Zeiträume.

Regression & Modellierung:

  • Beobachtung der OutcomeVerteilung über PolicyVersionen hinweg.

Community-Beiträge:

  • Best Practices für commentonly Gates in CIUmgebungen dokumentieren.