Zum Inhalt springen
OrtmannConsulting
Zurück zur Übersicht

Cloud-Governance, Baustoffindustrie

Cloud-Kosten nach Verantwortlichen statt nach Kennnummern

Ein Portal zeigt, was die Cloud-Nutzung kostet — aufgeschlüsselt nach Menschen und Projekten. Geteilte Ressourcen werden bewusst nicht einem Projekt zugerechnet, auch wenn das die Einsparpotenziale kleiner aussehen lässt.

Jahr
2026
Leistungen
Automatisierung · Künstliche Intelligenz
Bereich
Konzern-IT
Rolle
Intern, angestellt

Umgesetzt in angestellter Rolle für einen internen Fachbereich, nicht als externes Beratungsmandat. Das Unternehmen wird nicht genannt.

9Angebundene Datenquellen
14Nächtliche Auswertungen
0Änderungen an der Cloudbewusst nur lesend

Ausgangslage

Der Projektordner sagt dazu nichts. Kein README, keine Anforderungsdokumentation, keine Commit-Nachricht, die das Ausgangsproblem beschreibt — die vorhandene Dokumentation erklärt ausschließlich den Ist-Zustand.

Ableitbar, aber nicht belegt: Der Aufwand, der im Code in die Zuordnung von Kosten zu Verantwortlichen fließt — ein zweistufiges Ownership-Modell, Kennzeichnung nicht zugewiesener Ressourcengruppen, ein Regelwerk zur automatischen Zuordnung — legt nahe, dass genau diese Zuordnung vorher das Problem war. Das ist eine Vermutung und wird hier als solche benannt.

Ansatz

Zwei getrennte Anwendungen auf einer gemeinsamen Datenbank.

Die Sammel-Schicht ist eine Function App: 13 zeitgesteuerte Jobs und ein Queue-Trigger holen gestaffelt Daten — Kosten über die Cost Management API, Ressourcenbestand über Resource Graph, Empfehlungen über Advisor, dazu Reservierungs-Abdeckung, verwaiste Ressourcen und Speicher-Auslastung. Ergebnisse landen in rund 25 Tabellen.

Die Web-Schicht ist eine Flask-Anwendung mit 80 Routen. Sie liest ausschließlich aus der Datenbank — im gesamten Anwendungsverzeichnis existiert kein einziger Aufruf einer Azure-Management-API. Seiten laden damit aus vorbereiteten Daten statt aus Live-Abfragen. Löst jemand manuell eine Synchronisation aus, schreibt die Web-Schicht lediglich eine Nachricht in eine Warteschlange; die Function App arbeitet sie ab.

Darüber liegen zwei Auswertungen. Die Anomalie-Erkennung vergleicht gegen eine 14-Tage-Basislinie, gruppiert aufeinanderfolgende Tage zu einem Ereignis, unterdrückt Wiederholungsmeldungen nach fünf Tagen und sortiert nach Euro-Auswirkung statt nach statistischem Wert. Die KI-Prüfung erzeugt je Projekt eine priorisierte Empfehlungsliste; die Antwort wird über einen erzwungenen Werkzeugaufruf gegen ein Schema validiert, nicht frei geparst.

Der Punkt, an dem es anders hätte laufen können

Geteilte Ressourcen werden nicht einem Projekt zugerechnet — auch wenn das die Zahlen unbrauchbarer aussehen lässt.

Ein App Service Plan oder ein SQL-Server bedient oft mehrere Projekte. Der einfache Weg wäre gewesen, die vollen Kosten dieser Ressource dem Projekt zuzuschlagen. Das hätte große, ordentlich aussehende Einsparpotenziale ergeben — und wäre falsch gewesen.

