
TL;DR
|
Das meiste, was Leute meinen, wenn sie fragen „Wie funktioniert das eigentlich?“, lässt sich auf drei Begriffe reduzieren, die genau definiert sind: Workflow, Durchlauf und Gate. Das ist es, was jeder Begriff bedeutet, und wie sie zusammenpassen.
Das Wichtigste zum Mitnehmen: Ein Workflow ist die Vorlage. Er macht von sich aus nichts, sondern definiert, was passiert, wenn etwas ihn auslöst.
Ein Workflow in Upsun Dispatch™ ist eine festgelegte Abfolge von Schritten, von denen einige von einem Agenten ausgeführt werden, andere eine menschliche Entscheidung erfordern. Er wird einmal geschrieben und gilt für jedes zukünftige Ereignis, das seinem Auslöser entspricht. Upsun Dispatch wird bei der Einführung mit „PR Review“ als Standard-Workflow ausgeliefert: Ein Agent liest einen Pull-Request und veröffentlicht eine strukturierte Bewertung, bevor ein Mensch sie sieht – ohne Gate; die Bewertung selbst ist das Ergebnis.
Eine Workflow-Definition umfasst den Auslöser – ein Ereignis wie die Eröffnung eines Pull-Requests, eine Erwähnung in einem Issue oder einen Zeitplan –, welche Schritte ein Agent ausführt und an welcher Stelle der Workflow gegebenenfalls eine menschliche Entscheidung erfordert, bevor er fortgesetzt wird. Eine Änderung der Workflow-Definition wirkt sich auf das Verhalten aller zukünftigen Durchläufe aus. Bereits abgeschlossene Durchläufe bleiben davon unberührt.
Das Wichtigste auf einen Blick: Ein Durchlauf ist eine einzelne Instanz eines Workflows, der auf eine einzelne Aufgabe angewendet wird. Er wird protokolliert und ist das, was du tatsächlich siehst, wenn du den Fortschritt überprüfst.
Wenn ein Workflow das Rezept ist, dann ist ein Lauf eine bestimmte Instanz der Zubereitung. Ein Pull-Request wird eröffnet, der PR-Review-Workflow wird ausgelöst, und diese bestimmte Instanz – dieser PR, dieser Diff, dieser Zeitstempel – ist ein Lauf.
Jeder Lauf verfügt über einen eigenen Datensatz: Was ihn ausgelöst hat, welchen Kontext der Agent verwendet hat, was dabei entstanden ist und was es gekostet hat. Dieser Datensatz wird als unveränderliche Daten gespeichert und ist dauerhaft an den Lauf gebunden, nicht an die Workflow-Definition. Zwei Läufe desselben Workflows können völlig unterschiedliche Ergebnisse haben: Der eine könnte reibungslos und ohne menschliches Eingreifen abgeschlossen werden, der andere könnte an einer Sperre hängen bleiben und warten.
Auf dieser Ebene werden die Kosten erfasst – pro Durchlauf, zugeordnet der jeweiligen Ausführung, die sie verursacht hat, und nicht zu einer einzigen Zahl für den gesamten Workflow oder das gesamte Team zusammengefasst.
Das Wichtigste auf einen Blick: Ein Gate ist ein Punkt in einem Workflow, an dem der Durchlauf pausiert und auf eine explizite menschliche Entscheidung wartet. Nichts passiert ein Gate von selbst.
Ein Gate ist ein Punkt, den der Designer des Workflows bewusst gewählt hat – es ist nichts, was standardmäßig passiert. Wenn ein Durchlauf ein Gate erreicht, stoppt er. Er wird erst fortgesetzt, wenn eine Person ihn genehmigt, ablehnt oder mit Feedback zurücksendet. Diese Entscheidung – und wer sie getroffen hat – wird Teil der dauerhaften Aufzeichnung des Durchlaufs.
Gates werden an denjenigen weitergeleitet, der für die Entscheidung zuständig ist. Ein Gate im technischen Bereich geht an einen Entwickler. Ein Gate, das das benutzerseitige Verhalten betrifft, kann an das Produktteam weitergeleitet werden. Eines, das den Zugriff oder die Daten betrifft, kann an die Sicherheitsabteilung weitergeleitet werden. Die Workflow-Definition legt fest, welche Gates es gibt und an wen sie weitergeleitet werden – nicht eine feste Standardeinstellung, die jede Entscheidung gleich behandelt.
Nicht jeder Workflow braucht ein Gate. „PR Review“, wie es derzeit ausgeliefert wird, hat keines; die strukturierte Überprüfung, die es erstellt, ist das Ergebnis, und ein Mensch liest sie so, wie er jeden anderen Kommentar zum Pull-Request lesen würde. Ein Workflow, der programmiert und einen Pull-Request eröffnet, hat in der Regel mindestens ein Gate, bevor irgendetwas zusammengeführt wird.
Das Wichtigste auf einen Blick: Eine Workflow-Definition kann viele Durchläufe erzeugen. Ein Durchlauf durchläuft so viele Gates, wie der Workflow definiert – null, eines oder mehrere.
Zusammengefasst lautet das Modell: Ein Workflow wird einmal geschrieben, ein Ereignis löst einen Durchlauf dieses Workflows aus, und der Durchlauf durchläuft möglicherweise eine oder mehrere Schleusen, bevor er abgeschlossen ist. Nichts davon ist implizit. Die Workflow-Definition ist einsehbar. Der Protokollsatz des Durchlaufs ist im Nachhinein für jeden mit Zugriff einsehbar. Die Schleuse – sofern der Workflow eine enthält – ist ein echter Stopp, kein weicher Checkpoint, der bei hoher Auslastung übersprungen werden kann.
Dies ist auch das Modell, das Kosten und Audit zusammen sinnvoll macht. Die Kosten eines Durchlaufs werden dieser spezifischen Ausführung zugeordnet. Sein Audit-Protokoll umfasst denselben Durchlauf, den Plan, den Diff, wer an jedem Gate was genehmigt hat und wann. Beides muss später nicht rekonstruiert werden, beides wird während des Durchlaufs erfasst.
Wichtigste Erkenntnis: Upsun Dispatch unterstützt derzeit GitHub SaaS und selbst gehostetes GitLab als Auslöserquellen. Modellbasiertes Routing über Aufgaben hinweg ist geplant, aber noch nicht verfügbar.
Upsun Dispatch ist insofern modellunabhängig, als du bei der Einrichtung einen Modellschlüssel angibst, der dann für alle deine Workflows gilt. Eine automatische Zuordnung verschiedener Aufgaben zu unterschiedlichen Modellen, basierend auf Kosten oder Qualität, ist noch nicht verfügbar. Das ist geplant, aber derzeit läuft ein Workflow auf dem Modell, das du verbunden hast.
Die in diesem Artikel verwendeten Trigger-Beispiele – das Eröffnen eines Pull-Requests und eine Erwähnung in einem Issue – funktionieren auf die gleiche Weise, egal ob sich dein Repo auf GitHub SaaS oder einem selbst gehosteten GitLab befindet; beide werden derzeit als Trigger-Quellen unterstützt.
Führe deinen ersten Workflow aus, um dir den Ausführungsbericht und die Gates selbst anzusehen.
Ist ein Workflow dasselbe wie ein Agent?
Nein. Ein Workflow kann einen Agenten beinhalten, der in einem oder mehreren Schritten Aufgaben ausführt, aber der Workflow ist die definierte Abfolge – der Agent ist nur ein Beteiligter darin. Upsun Dispatch behandelt den Workflow, nicht einen einzelnen Agenten, als die Einheit, die entworfen, versioniert und verwaltet wird.
Kann ein Workflow mehr als ein Gate haben?
Ja. Ein Workflow kann so viele Gates definieren, wie seine Schritte erfordern – keine, eines oder mehrere –, wobei jedes an denjenigen weitergeleitet wird, der für diese bestimmte Entscheidung zuständig ist.
Wenn ich die Definition eines Workflows ändere, wirkt sich das auf bereits laufende Durchläufe aus?
Nein. Eine Änderung am Workflow gilt für zukünftige Durchläufe, die nach der Änderung ausgelöst werden. Ein bereits laufender Durchlauf wird gemäß der Definition fortgesetzt, die zum Zeitpunkt seines Starts aktiv war.