Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Cloud-Management optimieren mit der DoiT CLI

By Luca SerpietriJan 16, 20264 min read

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

Wie die DoiT Cloud Intelligence CLI ein besseres Cloud-Management ermöglicht

Wir haben gerade die DoiT Cloud Intelligence CLI veröffentlicht – und Sie ahnen nicht, wie sehr mich diese Ankündigung gefreut hat. Vielleicht verrate ich damit mein Alter, aber ich bin in einer Welt groß geworden, in der sich Bash-Scripting wie eine Superkraft anfühlte und alle, die grep souverän beherrschten, ähnlich verehrt wurden wie heute die scharfsinnigsten Datenanalysten. Aber ich schweife ab.

Ich habe die Gelegenheit sofort genutzt, unsere frisch veröffentlichte CLI auszuprobieren – und gleich zu Beginn etwas dazugelernt. Als Grundlage für die Implementierung haben wir restish verwendet: Solange Ihre API auf OpenAPI basiert (und das ist bei DoiT der Fall), übernimmt es Schema Discovery und Authentifizierung.

Das Setup

Für den Einstieg bin ich unserer Dokumentation gefolgt, habe restish per brew in meinem Terminal installiert und für die Arbeit mit den DoiT-APIs konfiguriert. Das Standardprofil erlaubt Anpassungen an den API-Aufrufen, die ich anfangs nicht genutzt habe – ich zeige sie hier trotzdem, da sie für einige von Ihnen interessant sein könnten.

Jetzt war es an der Zeit zu prüfen, ob alles korrekt funktioniert. Ich habe meinen Login mit dem Befehl restish dci validate validiert, der den OAuth-Workflow ausgelöst hat (Shout-out an Browserosaurus, einen großartigen Browser-Selektor, ohne den ich nicht mehr sein möchte).

Nach dem Login in meinen DoiT Cloud Intelligence Tenant sah alles gut aus: Ich war bereit, mich per Skript durch ein besseres Cloud-Management zu arbeiten.

Das Ziel

Für meinen ersten Anwendungsfall habe ich schamlos das Thema aufgegriffen, mit dem unsere Kunden jahrelang gerungen haben, bevor sie zu DoiT kamen: Cost Accountability.

Ich wollte einen reibungslosen, einfachen Weg schaffen, mit dem Kunden:

  • einen neuen Nutzer in DoiT Cloud Intelligence einladen können;
  • eine Allocation auf Basis des Benutzernamens erstellen, die die von ihm verursachten Kosten erfasst;
  • ein Budget anlegen, das diese neu erstellte Allocation überwacht und Benachrichtigungen verschickt, sobald ein bestimmter Schwellenwert erreicht wird.

So bekommt jeder neue Nutzer mit minimalem Aufwand seinen ganz persönlichen Feedback-Loop für Cloud-Kosten. Also legen wir los.

Die Umsetzung

Den Nutzer einladen

Einfacher geht es kaum, der Befehl lautet:

restish dci invite-user email:<user_email>

Sie haben Post.

Eine nutzerspezifische Allocation erstellen

Falls Sie neu hier sind und Allocations noch nicht kennen, empfehle ich Ihnen dringend, sich damit vertraut zu machen.

Kurz gesagt: Mit Allocations lassen sich Cloud-Kosten anhand jeder verfügbaren Datendimension logisch gruppieren. In unserem Fall möchte ich alle Cloud-Kosten zusammenfassen, die unser neu angelegter Nutzer verursacht – damit er seine Ausgaben einfach im Blick behalten kann.

Der Befehl lautet:

restish dci create-allocation < allocation_conf.json

Wir müssen jedoch einige Parameter zur Konfiguration übergeben. Ich mogele ein wenig und gehe davon aus, dass es in unseren Billing-Daten einen Tag-Schlüssel namens member gibt, dessen Werte jeweils einem Cloud Engineer entsprechen (in unserem Fall luca+test).

Die Datei conf.json sieht wie folgt aus:

{
    "name": "luca+test generated costs",
    "description": "All costs generated by luca+test",
    "rule": {
        "formula": "A OR B",
        "components": [\
            {\
                "key": "member",\
                "type": "label",\
                "mode": "is",\
                "values": [\
                    "luca+test"\
                ]\
            }\
        ]
    }
}

Die Ausführung des Befehls liefert die Allocation-id, die wir gleich noch brauchen.

Ein nutzerspezifisches Budget erstellen

Schon das Wort "Budget" jagt den meisten Engineers, mit denen ich spreche, einen Schauer über den Rücken: Es steht synonym dafür, Innovation durch Restriktionen und Hürden auszubremsen.

Das mag in der Vergangenheit so gewesen sein – doch die Art, wie Budgets in DoiT Cloud Intelligence umgesetzt sind, schafft einen produktiven Feedback-Loop zwischen Cloud Engineers und ihren Kosten. Böse Überraschungen gibt es so gut wie nicht mehr, und Bewusstsein ist das zentrale Mantra.

Wenn Sie mehr erfahren möchten, schauen Sie gerne in unsere Dokumentation, in der wir alle Funktionen ausführlich beschreiben.

In meinem Anwendungsfall möchte ich es einfach halten. Ich brauche nur ein simples monatliches Budget von 1.000 USD, damit neue Nutzer ihre Ausgaben kennen und proaktiv benachrichtigt werden, sobald die über die Allocation erfassten Ausgaben 80 % des Budgets erreichen.

Auch hier ist es ziemlich unkompliziert:

restish dci create-budget < budget_conf.json

Und die budget_conf.json sieht so aus:

{
    "name": "luca+test - Monthly Budget",
    "scope": ["<ALLOCATION_ID>"],
    "amount": 1000,
    "type": "recurring",
    "timeInterval": "month",
    "startPeriod": $(( $(date -u -v1d -v0H -v0M -v0S +%s) * 1000 )),
    "currency": "USD",
    "alerts": [{"percentage": 80}],
    "collaborators": [\
        {\
            "email": "<user_email>",\
            "role": "owner"\
        }\
    ]
}

Ein paar Punkte sind hier erwähnenswert:

  • Der Wert startPeriod wird in Sekunden seit Epoch erwartet. In der Konfigurationsdatei finden Sie den Befehl, mit dem sich dieser Wert ermitteln lässt.
  • Sie können mehrere Alerts mit unterschiedlichen prozentualen Schwellenwerten definieren – in diesem Fall haben wir uns auf einen beschränkt.

Die Ausführung des Befehls liefert eine erfolgreiche Antwort.

Keine bösen Überraschungen mehr!

Die WebUI zeigt die erfassten Daten und die zugehörigen Schwellenwerte.

Damit endet mein erster Streifzug durch die DoiT Cloud Intelligence CLI – aber die Möglichkeiten sind grenzenlos. Stellen Sie sich vor, Sie fassen diese Schritte zu einem Onboarding-Skript zusammen!

Vielleicht ist das ein guter Stoff für einen weiteren Blogbeitrag. Bis dahin: Installieren Sie die DoiT Cloud Intelligence CLI und melden Sie sich jederzeit bei uns, wenn Sie Unterstützung brauchen.