ADMIN

2023

03

2023-02-28T12:00:00

Hybrid Cloud

SCHWERPUNKT

072

Hybrid Cloud

Cloud

Kostenmanagement

Kostenmanagement für Cloudservices mit Koku

Jedes Körnchen zählt

von Dr. Holger Reibold

Veröffentlicht in Ausgabe 03/2023 - SCHWERPUNKT

Getreu dem Zitat von Peter F. Drucker "Was Sie nicht messen können, können Sie nicht lenken" benötigen IT-Verantwortliche Informationen zu den Kosten und den sich daraus ergebenden Effekten. Doch bei Clouds, Containern und hybriden Umgebungen wird das Kostenmanagement angesichts der Komplexität gerne vernachlässigt. Die Open-Source-Software Koku zeigt gute Ansätze, um dem abzuhelfen, weist aber in der aktuellen Version noch einige Schwachstellen auf.

Clouddienste haben im Allgemeinen den Ruf, dass sich mit ihnen bedeutende Kostenvorteile gegenüber eigenen Installationen realisieren lassen. Doch die Praxis zeigt, dass viele Unternehmen kaum Abschätzungen vornehmen, welche Aufwendungen tatsächlich auf sie zukommen und welche sich im laufenden Betrieb ergeben – ganz zu schweigen davon, bestehende Dienste hinsichtlich etwaiger Optimierungspotenziale zu analysieren.
Offensichtlich ist indes, dass sich die Kenntnis der Cloudkosten erst durch einen Abgleich mit den daraus erzielten Effekten sinnvoll bewerten lässt. Anders ausgedrückt: Die Optimierung der Cloudaufwände hat immer mit der Optimierung von Anwendungen und dem Abgleich von Leistung und Kosten zu tun. Deren Optimierung hängt dabei von einem Verständnis der Anwendungsleistung und des Werts für alle in der Cloud ausgeführten Workloads ab.
Insofern ist es keine Überraschung, dass Lösungen für die Bereiche Kosten-, Leistungs- und Kapazitätsmanagement immer bedeutsamer werden – gerade auch dann, wenn diese die Cloud- und die Anwendungsseite zusammenführen. An diesem Punkt setzt Koku [1] an. Die Software will Kostendaten identifizieren und bündeln, die aus verschiedenen Quellen stammen. Daraus ergibt sich eine Datenbasis, die Entscheidungen bezüglich der Nutzung und etwaigen Optimierungsmöglichkeiten unterstützt. Dabei erfasst und analysiert Koku nicht nur die Kosten, sondern liefert auch Prognosen zur Kostenentwicklung.
Clouddienste haben im Allgemeinen den Ruf, dass sich mit ihnen bedeutende Kostenvorteile gegenüber eigenen Installationen realisieren lassen. Doch die Praxis zeigt, dass viele Unternehmen kaum Abschätzungen vornehmen, welche Aufwendungen tatsächlich auf sie zukommen und welche sich im laufenden Betrieb ergeben – ganz zu schweigen davon, bestehende Dienste hinsichtlich etwaiger Optimierungspotenziale zu analysieren.
Offensichtlich ist indes, dass sich die Kenntnis der Cloudkosten erst durch einen Abgleich mit den daraus erzielten Effekten sinnvoll bewerten lässt. Anders ausgedrückt: Die Optimierung der Cloudaufwände hat immer mit der Optimierung von Anwendungen und dem Abgleich von Leistung und Kosten zu tun. Deren Optimierung hängt dabei von einem Verständnis der Anwendungsleistung und des Werts für alle in der Cloud ausgeführten Workloads ab.
Insofern ist es keine Überraschung, dass Lösungen für die Bereiche Kosten-, Leistungs- und Kapazitätsmanagement immer bedeutsamer werden – gerade auch dann, wenn diese die Cloud- und die Anwendungsseite zusammenführen. An diesem Punkt setzt Koku [1] an. Die Software will Kostendaten identifizieren und bündeln, die aus verschiedenen Quellen stammen. Daraus ergibt sich eine Datenbasis, die Entscheidungen bezüglich der Nutzung und etwaigen Optimierungsmöglichkeiten unterstützt. Dabei erfasst und analysiert Koku nicht nur die Kosten, sondern liefert auch Prognosen zur Kostenentwicklung.
Was Project Koku leistet
Wie schon angedeutet ist Koku eine Open-Source-Software für das Kostenmanagement von Clouds, Containern und hybriden Cloudumgebungen. Die Software soll die relevanten Kostendaten, die mit verschiedenen Servics verbunden sind, identifizieren, zentral bündeln und analysieren. Dabei verfolgt der Kostenspezialist das übergeordnete Ziel der Transparenz und erfasst die Aufwände dort, wo sie entstehen, und bildet diese cloudübergreifend ab.
Die Bündelung und Analyse dieser Kosten – auch deren Entwicklung – über die Zeitachse hinweg erlaubt es, Rückschlüsse hinsichtlich der Optimierung zu ziehen. Außerdem lassen sich unnötige Ausgaben identifizieren und die Kostenentwicklung prognostizieren. Koku kann die verschiedenen Daten visualisieren und erhöht damit die Sichtbarkeit der cloudspezifischen Kosten.
Für Entscheidungsträger ergeben sich daraus verschiedene Vorteile. Aus der Visualisierung des Ressourceneinsatzes und der Aufwendungen lassen sich insbesondere Nutzungsmuster identifizieren, die der weiteren Analyse bedürfen. Doch damit nicht genug: Die gewonnenen Daten können IT-Verantwortliche mit Tools von Drittanbietern konsolidieren und weiterverarbeiten. Die aktuelle Koku-Version unterstützt öffentliche Clouds wie Amazon Web Services (AWS) und Microsoft Azure sowie Containerplattformen wie Kubernetes und OpenShift. Dabei ist Koku bereits fester Bestandteil des Kostenmanagements von OpenShift.
Die freie Kostenmanagementumgebung basiert auf einer modularen Architektur, die im Wesentlichen aus drei Komponenten besteht:
- Koku-API (Berichts- und Abfrage-API-Dienst)
- Koku-UI (Front-End-Web-UI)
- Masu (Datenerfassungsdienst)
Für das Development und zu Testzwecken verfügt Koku mit Nise über einen eingebauten Testdatengenerator.
Koku in OpenShift nutzen
Auch wenn es sich bei Koku um ein Open-Source-Werkzeug handelt, ist das Tool dennoch in hohem Maße an Red Hats OpenShift-Plattform gebunden. Insbesondere die Koku-UI ist an Red-Hat-Insights-Abhängigkeiten gekoppelt und daher nur schwer in anderen Umgebungen bereitzustellen. Die Entwickler liefern leider auch keinerlei Hinweise, wie eine Integration in Drittumgebungen gelingt.
Im Koku-Paket ist eine Template-Datei enthalten, die für das Zusammenspiel von Koku mit der OpenShift-Umgebung geeignet ist. Laut Angaben der Entwickler besitzt diese Voreinstellungen für die meisten Anwendungsszenarien. Um die Koku-API-Applikation für das Zusammenspiel mit OpenShift vorzubereiten, führen Sie im OpenShift-CLI folgenden Befehl aus:
make oc-create-all
Die Konfiguration der Umgebung wird dadurch erschwert, dass die Entwickler kaum Informationen zu entsprechenden Optionen zur Verfügung stellen. Das Deployment der Webapplikation starten Sie via make oc-create-koku – das Deployment der PostgreSQL-Datenbank entsprechend mit make oc-create-db.
Das Koku-UI ist das Webfrontend und basiert auf Patternfly und ReactJS. Auch diese Module müssen Sie einzeln installieren. Das Procedere hierfür beschreiben die Entwickler unter [2] im Detail. Außerdem müssen Sie die Masu-Komponente einspielen. Diese umfasst verschiedene Bestandteile, insbesondere einen Webservice, einen Nachrichtenbus und die Worker. Leider stellen die Koku-Entwickler keine Pakete bereit, die eine halbwegs einfache Installation und Konfiguration erlauben würden.
Relevante Daten einbinden
Im ersten Schritt zur Etablierung der Kostenmanagement-Umgebung müssen Sie die Quelle der Datenerfassung definieren. Außerdem gilt es, die relevanten Datenquellen bestehender Clouds zu identifizieren. Dazu benötigen Sie insbesondere servicespezifische Tags und Metadaten. Schließlich müssen Sie festlegen, wer Zugriff auf das Kostenmanagement hat. Da Koku fest in Red Hat Insights integriert ist, lassen sich entsprechende Fragen einfach über diese Plattform beantworten.
Die Nutzung von Koku setzt zunächst die Installation eines OpenShift-Container-Platform-Clusters voraus. Dort ist der Kostenmanagement-Operator standardmäßig nicht vorinstalliert. Das holen Sie über die Registerkarte "Operators / OperatorHub" nach. Im Dialog "Install Operator" wählen Sie den Namespace "cost management-metrics-operator" für die Installation aus. Sollte der Namensraum noch nicht existieren, wird er für Sie erstellt. Die Installation starten Sie mit einem Klick auf die Schaltfläche "Installieren". Kurz darauf ist der "Cost Management Metrics Operator" systemweit verfügbar.
Bild 1: Auf den ersten Blick wirkt das Erstellen eines Kostenmodells trivial, doch muss der IT-Verantwortliche die Details solcher Modelle genau kennen.
Koku-Kostenmodelle verstehen
Der große Vorteil von Koku liegt in der Bereitstellung eines sogenannten Kostenmodells. Angesichts unterschiedlicher Quellen verbunden mit verschiedenen Kostendaten und -metriken gestalten sich die konsolidierte Kalkulation und die Ermittlung der exakten Kostenverteilung in der Praxis komplex. Dieses Problem löst Koku durch die Einführung des Kostenmodells. Dabei handelt es sich um ein Framework, das die Kalkulationsgrundlagen für die in der Kostenverwaltung gespeicherten Aufwendungen definiert. Mithilfe eines solchen Modells können Sie den Metriken, die die verschiedenen Quellen bereitstellen, einen Preis zuordnen, um die Nutzung von Ressourcen zu berechnen. Im Kern geht es dabei darum, die verschiedenen Kostenarten zu normalisieren, damit eine einheitliche Datenbasis zur Verfügung steht, auf deren Grundlage die weitere Kalkulation basiert. Um das zugrundeliegende Konzept in der Praxis korrekt anwenden zu können, bedarf es eines Verständnisses der verschiedenen Aspekte.
Das Modell bildet die Berechnungen der im Rahmen des Kostenmanagements gespeicherten Aufwände unter Einsatz von Rohkosten und Metriken. Seine Aufgabe besteht insbesondere in der Budgetierung und Abrechnung, aber auch der Visualisierung und Analyse von Kosten. Dabei können Sie die verschiedenen Posten, die durch das Modell entstehen, erfassen, kategorisieren und bestimmten Kunden, Geschäftsbereichen oder Projekten zuordnen.
In der Koku-Terminologie existieren zwei Ebenen und das System unterscheidet zwischen Infrastruktur- und Zusatzkosten. Die Infrastrukturausgaben können aus zwei verschiedenen Quellen stammen: Zum einen kann es sich um Aufwendungen handeln, die der Cloudanbieter direkt über einen Kosten- und Nutzungsbericht meldet, zum anderen um sonstige Infrastrukturkosten. Die durch die Nutzung von Cloudservices verursachten Ausgaben klassifiziert Koku als "Standardinfrastrukturkosten". Die Aufwendungen, die OpenShift-Container-Platform-Knoten und -Cluster verursachen, klassifiziert Koku standardmäßig als Infrastrukturkosten, kann diese aber auch optional als zusätzliche Ausgaben betrachten. Alle Aufwendungen, die in keinem direkten Zusammenhang mit der Infrastrukturnutzung stehen, werden als Nebenkosten ausgewiesen.
Der Workflow setzt dort an, wo die Quellendaten generiert werden: auf Seiten der Rohdaten der Cloudanbieter beziehungsweise bei den OpenShift-Metriken. Dabei sammelt Koku Kostendaten von folgenden Quellen:
- Inventar: Dahinter verbirgt sich eine Liste aller Ressourcen, unabhängig davon, ob sie derzeit im Einsatz sind oder nicht. Enthält Ihre OpenShift-Umgebung beispielsweise einen nicht genutzten Knoten, fallen hierfür dennoch die vereinbarten Fixkosten an. Koku unterstützt zum Sammeln der Inventardaten mehrere Möglichkeiten. Das Kostenmanagement kann diese Daten aus AWS-Kosten- und Nutzungsberichten, dem Azure- oder Google-Cloudexport oder OpenShift-Metering-Operator-Berichten generieren.
- Metriken: Hierbei handelt es sich um eine Teilmenge des OpenShift-Inventars, das die Nutzung und den Verbrauch für jede Ressource anzeigt.
- Cloud-Rohkosten: AWS, Azure und Google Cloud stellen dem Kostenmanagement regelmäßig Berichte zur Verfügung, die den Verbrauch von Ressourcen und deren Aufwände aufführen. Die Konfiguration einer benutzerdefinierten Preisliste für Cloudquellen ist nicht erforderlich.
Diese verschiedenen Daten werden an das Kostenmodell-Framework weitergeleitet. Es bietet die Möglichkeiten, Aufschläge und Rabatte für die verschiedenen Quellen anzulegen. In der OpenShift Container Platform müssen Sie eine Preisliste selbst generieren und diese den Quellen zuweisen, um die Nutzungskosten dieser Ressourcen zu bestimmen. In einer solchen Preisliste hinterlegen Sie die verschiedenen Tarife für Speicher, Arbeitsspeicher, CPU-Auslastung und Anforderungen sowie Cluster und Knoten. Soweit es AWS-, Azure- und Google-Cloud-Quellen betrifft, können Sie Modelle erstellen, um zusätzliche Ausgaben oder Gemeinkosten in Ihrer Umgebung zu berücksichtigen.
Koku sammelt die Kosten der verschiedenen Quellen und ordnet diese den Infrastruktur- beziehungsweise Nebenkosten zu. Im Anschluss verteilt es die Ausgaben auf Ressourcen in der Umgebung. Dabei verwenden Sie bei Bedarf Tags, um die Kosten nach Teams, Projekte oder Gruppen innerhalb Ihrer Organisation zuzuweisen.
Bild 2: Ein Teil der Kostenmodellkonfiguration ist die Zuweisung von etwaigen Zuschlägen oder Abschlägen.
Einrichten eines Kostenmodells
Um ein Kostenmodell für Ihre Cloudservices anzulegen, öffnen Sie in der Red Hat Hybrid Cloud Console unter "Red Hat Insights" das Menü "Cost Management". Öffnen Sie dann "Cost Models", das der Verwaltung der Kostenkonfigurationen dient. Um ein erstes Modell anzulegen, klicken Sie auf die Schaltfläche "Create cost model" und der folgende Assistent führt Sie durch vier Schritte.
Im ersten Schritt weisen Sie dem Modell eine Bezeichnung und eine Beschreibung zu. Mit dem Auswahlmenü "Source Type" bestimmen Sie die Datenquelle. Sie haben die Wahl zwischen Amazon Web Services, Microsoft Azure, Google Cloud Platform und Red Hat OpenShift Container Platform. Mit einem Klick auf "Next" gelangen Sie zur optionalen Kostenkalkulation. Hier können Sie Auf- und Abschläge für die Kalkulationen vorsehen. Die Herausforderung bei diesem Schritt besteht darin, etwaige Zusatzausgaben, die beispielsweise die Verwaltung eines Kontos verursacht, adäquat zu berücksichtigen. Dieser Deckungsbeitrag ist notgedrungen eine Schätzung und somit ergibt sich damit ein gewisses Risiko der Falscheinschätzung.
Im nächsten Schritt bestimmen Sie die zuvor angelegte Quelle für die Kostendefinition. Dazu steht Ihnen eine Suchfunktion zur Verfügung. Den Abschluss der Kostenmodellkonfiguration bildet die Zusammenfassung der gewählten Konfigurationsschritte.
Kostenerfassung und -visualisierung
Nachdem Sie die OpenShift-Umgebung für das Einlesen von Kosten- und Nutzungsdaten konfiguriert und die notwendigen Kostenmodelle hinterlegt haben, sind die notwendigen Voraussetzungen für eine Kostenerfassung und die Bericht-erstellung erfüllt. Für die Visualisierung der Kostendaten ist der sogenannte "Cost Explorer" zuständig. Er ist in der Open-Shift-Umgebung über das gleichnamige Menü verfügbar.
Der Cost Explorer erlaubt Ihnen das Anlegen von benutzerdefinierten Diagrammen mit zeitskalierten Kosten und Nutzungsinformationen, um Ihre Ausgaben besser zu visualisieren und zu interpretieren. Die Visualisierung gestattet auch eine Beschränkung auf verschiedene Ansichten, wie beispielsweise die standort- oder projektbezogene Ansicht. Die Registerkarte "Cluster" verrät Ihnen, welche Bereiche die höchsten Kosten verursachen.
Die Ausgabenentwicklung wird standardmäßig über den Zeitverlauf dargestellt, Sie können aber auch benutzerdefinierte Balkendiagramme Ihrer Kosten- und Nutzungsdaten generieren. Der Cost Explorer erlaubt zudem die Identifikation auffälliger Ereignisse. Außerdem steht eine Exportfunktion zur Verfügung, die erlaubt, benutzerdefinierte Kostendatentabellen in Drittanwendungen weiterzuverarbeiten.
Einige Schwächen im System
Koku zeigt in der Praxis einige Schwächen. Die Prognosefunktion bietet lediglich rudimentäre Prognosen; auch die Visualisierung bleibt deutlich hinter den Erwartungen zurück, die die Produktbeschreibung weckt. Außerdem ist bislang kein Warnmechanismus implementiert, der beim Erreichen bestimmter Schwellenwerte Hinweise ausgeben würde.
Weiterhin bleibt unklar, wie Koku zum Zusammenspiel mit anderen Unternehmenslösungen wie ERP-Systemen bewegt werden könnte. Zwar erscheint eine Datenübernahme aus der PostgreSQL-Datenbank grundsätzlich möglich, doch ist der Aufwand hierfür hoch.
Grundsätzlich verspricht die zentrale Bündelung von Kostenstellen einen Informationsgewinn, doch ergibt dies erst dann Sinn, wenn verschiedene Dienstleistungsangebote genutzt werden und die Kostensituation unüberschaubar zu werden droht. Ein weiteres Manko: Das Project Koku sieht in der aktuellen Fassung lediglich eine rudimentäre projektbezogene Aufschlüsselung der Kosten vor, wie von ERP-Systemen wie Odoo bekannt. Entsprechende Informationen sind aber gerade auch für Dienstleistungen notwendig, um die erbrachten Leistungen exakt abrechnen zu können.
Fazit
Mehr und mehr setzt sich die Erkenntnis durch, dass Kostenmanagement auch für Clouddienste geboten ist. Zwar bieten die meisten Anbieter von Cloudservices eigene Lösungen, doch besteht die Herausforderung in der Konsolidierung der Daten bei Nutzung verschiedener Dienste. Hier kommen Tools wie Koku ins Spiel. Grundsätzlich ist der Ansatz, die Kostendaten von verschiedenen Playern zusammenzuführen, ein positiver. Bislang nimmt Koku unter den Open-Source-Tools noch eine Sonderstellung ein, doch aufgrund der Abhängigkeit von Red Hat Insights ist der Einsatzbereich stark eingeschränkt. In der aktuellen Fassung ist Project Koku einzig für Red-Hat-Anwender interessant.
(jp)
Link-Codes