Navigation überspringen

Hochskalieren oder Aufskalieren

Eine Einführung in die Datenbankskalierbarkeit beim Cloud Computing

Skalierbarkeit in aller Munde – eine Begriffserklärung

Skalierbarkeit beim Cloud Computing bedeutet, dass die Größe oder Leistung einer IT-Lösung oder -Ressource schnell und einfach erhöht oder verringert werden kann. Obwohl der Begriff „Skalierbarkeit“ die Fähigkeit eines jeden Systems beschreiben kann, eine steigende Arbeitslast zu bewältigen, bezieht er sich im Zusammenhang des Hoch- und Aufskalierens häufig auf Datenbanken und Daten in hohen Mengen.

Die Skalierbarkeit von Datenbanken ist einer der wichtigsten Aspekte für moderne App-Entwickler*innen. Angenommen, eine neue App wird veröffentlicht, und die Nachfrage danach steigt von einer Handvoll auf Millionen Benutzer*innen weltweit an. Effizientes Skalieren ist hier eine der zentralen Voraussetzungen, damit App-Entwickler*innen mit der Nachfrage Schritt halten und Downtime minimieren können.

Bei der Debatte um das Auf- und Hochskalieren geht es darum, wie wir mithilfe von Skalierbarkeit die immensen und variierenden Datenmengen, das riesige Datenspektrum und sich ändernde Workloadmuster bewältigen können, die in der Cloud, auf mobilen Geräten, in sozialen Medien und aus Big Data generiert werden.

Aufskalieren oder Hochskalieren

Datenbankskalierbarkeit lässt sich im Grunde in zwei Typen unterteilen:

Bei der vertikalen Skalierung, auch hoch- und herunterskalieren genannt, vergrößern oder verkleinern Sie die Rechenleistung oder Datenbanken nach Bedarf, entweder durch eine Änderung der Leistungsstufen oder mithilfe von Pools für elastische Datenbanken, damit eine automatische Anpassung an Ihre Workloadanforderungen erfolgt.

Bei der horizontalen Skalierung, auch auf- und abskalieren genannt, fügen Sie weitere Datenbanken hinzu oder unterteilen Ihre große Datenbank in kleinere Knoten, indem Sie einen Datenpartitionierungsansatz namens Sharding verwenden, der serverübergreifend schneller und einfacher verwaltet werden kann.

Vertikales Hochskalieren

Die vertikale Skalierung wird eingesetzt, wenn Sie schnell reagieren müssen, um ein Leistungsproblem zu beheben, das Sie nicht mit klassischen Datenbankoptimierungstechniken lösen können, zum Beispiel Abfrageänderungen oder Indizierung. Das Hochskalieren ist hilfreich, um Spitzen in Ihren Workloads zu bewältigen, bei denen die aktuelle Leistungsebene nicht alle Anforderungen erfüllen kann. Außerdem können Sie damit weitere Ressourcen hinzufügen, um Spitzenworkloads problemlos zu verarbeiten. Wenn die Ressourcen dann nicht mehr benötigt werden, können Sie zum ursprünglichen Zustand herunterskalieren und Cloudkosten sparen.

In diesen Fällen sollten Sie hochskalieren:

  • Sie bemerken, dass Ihre Workloads ein Leistungslimit erreichen, zum Beispiel einen CPU- oder E/A-Grenzwert.
  • Sie müssen schnell reagieren, um Leistungsprobleme zu beheben, die mit der klassischen Datenbankoptimierung nicht gelöst werden können.
  • Sie benötigen eine Lösung, mit der Sie die Dienstebene wechseln können, um sich an sich ändernde Latenzanforderungen anzupassen.

Horizontales Aufskalieren

Aufskalieren oder horizontales Skalieren bietet sich für App-Entwickler*innen an, wenn sie selbst auf der höchsten betrieblichen Leistungsstufe nicht genügend Ressourcen für ihre Workloads mobilisieren können. Bei der horizontalen Skalierung werden Daten serverübergreifend in mehrere Datenbanken oder Shards aufgeteilt. Jeder dieser Shards kann dann unabhängig hoch- und herunterskaliert werden.

Wie verbessert die Partitionierung von Daten die Skalierbarkeit? Wenn Sie ein Singleton durch das Hinzufügen von Ressourcen wie VMs hochskalieren, erreicht es irgendwann sein physisches Hardwarelimit. Da Datenpartitionen jeweils auf einem separaten Server gehostet werden, können Sie ein System nahezu unbegrenzt aufskalieren, wenn Sie Daten auf mehrere Shards aufteilen.

Bestimmte Datenbanktechnologien, insbesondere nicht relationale oder NoSQL-Datenbanken, verfügen über die besondere Fähigkeit, Daten horizontal durch Sharding aufzuskalieren. So können sie große, nicht zusammenhängende, unbestimmte oder sich sehr schnell ändernde Daten verarbeiten.

Auch einige relationale (SQL-)Datenbankdienste, die ursprünglich nur Hoch- und Herunterskalieren anboten, haben ihr Portfolio um interessante Optionen erweitert, um mit den Skalierbarkeitsvorteilen von nicht relationalen Datenbanken mithalten zu können. Mit Hyperscale-Diensten wie Microsoft Azure SQL-Datenbank Hyperscale und Azure Database for PostgreSQL Hyperscale können Benutzer*innen Speicher im Handumdrehen auf bis zu 100 TB skalieren. Außerdem bieten diese Dienste eine flexible, cloudnative Architektur, in der Speicher nach Bedarf wachsen kann, und ermöglichen nahezu sofortige Sicherungen sowie schnelle Datenbankwiederherstellungen innerhalb weniger Minuten.

In diesen Fällen sollten Sie aufskalieren:

  • Ihre Anwendungen sind geografisch verteilt, wobei jede App auf einen Teil der Daten in der Region zugreifen soll. Jede App greift nur auf den Shard zu, der dieser Region zugeordnet ist – ohne Auswirkungen auf die anderen Shards.
  • Sie arbeiten mit einem globalen Shardingszenario, zum Beispiel mit einem Lastenausgleich. In diesem Rahmen haben Sie viele geografisch verteilte Clients, die Daten in ihre eigenen dedizierten Shards einfügen.
  • Sie haben Ihre Leistungsanforderungen selbst in den höchsten Leistungsstufen Ihres Diensts vollständig ausgeschöpft, oder Ihre Daten passen nicht in ein Singleton.

Automatische Skalierung

Bei der automatischen Skalierung werden Ressourcen automatisch und dynamisch so zugeordnet, dass die Leistungsanforderungen eines Systems erfüllt werden. Je mehr Arbeit anfällt, desto mehr zusätzliche Ressourcen benötigen Apps unter Umständen, um die erforderliche Leistung zu halten oder die wachsende Nachfrage zu decken. Wenn die Nachfrage abnimmt und die zusätzlichen Ressourcen nicht mehr benötigt werden, sparen Sie Cloudausgaben, weil der automatische Dienst nicht verwendete Ressourcen wieder freigibt.

Die automatische Skalierung macht sich die Elastizität von in der Cloud gehosteten Umgebungen zunutze. Sie verringert den Verwaltungsaufwand, da sie Systembetreiber von der Pflicht entbindet, ständig über das Hinzufügen oder Entfernen von Ressourcen zu entscheiden oder die Leistung des Systems zu überprüfen.

Obwohl Apps vertikal oder horizontal skaliert werden können, ist es weniger üblich, die vertikale Skalierung zu automatisieren, da das System beim Hochskalieren während der Neubereitstellung häufig vorübergehend abgeschaltet wird.

Die automatische Skalierung kommt häufiger beim horizontalen Skalieren zum Einsatz, da beim Auf- und Abskalieren nur Instanzen einer Ressource hinzugefügt oder entfernt werden. Ihre App wird parallel ohne Unterbrechung ausgeführt, während neue Ressourcen bereitgestellt werden. Sinkt der Bedarf, können Ressourcen nahtlos ohne Downtime heruntergefahren und freigegeben werden.

