Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Iris 3: Automatisches Labeling für die Kostenkontrolle

By Joshua FoxFeb 25, 20255 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Großes Update für Ihren Lieblings-Resource-Labeler in Google Cloud – jetzt mit Support für PubSub und CloudSQL.

2018 hat DoiT International Iris veröffentlicht, ein Open-Source-Projekt zum automatisierten Labeln von Ressourcen in der Google Cloud. Heute freue ich mich, Iris 3 ankündigen zu können – mit zusätzlichen Funktionen und einer neuen, modernen Implementierung.

So unterstützt Sie Iris

Iris vergibt automatisch Labels an Google-Cloud-Ressourcen und sorgt so für übersichtlichere und detailliertere Abrechnungsberichte.

Jede Ressource in Google Cloud innerhalb der GCP-Organisation erhält automatisch generierte Labels, die die Felder der jeweiligen Ressource abbilden. Eine Google-Compute-Engine-Instanz bekommt zum Beispiel Labels wie [iris_name:nginx] und [iris_region:us-central1]. (Das Präfix lässt sich konfigurieren.)

Es mag überraschen, aber ohne solche Labels stehen diese Informationen in den Abrechnungsdaten schlicht nicht zur Verfügung.

Mit den Labels können Sie dann in Ihrem bevorzugten Billing-Analytics-Tool Berichte erstellen.

So nutzen Sie Iris

Sehen wir uns an, wie Iris Ihnen beim Erstellen von Berichten zu Ihren Cloud-Rechnungen Zeit spart – am Beispiel von zwei Reporting-Systemen:

  1. Die Cloud Management Platform von DoiT International
  2. Die Billing Console von Google Cloud

DoiT Cloud Management Platform

Erstellen Sie in der Cloud-Reports-Oberfläche der Cloud Management Platform einen Bericht für den gewünschten Zeitraum und weitere Felder. Klicken Sie anschließend auf den Chip Labels und wählen Sie Ihre Labelnamen aus, etwa iris_instance_type. Über den neuen Label-Chip (iris_instance_type) lässt sich nach bestimmten Werten filtern. An dieser Stelle können Sie auch ungelabelte Ressourcen ausschließen, etwa solche aus Projekten, die Iris 3 ignorieren soll.

Ziehen Sie den Label-Chip dann in das linke Panel, um die Gruppierung festzulegen – fertig.

Reporting nach Instanztyp in der Cloud Management Platform

Billing Reports der Google Cloud Platform

So gerne ich Sie bei DoiT begrüßen würde – noch ist nicht jeder bei uns. Daher funktioniert das Ganze auch in den nativen Billing Reports von GCP.

Bauen Sie sich in einer Ansicht der Billing Console einen Bericht für den gewünschten Zeitraum und weitere Felder. Klicken Sie dann unten rechts auf Labels und geben Sie den Namen Ihres Label-Keys ein, zum Beispiel iris_instance_type. Hier können Sie zur Filterung auch konkrete Werte auswählen. (Ungelabelte Ressourcen werden automatisch ausgeschlossen.) Wechseln Sie anschließend nach oben zu Grouping und tragen Sie Ihr Label erneut ein.

Reporting nach Instanztyp in der Billing Console

Unterstützte Google-Cloud-Produkte

Aktuell werden folgende Ressourcentypen unterstützt:

  • Compute Engine Instances (inklusive Preemptible-Instanzen und solchen, die von Managed Instance Groups erzeugt werden), Disks und Snapshots. (Labels: name, region, zone und instance type)
  • Cloud Storage Buckets (name)
  • CloudSQL-Instanzen (name und region)
  • BigQuery-Datasets und -Tables (name und location)
  • BigTable-Instanzen (name, region und zone)
  • PubSub Topics und Subscriptions (name)

Sie können problemlos weitere Label-Arten und Ressourcentypen ergänzen. Eine Anleitung dazu finden Sie hier.

Wann läuft Iris?

Iris arbeitet sowohl zeitgesteuert als auch beim Erstellen von Ressourcen:

  • Alle Ressourcentypen werden zeitgesteuert gelabelt, standardmäßig alle 12 Stunden (konfigurierbar). Einige Typen – Cloud-SQL-Instanzen und Boot-Disks, die zusammen mit einer Instanz angelegt werden – werden ausschließlich zeitgesteuert gelabelt.
  • Die meisten Ressourcen werden zusätzlich direkt bei der Erstellung gelabelt: Iris 3 hört dafür die Logs von Google Cloud Operations mit.

