Schritt 1: Den echten Bedarf erheben
Am Anfang steht kein Werkzeug, sondern eine Messung. Wer nicht weiß, wo die Zeit verloren geht, baut die falsche Plattform.
# Wie lange liegen Infrastrukturanfragen im Ticketsystem?
glab api "projects/:id/issues?labels=infra&state=closed&per_page=100" \
| jq -r '.[] | [.iid, .created_at, .closed_at] | @tsv'
# Wie oft liefern die Teams aus, und wie lange dauert ein Lauf?
gh api repos/acme/order-api/actions/runs --paginate \
| jq -r '.workflow_runs[] | [.created_at, .conclusion] | @tsv' | head -50
# Wie viele Workflow-Dateien gibt es, und wie viele Varianten stecken darin?
gh search code 'runs-on' --owner acme --extension yml --json repository,path --limit 200Vier Zahlen reichen für den Anfang: mittlere Liegezeit einer Infrastrukturanfrage, Anzahl der Auslieferungen pro Team und Monat, Zeit von der ersten Zeile bis zur laufenden Umgebung und Anzahl der Pipeline-Varianten. Diese vier Werte sind später auch der Nachweis, dass die Plattform wirkt.
Fünf Fragen für die Gespräche mit den Produktteams
- Was hat dich in den letzten vier Wochen am meisten aufgehalten?
- Welchen Schritt umgehst du regelmäßig, weil er zu lange dauert?
- Was hast du dir selbst gebaut, weil es zentral nicht gab?
- Welche Entscheidung würdest du gern abgeben, statt sie jedes Mal neu zu treffen?
- Was müsste eine zentrale Plattform können, damit du sie freiwillig nutzt?
Aus den Antworten entsteht die erste Version, und die fällt fast immer kleiner aus als geplant. In der Regel lösen zwei Dinge den größten Teil der Reibung: ein neuer Dienst ohne Ticket und ein einheitlicher Weg von Git in die Umgebung. Welcher Auslieferungsweg dabei passt, behandelt Argo CD oder Flux.