Der Code tut bewusst das Gegenteil: zwei getrennte Kostensichten, Einzelressourcen-Kosten ausdrücklich als Obergrenzen markiert, und Ressourcen, deren Rohkosten die Monatssumme des Projekts übersteigen, werden automatisch als vermutlich geteilt oder falsch zugeordnet geflaggt. Der System-Prompt weist das Modell an, in diesem Fall „Nutzung aufteilen“ zu empfehlen statt „löschen und X sparen“ — und die Schätzung auf null zu setzen, wenn keine belastbare Zahl möglich ist.

Dieselbe Zurückhaltung steckt in der Reservierungsrechnung: Die Liste reservierbarer Posten ist eine bewusst enge Positivliste, damit Einsparpotenziale nicht durch Speicher- und Netzwerkkosten aufgebläht werden, die sich gar nicht reservieren lassen.

Die Entscheidung kostet Wirkung in der Präsentation und gewinnt Vertrauen in die Zahl. Für ein Werkzeug, dessen einziger Zweck es ist, dass jemand danach handelt, ist das der richtige Tausch.

Ergebnis

Rund 19.000 Zeilen in etwa 100 Dateien, 80 Routen, 25 Tabellen, 14 Hintergrundjobs, neun angebundene Datenquellen. Aufgebaut von einer Person in etwa einem Quartal, mit einer dichten Bauphase und danach gezielter Performance-Arbeit samt eigener Index-Migration.

Bewusst begrenzt: Das System ändert nichts in Azure. Es gibt keine Lösch-, Stopp- oder Deallocate-Aufrufe. „Implementiert“ ist ein Status in der Datenbank — die Umsetzung macht ein Mensch. Die KI empfiehlt mit Konfidenzstufen; bei niedriger Konfidenz ist die Prüfung durch den Nutzer ausdrücklich vorgesehen.

Offen benannt: Es gibt keine automatisierten Tests. Einsparpotenziale sind Schätzungen mit einer im Code hinterlegten Rabattannahme, keine Angebotslage. Und die Zuordnung geteilter Ressourcen bleibt unscharf — das System kennzeichnet das Problem, es löst es nicht.

Eingesetzte Technik

  • Python / Flask
  • Azure Cost Management API
  • Azure Resource Graph
  • Azure SQL
  • Claude API

Weitere Projekte

Vertrieb & Innendienst, Bauchemie

2026
1 + 3Orchestrator und Fachagenten

Ein Orchestrator, drei Fachagenten für Produktauskünfte

Statt eines Agenten mit drei Wissensquellen leitet ein übergeordneter Agent an drei spezialisierte weiter — je einer für ERP-Artikeldaten, Produktinhalte und SharePoint-Dokumente.

  • Microsoft Copilot Studio
  • Azure AI Search
  • Azure Functions
  • SharePoint

Supply Chain, Bauchemie

2026
~334.000Dokumente im Suchindex

Bestand, Nachschub und Dokumente je Artikel auf einer Seite

Rund 334.000 Artikeldokumente aus Data Warehouse und Produktdatensystem, täglich neu aufgebaut. Der Bestand wird aus dem Bewegungsprotokoll hergeleitet, nicht aus der fertigen Bestandsansicht — die meldet Nullbestände nie.

  • Python
  • Azure AI Search
  • Azure Functions
  • Databricks SQL

Vertrieb / CRM, Bauchemie

2026
0Schreibzugriffe auf das CRM

Fehlende Adressdaten in CRM-Leads automatisch recherchieren

Ohne PLZ und Ort lässt sich eine Anfrage keinem Vertriebsgebiet zuordnen. Das System liest die Anschrift aus dem Impressum der Firmenwebsite — und schreibt bewusst nichts ins CRM zurück.

  • Python
  • Salesforce API
  • Claude API
  • httpx / BeautifulSoup

Ähnlicher Prozess bei Ihnen?

30 Minuten, kostenlos, ohne Verkaufsgespräch. Sie beschreiben, was Zeit kostet — ich sage Ihnen ehrlich, ob sich Automatisierung lohnt.