Cloud Computing hat in den letzten Jahren die Art und Weise, wie Unternehmen IT-Ressourcen nutzen, revolutioniert. Doch während die Cloud enorme Flexibilität bietet, können die damit verbundenen Kosten schnell steigen und das Budget belasten. Bei Solda.Ai standen wir vor genau diesem Problem: Unsere monatlichen Ausgaben auf Microsoft Azure erreichten zeitweise etwa 25.000 Euro, eine Summe, die unsere operative Effizienz gefährdete.
Doch statt die Cloud-Nutzung einzuschränken, entschieden wir uns für einen systematischen Ansatz zur Kostenoptimierung. Innerhalb weniger Monate gelang es uns, die Ausgaben auf knapp 8.000 Euro zu reduzieren – und das trotz einer gestiegenen Auslastung. In diesem Beitrag berichten wir detailliert über die Maßnahmen und Technologien, die diesen Erfolg möglich gemacht haben. Eine der ersten und wichtigsten Aufgaben war die korrekte Einstellung der Ressourcenanforderungen und -grenzen innerhalb unserer Kubernetes-Deployments.
Häufig werden in Cloud-Umgebungen unnötig hohe Limits gesetzt, um auf Nummer sicher zu gehen. Das führt dazu, dass Ressourcen unnötig reserviert und damit Kosten verschwendet werden. Durch präzises Festlegen der requests und limits für unsere API-Services, Call-Services, das Admin-Panel und die Analysekomponenten konnten wir die tatsächliche Ressourcennutzung realistisch abbilden. Das Ergebnis zeigte sich schnell: Die Kubernetes-Skalierung agierte effizienter, da sie nun wusste, wie viel Kapazität tatsächlich benötigt wurde, was erste Einsparungen von über drei Prozent leicht ermöglichte. Dabei sollte jeder, der in der Cloud skaliert, aus eigener Erfahrung wissen: Scaling ist nur so effektiv wie die zugrundeliegende Ressourcenplanung.
Im Anschluss an die Optimierung der Ressourcenrichtlinien wandten wir uns der Skalierungsebene der Clusterknoten zu. Zuvor waren dauerhaft mehrere virtuelle Maschinen aktiv, selbst wenn sie gerade kaum oder gar nicht genutzt wurden. Durch das Aktivieren des Managed Kubernetes Cluster Autoscalers konnten wir erreichen, dass während Leerlaufphasen keine unnötigen Knoten laufen. Besonders wichtig war hier die Einstellung von minimalen und maximalen Knotenanzahlen, wodurch die Anzahl der VMs automatisch an die aktuelle Last angepasst wurde – von Null bis zum definierten Maximum. Dieses Maß an Elastizität ermöglichte eine sofortige Kostenreduktion in Höhe von fast sieben Prozent.
Allerdings blieb uns eine Herausforderung: Der Kubernetes Horizontal Pod Autoscaler reduzierte die Anzahl laufender Pod-Replikate nie unter eins, selbst wenn keine ausgehenden Anfragen verarbeitet werden mussten. Um dieses Problem zu lösen, entwickelten wir eine eigene Operator-Komponente in der Programmiersprache Go. Dieser maßgeschneiderte Operator überwacht kontinuierlich die Warteschlange der ausgehenden Anrufe und setzt die Anzahl der Pod-Repliken auf Null, sobald keine Arbeit ansteht. Sobald keine Pods mehr aktiv sind, erkennt der Azure-Autoscaler dies und fährt die darunterliegenden Knoten herunter. Dieser intelligente Mechanismus führte zu einer Einsparung von über 13 Prozent.
Die Entwicklung dieses Operators war technisch anspruchsvoll, insbesondere bezüglich der Behandlung von Wettlaufbedingungen und der umfassenden Protokollierung, aber der Nutzen rechtfertigte den Aufwand in vollem Umfang. Ein weiterer Schritt auf unserem Weg bestand darin, die Workloads auf sechs separate Nodepools aufzuteilen. Anstatt alle Dienste in einem einzigen Pool zusammenzufassen, weist jeder Nodepool nun spezifischen Anwendungsbereichen dedizierte virtuelle Maschinen zu. Die verschiedenen Lastprofile von Sprachbots, HTTP-APIs, dem Admin-Panel, Echtzeitanalyse, Batchverarbeitung und sonstigen Services erfordern unterschiedliche VM-Typen und Ressourcenlevel. Mit gezieltem Tuning pro Nodepool konnten wir die Skalierungsregeln feiner abbilden und so die Ressourcenauslastung weiter optimieren.
Dieses Vorgehen brachte zusätzliche Kosteneinsparungen von mehr als drei Prozent. Einer der größten Hebel zur Kostenreduzierung lag in der Nutzung von Spot-VMs für nicht-kritische Prozesse wie Batchjobs oder Hintergrundanalysen. Spot-VMs sind temporär verfügbare Cloud-Ressourcen zu deutlich reduzierten Preisen, die jedoch jederzeit durch Azure entzogen werden können. Um die Verfügbarkeit nicht zu gefährden, bauten wir robuste Retry-Mechanismen ein und erhöhten die Anzahl der API-Replikate, sodass auch bei einem Ausfall von Spot-VMs keine dauerhafte Serviceunterbrechung entstand. Dieser Schritt war ausschlaggebend für eine Kostensenkung von mehr als 40 Prozent bei den betroffenen Workloads.
Dennoch war Vorsicht geboten: Spot-VMs sind regional unterschiedlich verfügbar und oft nur für sehr kurze Zeiträume nutzbar. Wir investierten deshalb in simulative Tests und Monitoring, um ungeplante Unterbrechungen frühzeitig zu erkennen und abzufedern. Unsere Erfahrung zeigte, dass jeder Optimierungsschritt auf den vorherigen aufbaute, sodass die Effekte kumulativ wirken, aber nicht einfach addiert werden können. Insgesamt konnten wir unseren Azure-Monatsbeitrag um 68 Prozent senken, also von 25.000 Euro auf etwa 8.
000 Euro. Das Erstaunliche daran ist, dass wir währenddessen den ausgehenden Anrufverkehr unseres Systems erheblich steigerten, was die erreichten Einsparungen umso eindrucksvoller macht. Zentrale Erfolgsfaktoren für diese Optimierung waren vor allem sorgfältiges Monitoring, intelligente Automatisierung und die konsequente Anpassung von Skalierungslogiken. Darüber hinaus empfehlen wir dringend den Einsatz von Infrastructure-as-Code-Werkzeugen wie Terraform oder ARM Templates, um Konfigurationen sicher und reproduzierbar zu verwalten. Ebenso sinnvoll ist die Simulation von Spot-VM-Unterbrechungen in Testumgebungen sowie der Aufbau individuelle Monitoring- und Alarmsysteme, die unnötige Leerlaufzeiten aufdecken.
Insgesamt zeigt unsere Reise, dass eine tiefgehende Analyse und gezielte technische Maßnahmen selbst bei komplexen Cloud-Umgebungen massive Kostenvorteile bringen kann, ohne Kompromisse bei Leistung oder Systemstabilität einzugehen. Firmen, die ähnliche Herausforderungen haben, können von diesen Erkenntnissen profitieren und sollten mutig an die Anpassung ihrer Cloud-Architekturen herangehen. Gerade in Zeiten steigender Cloud-Nutzung ist eine effiziente und optimierte Infrastruktur wirtschaftlich sowie strategisch ein entscheidender Wettbewerbsvorteil.