Lahmende Cloud-Applikationen sind eine häufige Ursache für Beschwerden und Unmut. Dabei liegt die Wurzel des Übels allerdings in neun von zehn Fällen nicht in der Anwendung selbst, sondern in der zugrundeliegenden Datenbank - beziehungsweise ihrer Underperformance.
Da Generative AI schon danach lechzt, ihre Daten zum Frühstück zu verspeisen, macht es Sinn, den Performance-Problemen in Zusammenhang mit Cloud-DBs auf den Grund zu gehen. Dazu sollten Sie sich die folgenden vier Fragen stellen.
Setzen Sie auf den richtigen Cloud-Service?
Die großen Cloud-Anbieter haben diverse Datenbank-Services im Angebot - Amazon RDS, Azure SQL Database und Google Cloud SQL beispielsweise. Dafür ist es manchmal erforderlich, die gewählte Datenbank anzupassen, damit alles optimal zusammenpasst. Das Problem dabei: In vielen Fällen wurde die Datenbank initial falsch gewählt. Sie sollten deshalb Ihren spezifischen Anwendungsfall betrachten und bei der Wahl der Datenbank alle relevanten Faktoren berücksichtigen - inklusive Managed Services, geografischer Lokationen und Kompatibilitätsfragen.
Auch der Datenbanktyp und der Anbieter spielt dabei eine Rolle. Einfach anzunehmen, dass jede Datenbank eine gute Performance liefert, weil sie "in der Cloud liegt" und deshalb vermeintlich unendlich skalierbar wäre, ist weder zutreffend noch zielführend. Welcher Datenbanktyp für Ihren Anwendungsfall der richtige ist, hängt davon ab:
welche Daten Sie speichern wollen und
wie Sie diese nutzen wollen.
Wie steht es um Indexing und Design?
Ein effizientes Design und eine korrekte Indizierung sind für eine gute Performance von Datenbanken von erheblicher Bedeutung. Tatsächlich lässt sich das Gros der Probleme mit leistungsschwachen DBs auf Designunzulänglichkeiten (etwa übermäßig komplexe Strukturen) und falsch angewandtes Indexing zurückführen. Folgende Maßnahmen schaffen Abhilfe:
Stellen Sie ein ordnungsgemäßes Indexing sicher, um Daten schneller abrufen zu können.
Überprüfen und optimieren Sie Requests regelmäßig, um Bottlenecks zu beseitigen.
Stellen Sie sicher, dass Ihr Datenbankschema optimiert ist.
Normalisieren Sie die Datenbank wo nötig, aber übertreiben Sie es nicht.
Für diejenigen, die in den 1990er Jahren keinen Datenbankkurs belegt haben: Organisieren Sie die Daten in separaten, miteinander verbundenen Tabellen oder anderen nativen Datenbank-Containern.
Das Ziel der Normalisierung besteht darin, Redundanzen und Abhängigkeiten zu minimieren, indem doppelte Datensätze eliminiert und größere Tabellen in kleinere aufgeteilt werden, um sie besser managen zu können. Meiner Erfahrung nach wird der Normalisierungsprozess zu Zwecken der Leistungsmaximierung allzu oft übersehen.
Skalieren Sie Ihre Ressourcen angemessen?
Wenngleich Public-Cloud-Anbieter hochskalierbare Ressourcen anbieten, um variablen Workloads gerecht zu werden, ist Effektivität dabei oft Mangelware. Um Ihre Ressourcen dynamisch und vor allem bedarfsgerecht anzupassen, sollten Sie in Erwägung ziehen, Auto-Scaling-Funktionen zu implementieren. Für High-Performance-Anforderungen kann strategisch sowohl horizontal (mehr Instanzen) als auch vertikal (größere Instanzen) skaliert werden.
Wenn der Cloud-Anbieter Ressourcen in Ihrem Namen automatisiert zuweist, ist jedoch auch Vorsicht geboten: Dabei werden in manchen Fällen nämlich zu viele Ressourcen zugewiesen, was am Ende in einer horrenden Abrechnung mündet. Statt also eine Schaltfläche zu aktivieren, sollten Sie diesbezüglich zu einer Balance finden.
Gleicht Ihre Storage-Konfiguration einer Katastrophe?
Es empfiehlt sich, Ihre Storage-Konfiguration auf Grundlage Ihrer Workload-Charakteristika zu optimieren. Best Practices, die Sie einmal in einem Cloud-Zertifizierungskurs aufgeschnappt haben, bringen Sie hier nicht weiter. Achten Sie insbesondere auf folgende Punkte:
Nutzen Sie SSDs für E/A-intensive Workloads (bedenken Sie aber, dass die oft teurer sind als konventionelle HDDs).
Wählen Sie das richtige Storage-Tier und implementieren Sie Caching-Mechanismen, um E/A-Vorgänge zu minimieren.
Weil Caching inzwischen ebenfalls automatisiert abläuft, benötigen Sie möglicherweise granularere Kontrollmöglichkeiten, um die optimale Performance zu den geringstmöglichen Kosten zu erreichen.
(fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.