Viele Anbieter von cloudbasierten Systemen wie Microsoft Azure unterstützen die automatische horizontale Skalierung.

  • Eine Datenbank ist eine Sammlung zusammenhängender Informationen, die so gespeichert und sortiert sind, dass die Verwaltung und der Zugriff vereinfacht werden. Da neue Daten und Datentypen in rasantem Tempo generiert werden, besteht die Herausforderung darin, die Ordnung, Zugänglichkeit und Sicherheit dieser Daten zu wahren. Große Datenmengen werden häufig mithilfe von Datenbankverwaltungssystemen (Database Management Systems, DBMS) und den darin enthaltenen Verwaltungstools verarbeitet.

    Um den Mengen und dem breiten Spektrum der Daten gerecht zu werden, die in der Cloud, auf mobilen Geräten, in sozialen Medien und aus Big Data generiert werden, werden ständig neue Datenbanktypen und -technologien entwickelt.

    Weitere Informationen zu Datenbanken
  • Bei NoSQL-Datenbanken, die auch oft als nicht relational oder „nicht nur SQL“ bezeichnet werden, handelt es sich um verschiedene Datenbanktechnologien, in denen das Speichern und Abrufen von Daten anders erfolgt als in herkömmlichen relationalen (SQL-)Datenbanken.

    NoSQL-Datenbanken erfordern kein vordefiniertes Schema und können mehrere Datenmodelle verwenden. Dies macht sie äußerst effektiv bei der Verarbeitung großer Mengen unstrukturierter Daten und der Skalierung von Big-Data-Datenbankprojekten.

    Weitere Informationen zu NoSQL-Datenbanken
  • PostgreSQL ist eine stabile Open-Source-Datenbank, die mit relationalen und nicht relationalen Abfragen funktioniert und für ihre Zuverlässigkeit und Datenintegrität bekannt ist. PostgreSQL wird zum Beispiel im Finanzdienstleistungssektor, in der Fertigung, für geografische Informationssysteme von Behörden und in der Webtechnologie großflächig eingesetzt. Entwickler*innen nutzen PostgreSQL für die App-Programmierung, während Administrator*innen beim Schutz ihrer Daten darauf vertrauen.

    Weitere Informationen zu PostgreSQL
  • Das Zwischenspeichern wird von Entwickler*innen und IT-Expert*innen oft eingesetzt, um die Leistung und Skalierbarkeit eines Systems zu optimieren. Dabei werden häufig verwendete Daten vorübergehend in einen schnellen Speicher kopiert, der sich nahe bei der App befindet. Liegt dieser schnelle Datenspeicher näher bei der App als die ursprüngliche Datenquelle, wird durch das Zwischenspeichern die Antwortzeit von Client-Apps deutlich verbessert und die Datenbereitstellung beschleunigt. Entwickler*innen entwerfen Apps häufig so, dass verarbeitete Daten zwischengespeichert werden, und funktionieren den Cache so um, dass Anforderungen schneller als in gewöhnlichen Datenbankabfragen verarbeitet werden.

    Weitere Informationen zum Zwischenspeichern
  • Datensharding ist eine Art horizontale Datenpartitionierung, mit der Sie Ihre große Datenbank in mehrere kleine Datenbanken aufteilen können, um die serverübergreifende Verwaltung zu beschleunigen und zu vereinfachen.

    Weitere Informationen zu Datenbanksharding
  • Platform as a Service, häufig als PaaS abgekürzt, ist ein Dienstangebot von Cloudanbietern, das eine bedarfsgesteuerte Umgebung für die Entwicklung, Tests, die Bereitstellung und die Verwaltung von Apps umfasst. Mit PaaS-Lösungen können Entwickler*innen webbasierte und mobile Apps entwerfen, ohne sich mit der Einrichtung oder Verwaltung der erforderlichen zugrunde liegenden Server-, Speicher-, Netzwerk- und Datenbankinfrastruktur befassen zu müssen.

    Weitere Informationen zu PaaS

Cloudskalierbarkeit mit Azure

Entdecken Sie unsere ganzheitliche Herangehensweise an das Hoch- und Aufskalieren, die sich nahtlos in Ihr individuelles Szenario einfügt – in lokalen, Multi-Cloud- und Edge-basierten Umgebungen. Die Azure-Familie von Datenbankdiensten ist auf moderne App-Entwickler*innen zugeschnitten und bietet eine Auswahl vollständig verwalteter relationaler, NoSQL-basierter und arbeitsspeicherinterner Datenbanken für proprietäre und Open-Source-basierte Engines.

Sparen Sie Zeit und Geld dank automatisierter Infrastrukturverwaltung, einschließlich Automatisierungslösungen für mehr Skalierbarkeit, Verfügbarkeit und Sicherheit.

Verwandte Produkte und Dienste

Azure SQL

Produktfamilie der SQL-Clouddatenbanken mit flexiblen Optionen für die Migration, Modernisierung und Entwicklung von Apps

Azure Cosmos DB

Schnelle NoSQL-Datenbank mit offenen APIs für jede Größenordnung

Azure PostgreSQL

Vollständig verwaltete, intelligente und skalierbare PostgreSQL-Lösungen

Azure SQL-Datenbank

Verwaltetes, intelligentes SQL in der Cloud

Azure SQL Managed Instance

Verwaltete, stets aktuelle SQL-Instanz in der Cloud

SQL Server auf virtuellen Computern

Migrieren Sie SQL Server-Workloads zu möglichst niedrigen Gesamtkosten in die Cloud

Azure Database for MySQL

Vollständig verwaltete skalierbare MySQL-Datenbank

Azure Maria DB

Verwalteter MariaDB-Datenbankdienst für App-Entwickler

Azure Cache for Redis

Leistungsstärkere Anwendungen dank hohem Durchsatz und Datencaching mit geringer Latenz

Grenzenloses Skalieren – mit verwalteten Datenbanken

Konzentrieren Sie sich auf die App-Entwicklung, und vereinfachen Sie Ihre Arbeit mit von Microsoft Azure verwalteten Datenbanken.

Kann‘s losgehen? Dann richten Sie Ihr kostenloses Konto ein.