Neu in Iris 3

Iris bringt deutliche Verbesserungen mit – sowohl durch neue Funktionen als auch durch eine neue, darunterliegende Plattform.

Neue Funktionen

  • Labeling für PubSub Topics und Subscriptions sowie für Cloud-SQL-Instanzen
  • Eine Option, um Projektlabels automatisch auf jede Ressource im Projekt zu übertragen
  • Eine Option, gezielt einzelne Projekte zum Labeln auszuwählen (falls nur einige Projekte das brauchen – das spart zudem Kosten); alternativ können Ressourcen in allen Projekten der gesamten Organisation gelabelt werden
  • Eine Option zur Kostensenkung, indem ausschließlich zeitgesteuertes Labeling ohne On-Demand-Labeling genutzt wird
  • Deutlich einfachere Plugin-Entwicklung und Konfiguration. (Details hier.)
  • Automatisierte Tests zur Qualitätssicherung
  • Bugfixes, Optimierungen und Verbesserungen. (Details hier.)

Neue Plattform

Die größte Änderung – und der Grund für den neuen Namen und das neue Repo – war jedoch die Portierung von Python 2 auf die Python-3-Version der Google App Engine Standard Environment. Python 2 ist seit Januar 2020 End-of-Life und wird nicht mehr unterstützt; die Python-2-Version von GAE ist sogar noch länger deprecated.

Google hat sich zu Long-Term-Support für die Python-2-GAE verpflichtet, weil eine Migration für Bestandskunden nur schwer umzusetzen wäre. Neue Features auf dieser alten Version zu entwickeln, bewegt sich allerdings irgendwo zwischen anspruchsvoll und unmöglich, denn Entwicklungs- und Deployment-Tools, Runtimes und APIs sind sichtlich in die Jahre gekommen. Hinzu kommt: Google kann nicht mehr garantieren, sämtliche Sicherheitslücken zu schließen – ein klares Warnsignal für eine Webanwendung.

Die Migration verlangte einige neue APIs: Unter anderem ist die Unterstützung für Task Queues entfallen, sodass stattdessen PubSub zum Einsatz kommt.

Noch besser: Damit bot sich die Gelegenheit für ein komplettes Rewrite – mit sauberem, standardkonformem Code-Stil, weniger Code-Duplizierung und weiteren Verbesserungen, die Ihnen das Leben als Entwickler und als Pull-Request-Contributor erleichtern.

Warum "Iris 3"?

Dieses Release liegt in einem separaten Repo unter neuem Namen.

Der Grund: Viele Nutzer wollen wegen der erheblichen Unterschiede zur Python-3-GAE so lange wie möglich bei der Python-2-GAE bleiben – obsolet hin oder her!

Die "3" ist übrigens keine Versionsnummer, sondern eine Hommage an die Python-3-GAE-Plattform.

Iris ausprobieren

Laden Sie Iris 3 von GitHub herunter und folgen Sie der Anleitung zum Deployen, Entwickeln oder Testen. Ich freue mich auf Ihr Feedback und Ihre Issue Reports. Und das Beste: Werfen Sie einen Blick in die Datei TODO.md und schicken Sie uns ein paar Pull Requests!

GCP Auto-Tag vs. Iris 3

GCP Auto-Tag ist ein weiteres Open-Source-Projekt von DoiT für das automatische Labeling von Instanzen und Disks bei der Erstellung.

Die Unterschiede:

  • GCP Auto-Tag fügt – anders als Iris 3 – Labels mit der E-Mail-Adresse des Erstellers hinzu, bei Disks zusätzlich den Namen der Instanz, an die die Disk angehängt ist.
  • GCP Auto-Tag labelt Boot-Disks bei der Erstellung gemeinsam mit der Instanz.
  • Iris 3 fügt – anders als Auto-Tag – Labels mit Name, Zone, Region und Instanztyp hinzu.
  • Iris 3 labelt mehr Ressourcentypen.
  • Iris 3 deckt mehrere Projekte innerhalb einer Organisation ab und überträgt Projektlabels auf die Ressourcen.
  • Iris 3 labelt auch Ressourcen, die bereits vor dem Deployment existierten.

Mehr erfahren

Mehr zu Iris: