Immer mehr IT-Entscheider setzen auf Cloud-Native-Technologien. Damit lassen sich Kosten sparen und Anwendungen viel schneller zum Einsatz bringen als mit On-Premise-Software.
Kosteneinsparungen mithilfe der Cloud sind kein Automatismus. Entscheidend ist ein gutes Kostenmanagement. Folgende Punkte sollten ISVs (Independent Software Vendors, unabhängige Softwarehäuser) und Software-Entwickler in den Unternehmen beachten.
1. Das Tagging
Von Anfang an sollten Entwickler dem Tagging hohen Wert beimessen. Tags bringen Ordnung in Umgebungen, die zu Beginn noch nicht sonderlich gut strukturiert sind. Hilfreich sind vor allem obligatorische, vordefinierte Tags oder Tags, die zur Kostenverfolgung dienen Mit ihnen lassen sich Ressourcen klassifizieren und in der Folge Such- und Massenaktionen mit ihnen durchführen. Tags sind eine beliebige Textfolge, die Anwender einer Ressource zuweisen und die den Ressourcentyp, die Umgebung (Produktion, Staging, Tests), den Projektnamen, die Rollen, die Business Unit, die Abteilung, die Kostenstelle und so weiter näher beschreibt. Auf der Suche nach Kostentreibern können diese Tags helfen, Ressourcen auf ihre jeweilige Relevanz für das Ergebnis zu bewerten.
Mithilfe der entsprechenden Anwendung können Nutzer ihre Erfahrungen automatisiert an die betreffenden Stakeholder weitergeben sowie unmittelbare Aktionen für die entsprechenden Ressourcen ausführen. Alle Ressourcen, die ein bestimmtes Tag verwenden, können zudem mit einer Höchstbudgetgrenze oder einem Alarm belegt werden, der meldet, wenn das Budget überschritten wird. So können ungewollte Ausgaben kontrolliert und unterbunden werden.
2. Bedachtes Sharing
Zur Kostensenkung können zudem sogenannte isolierte Compartments innerhalb einer Tenancy beitragen. Dort können die Administratoren die Ressourcen nach einer Hierarchie einordnen. Ob Projekt, Team oder eine andere Ressourcen-Gruppe - die Compartments und Sub-Compartments können verschiedenen, notwendigen Gruppen zugeordnet werden. Um administrative Aufgaben in größeren Verwaltungsstrukturen zu vereinfachen, können zusätzlich Konzepte übergeordneter und untergeordneter Tenancies implementiert werden.
Aufgrund der Einordnung der jeweiligen Ressourcen nach ihren Projekten oder Abteilungen ist es den Usern sogar möglich, die Auslastung der Kosten zu verfolgen. Besonders essenziell ist jedoch, dass es möglich ist, entsprechende Servicekontingente anzulegen. Auf diese Weise können diejenigen Ressourcen systematisch begrenzt werden, auf die in der Regel Beteiligte aus anderen Abteilungen Zugriff haben.
3. Flexibilität für alle User
Skalierbarkeit und nur für das zu zahlen, was tatsächlich verbraucht wurde, darin bestehen die prominentesten Vorteile der Cloud für Unternehmen. Nutzer bleiben hinsichtlich der Ressourcen stets flexibel. Virtuelle Maschinen (VMs) für Test- oder Entwicklungsumgebungen laufen etwa nur während der Bürozeiten statt nachts oder an Wochenenden während Produktionssysteme ohne Weiteres rund um die Uhr laufen sollen. Den Beteiligten bleibt das aufwendige und manuelle An- und Abschalten von Servern insofern erspart.
Eine besondere Funktion, die es so nur in der Cloud gibt, ist die individuelle Steuerung dieses Vorgangs durch den Anwender per Skript. Während die Entwickler über ein übersichtliches Dashboard verfügen, kann der Admin mehreren Anwendergruppen individuelle Zeitpläne zuordnen. Dieser Vorgang hindert den Entwickler auch nicht daran eine bestimmte Einheit neu zu starten, wenn er diese spontan abrufen möchte.
4. Im Prozess Kosten senken
Oft existieren in Unternehmen Task-Forces für wichtige Cloud-Prozesse. Diese Teams üben großen Einfluss auf die allgemeine Cloud-Strategie aus. Ihre Aufgabe ist im Grunde das Controlling und die Senkung von Kosten, Sie bestimmen die Ausgestaltung neuer Ressourcen basierend auf Best Practices. Sie bilden eine künstlich gezogene Barriere, die nicht zwingend erforderlich ist. Es ist dagegen eher sinnvoll, für das Kostenmanagement verbindliche Regeln sowie rollenbasierte Richtlinien und Maßnahmen im Unternehmen festzulegen.
DevOps-Teams werden auf diesem Weg nicht ausgebremst, vielmehr wird mit Hilfe von Leitplanken vermieden, dass Projekte ausufern. Dem Team sollte dabei die Möglichkeit gegeben werden, sich innerhalb der gesetzten Vorgaben auszuprobieren. Und zugleich sollten Unternehmensentscheider darauf achten, dass eine offene Kommunikation gefördert wird. Erfahrungsgemäß wird sich bei einem solch transparenten Ansatz die Beteiligung aller Stakeholder deutlich erhöhen. Auch versetzt es sie in die Lage, proaktiv Korrekturmaßnahmen durchzuführen, sollte ein Projekt den avisierten Pfad verlassen.
5. Vorteile von Cloud-Native-Services nutzen
Da die Möglichkeiten der Cloud nahezu unerschöpflich sind, macht es keinen Sinn, allein dem Cloud-Anbieter alle Optimierungsaufgaben anzuvertrauen. Möchten Entwickler und Unternehmen mehr als nur die klassischen Computing- und Storage-Services verwenden und die volle Bandbreite der Cloud nutzen, sollten sie auf Cloud-Native-Services setzen.
Sobald sich für die Cloud entschieden wurde, sollte der zweite Schritt der Weg vom monolithischen Code hin zu den containerisierten Applikationen basierend auf Microservices sein. So lassen sich Cloud-Native-Services optimal nutzen. Das können beispielsweise serverlose Anwendungen sein, deren Ausführung bedarfsgerecht direkt in Containern möglich ist und die nach Nutzung direkt wieder geschlossen werden.
Container-basierter Applikationen und serverlose Cloud-Nutzung bietet dabei handfeste Vorteile: Die Infrastrukturkosten sinken einerseits beträchtlich, denn es müssen keine Ressourcen dauerhaft vorgehalten bzw. gebucht werden. Andererseits bieten sie maximale Flexibilität und Skalierbarkeit. Die Bereitstellungsgeschwindigkeit für ad-hoc Ressourcen ist um ein Vielfaches höher, was zugleich der Produktivität der Teams zugutekommt.
Zahlreiche Forschungsstudien der Cloud Native Foundations (CNCF) befassten sich bereits mit dieser Thematik. Ein gutes Beispiel liefert das CERN: Im Rahmen eines gehosteten Testszenarios konnte in wenigen Minuten ein Test-Cluster mit über 320.000 Computer-Kernen zugewiesen werden. Ohne Cloud-Native-Services werden üblicherweise mehrere Stunden Vorbereitung benötigt.