Wirtschaftliche Überlegungen zu Cloudanwendungen
CSP unternehmen große Anstrengungen, um Benutzer ihrer herkömmlichen Bereitstellungen zu gewinnen. Die Preise der öffentlichen IaaS-Cloud sind seit der Einführung ihrer Dienste stetig und steil gefallen. Im Durchschnitt sind die Preise bei den meisten großen CSP seit 2013 um 20-30 % pro Jahr gesunken.
Trotz dieser sinkenden Preise muss eine Cloudeinführung jedoch weiterhin mit Sorgfalt erfolgen. Um die Kostenvorteile der Cloud wirklich nutzen zu können, ist es wichtig, dass Sie Ihre Nutzung kennen, budgetieren, planen, überwachen und sorgfältig analysieren. Außerdem ist es schwierig, CSP für einzelne Anwendungsfälle auszuwählen, da es für CSP keine Standardmethode zur Bündelung von Ressourcen gibt und sie nicht immer die gleichen Preismodelle verwenden.
Preismodelle
Cloudanbieter stellen Ressourcen in der Regel auf der Grundlage einer der folgenden drei Arten von Parametern in Rechnung:
- Zeitbasiert: Für Ressourcen werden Gebühren basierend auf der Zeitdauer in Rechnung gestellt, in der die Ressourcen dem Benutzer bereitgestellt werden. Sie bezahlen beispielsweise einen bestimmten Betrag pro Stunde/Tag/Monat/Jahr, um einen virtuellen Computer in einer IaaS-Cloud auszuführen. Die Granularität des Abrechnungszeitraums variiert zwischen den einzelnen Cloudanbietern. Amazon erhebt z. B. auf nicht anteilsmäßiger Basis Gebühren pro Stunde von den Benutzern.
- Kapazitätsbasiert: Benutzern werden Gebühren gemäß der Menge einer bestimmten genutzten oder verbrauchten Ressource in Rechnung gestellt. Dies ist ein beliebtes Abrechnungsmodell für Cloudspeichersysteme. Beispielsweise wird Benutzern ein bestimmter Betrag für das Speichern von einem Gigabyte Daten in Cloudobjektspeichersystemen wie Azure Blob Storage in Rechnung gestellt.
- Leistungsbasiert: Bei vielen Cloudanbietern können Benutzer eine höhere Leistungsstufe für Ressourcen auswählen, indem sie eine höhere Gebühr bezahlen. Bei virtuellen Computern können größere, leistungsfähigere Computer mit mehr CPU-, Speicher- und Festplattenkapazität zu einem höheren Stundensatz bereitgestellt werden.
Basierend auf diesen Abrechnungsparametern verwenden CSP eines der folgenden gängigen Preismodelle:
- Bedarfsgesteuerte und nutzungsbasierte Bezahlung: Dies ist in der Regel das teuerste Preismodell für die langfristige Nutzung. Zahlungen erfolgen für einen sehr kurzen Zeitraum (der in der Regel in Minuten oder Stunden gemessen wird). Der Vorteil besteht darin, dass kein langfristiger Vertrag erforderlich ist, sodass sich das Auf- und Abskalieren je nach aktuellem Bedarf sehr flexibel gestalten lässt. Zwar ist es nicht üblich ist, jedoch für CSP möglich, die Gebühren bei hohem Bedarf zu erhöhen und bei geringem Bedarf zu senken. Dies ist ein gut geeignetes Modell für Dienstanbieter und Cloudbenutzer, die gerade erst anfangen, die Cloud zu nutzen.
- Reservierte Instanzen und abonnementbasierte Preise: Anstatt einen Stunden- oder Minutentarif zu bezahlen, kann ein Benutzer eine Vorauszahlung leisten und eine Ressource für einen eher längeren Zeitraum (Wochen oder Monate) reservieren. Dies führt häufig zu hohen Preisabschlägen (20-50 %), bringt jedoch eine langfristige Bindung mit sich. Bei reservierten Preismodellen sind Zahlungsschemata von der Vorauszahlung bis zu Vertragsverpflichtungen in Form regelmäßiger Zahlungen möglich.
- Spotpreise: Spotpreise stellen für CSP eine Möglichkeit dar, mit überschüssigen, ungenutzten Kapazitäten umzugehen, indem sie diese zu deutlich niedrigeren Preisen anbieten als bedarfsgesteuerte Ressourcen. Die Preise werden durch eine Benutzerauktion bestimmt, bei der Benutzer ein Gebot für den maximalen Betrag abgeben, den sie für eine Ressource zu zahlen gewillt sind. Der größte Nachteil besteht darin, dass die Ressourcen häufig jederzeit beendet werden können, wenn der Spotpreis über den tatsächlichen Angebotspreis steigt. Spotressourcen eignen sich ideal für unkritische Aufträge mit kurzer Laufzeit, die spekulativ ausgeführt werden können.
Im Allgemeinen sollten reservierte Instanzen verwendet werden, um die grundlegenden Anforderungen des Systems zu erfüllen. Wenn eine Anwendung 2 Instanzen zu 80 % der Zeit, 3 Instanzen zu 15 % der Zeit und 4 Instanzen zu 5 % der Zeit benötigt, reservieren Sie üblicherweise 2 Instanzen für die Lebensdauer der Anwendung und nehmen eine Aufskalierung mit bedarfsgesteuerten oder Spot-Instanzen vor. Wie bereits erwähnt, sollten bedarfsgesteuerte Instanzen beim Aufskalieren nur gewählt werden, wenn die Anwendung geschäftskritisch ist oder wenn der Differenz zwischen bedarfsgesteuertem Preis und aktuellem Spotpreis die Gefahr einer plötzlichen Beendigung gegenübersteht. Diese Entscheidung hängt häufig vom jeweiligen Geschäftsfall ab.
Optimieren von Kosten und Nutzung
Um die Cloud kosteneffektiv zu nutzen, müssen Unternehmen einen ausgereiften Prozess zur Auswahl der Ressourcen entwickeln, die bereitgestellt, überwacht und visualisiert werden sollen. Ferner benötigen sie einen eindeutigen Mechanismus zur Identifizierung von Verschwendung und zur Optimierung der Nutzung.
Abbildung 11: Kostenoptimierungsprozess
Vor der Betrachtung der Kostenanforderungen muss eine Organisation die Arbeitsmenge planen, die sie in einem bestimmten Zeitraum auf der Grundlage fixer Ressourcen, wie z. B. der Mitarbeiterzahl, bewältigen kann, während sie sich gleichzeitig mit physischen Einschränkungen wie Bestandsverwaltung, Gemeinkosten aufgrund von Transport, Materialhandhabung usw. auseinandersetzen muss. Die Bereitstellung von IT-Ressourcen muss so ausgelegt sein, dass die physische Kapazität der Organisation erreicht oder überschritten wird. Dies ist äußerst wichtig, da die durch die Cloud gewährte Elastizität Entwicklungsteams dazu verleitet, Ressourcen einfach nach Bedarf hinzuzufügen, ohne die Auswirkungen ihrer Entscheidungen auf die Kosten zu berücksichtigen.
Der erste Schritt beim Versuch, die Ausgaben für die Cloud zu reduzieren, ist die Anpassung der Ressourcentypen an den tatsächlichen Bedarf für die Anwendung. Dies kann bedeuten, zwischen VM mit unterschiedlichen Speicherkonfigurationen oder Anzahlen von Kernen zu wählen. Hierfür gibt es keine einfachen Methode außer der Durchführung von Tests und Vergleichstests der Anwendung mit verschiedenen Ressourcentypen.
Selbst wenn eine Anwendung bei einer teureren Ressourcenklasse eine bessere Leistung erbringt, muss unbedingt geprüft werden, ob die Leistungsverbesserung proportional zur Kostensteigerung ist. Wenn z. B. eine 1,2-fache Verbesserung bei einer Anwendung erfolgt, die eine VM verwendet, welche 7,5-mal so teuer ist wie die Basis, könnte es sinnvoller sein, die Basisressource horizontal aufzuskalieren, um die Leistung zu verbessern.
Es ist wichtig, ein Überwachungs- und Visualisierungssystem zu erstellen, um die verschiedenen verwendeten Ressourcen zu überwachen. Das Überwachungssystem muss so ausgelegt sein, dass es als Reaktion auf festgestellte Muster von Überlastung oder Leerlauf Skalierungsereignisse auslöst. Häufig gehen Infrastrukturteams beim Hoch- bzw. Aufskalieren aggressiv vor, während sie beim Herunter- bzw. Abskalieren eher konservativ agieren. Obwohl dieser Ansatz in Bezug auf die Ressourcenbereitstellung teurer ist, bietet er theoretisch eine höhere Servicequalität als ständiges Arbeiten nahe der Spitzenkapazität.
Davon abgesehen unterschätzen Organisationen häufig die Notwendigkeit, selten genutzte Ressourcen herunterzuskalieren und außer Betrieb zu nehmen. Bei der Ausführungsplanung für verschiedene Komponenten einer Anwendung ist es wichtig, die Nutzung in verschiedenen Klassen zu kategorisieren, und zwar basierend auf der ungefähren Nutzungsdauer der Komponenten. Beispielsweise sollten alle Aufträge, die auf nächtlicher oder wöchentlicher Basis für einen kurzen Zeitraum ausgeführt werden, die Ressourcen nicht rund um die Uhr verwenden. Im Leerlauf befindliche Ressourcen sollten ferner durch das Überwachungssystem gekennzeichnet und (basierend auf bestimmten Regeln) beendet werden.
Eine effiziente Möglichkeit zur Einbeziehung des Kostenaspekts ist das Versehen von Ressourcen mit Tags. Ein Tag ist eine Bezeichnung, die einer Ressource zugewiesen wird, um durch Überwachungs- und Analysetools identifiziert werden zu können. Sie können für einzelne Tags auch benutzerdefinierte Regel definieren, wie etwa Zugriffssteuerungslisten für Ressourcen, Abrechnungswarnungen und bestimmte Skalierungsrichtlinien. Häufig verwendete Tags bezeichnen den Besitzer (Benutzer oder Gruppe) einer bestimmten Ressource, die Umgebung, zu der sie gehört (z. B. Produktions-, Sicherungs-, Staging- und Testumgebung) oder auch die für die Zahlung der Rechnung zuständige Kostenstelle. Durch die Analyse der Ausgaben können gruppierte Ansichten basierend auf bestimmten Anwendungen sowie bestimmten Entwicklungs- oder Testteams generiert werden.