Mehrinstanzenfähigkeit und Azure Database for PostgreSQL
Viele mehrinstanzenfähige Lösungen in Azure verwenden das Open-Source-Managementsystem für relationale Datenbanken Azure Database for PostgreSQL. In diesem Artikel werden die Features von Azure Database for PostgreSQL beschrieben, die bei der Arbeit mit mehrinstanzenfähigen Systemen nützlich sind. Der Artikel enthält zudem Links zu Leitfäden und Beispielen für die Verwendung von Azure Database for PostgreSQL in einer mehrinstanzenfähigen Lösung.
Bereitstellungsmodi
Für Azure Database for PostgreSQL stehen zwei Bereitstellungsmodi zur Verfügung, die für die Verwendung mit mehrinstanzenfähigen Anwendungen geeignet sind:
- Azure Database for PostgreSQL – flexibler Server – Diese Auswahl eignet sich für die meisten mehrinstanzenfähigen Bereitstellungen, für die nicht die hohe Skalierbarkeit erforderlich ist, die Azure Cosmos DB for PostgreSQL bietet.
- Azure Cosmos DB for PostgreSQL: Ein von Azure verwalteter Datenbankdienst, der für Lösungen entworfen wurde, für die ein hohes Maß an Skalierung erforderlich ist, wozu häufig mehrinstanzenfähige Anwendungen gehören. Dieser Dienst ist Teil der Azure Cosmos DB-Produktfamilie.
Hinweis
Azure Database for PostgreSQL – Single Server wird eingestellt. Der geplante Termin hierfür ist der 28. März 2025. Diese Lösung wird nicht für neue mehrinstanzenfähige Workloads empfohlen.
Features von Azure Database for PostgreSQL, die Mehrinstanzenfähigkeit unterstützen
Wenn Sie eine mehrinstanzenfähige Anwendung mithilfe von Azure Database for PostgreSQL erstellen, können Sie eine Vielzahl von Features verwenden, um die Lösung zu verbessern.
Hinweis
Einige Features sind nur in bestimmten Bereitstellungsmodi verfügbar. Diese Features sind im nachstehenden Leitfaden angegeben.
Sicherheit auf Zeilenebene
Sicherheit auf Zeilenebene ist nützlich, um die Isolation auf Mandantenebene zu erzwingen, wenn Sie freigegebene Tabellen verwenden. In PostgreSQL wird die Sicherheit auf Zeilenebene implementiert, indem Zeilensicherheitsrichtlinien auf Tabellen angewendet werden, um den Zugriff auf Zeilen nach Mandant einzuschränken.
Bei der Implementierung von Sicherheit auf Zeilenebene für eine Tabelle kann es zu einer geringfügigen Beeinträchtigung der Leistung kommen. Daher müssen möglicherweise zusätzliche Indizes für Tabellen mit aktivierter Sicherheit auf Zeilenebene erstellt werden, um sicherzustellen, dass die Leistung nicht beeinträchtigt wird. Es wird empfohlen, Leistungstestverfahren zu verwenden, um zu überprüfen, ob Ihre Workload Ihre Baselineleistungsanforderungen erfüllt, wenn die Sicherheit auf Zeilenebene aktiviert ist.
Weitere Informationen:
Horizontale Skalierung mit Sharding
Mit dem Shardingmuster können Sie Ihre Workload auf mehrere Datenbanken oder Datenbankserver skalieren.
Für Lösungen, die ein sehr hohes Maß an Skalierung benötigen, kann Azure Cosmos DB for PostgreSQL verwendet werden. Dieser Bereitstellungsmodus ermöglicht horizontales Sharding von Mandanten auf mehrere Server (Knoten). Durch die Verwendung verteilter Tabellen in mehrinstanzenfähigen Datenbanken können Sie sicherstellen, dass alle Daten für einen Mandanten auf demselben Knoten gespeichert werden, wodurch die Abfrageleistung erhöht wird.
Hinweis
Ab Oktober 2022 wurde Azure Database for PostgreSQL Hyperscale (Citus) in Azure Cosmos DB for PostgreSQL umbenannt und in die Cosmos DB-Produktfamilie aufgenommen.
Weitere Informationen:
- Entwerfen einer mehrinstanzenübergreifenden Datenbank mit Azure Cosmos DB für PostgreSQL
- Verteilte Tabellen
- Auswählen einer Verteilungsspalte in einer verteilten Tabelle.
- Leitfaden zur Verwendung von Citus für mehrinstanzenfähige Anwendungen.
Verbindungspooling
Postgres verwendet ein prozessbasiertes Modell für Verbindungen. Dieses Modell macht es ineffizient, eine große Anzahl von Verbindungen im Leerlauf beizubehalten. Einige mehrinstanzenfähige Architekturen erfordern eine große Anzahl aktiver Verbindungen, was sich negativ auf die Leistung des Postgres-Servers auswirkt.
Verbindungspooling über PgBouncer wird in Azure Database for PostgreSQL – flexibler Server standardmäßig installiert.
Weitere Informationen:
- PgBouncer in Azure Database for PostgreSQL – Flexible Server
- Verbindungspooling in Azure Cosmos DB for PostgreSQL
- Steps to install and set up PgBouncer connection pooling proxy with Azure Database for PostgreSQL (Schritte zum Installieren und Einrichten des PgBouncer-Verbindungspoolingproxys mit Azure Database for PostgreSQL)
Microsoft Entra-Authentifizierung
Azure Database for PostgreSQL – flexibler Server unterstützt die Authentifizierung von Verbindungen mit Microsoft Entra ID. Diese Funktion ermöglicht es Anwendungsworkloads in mehrinstanzenfähigen Umgebungen, sich bei der Datenbank mit einem mandantenspezifischen Dienstprinzipal oder einer verwalteten Identität zu authentifizieren. In welchem Umfang der Zugriff auf die Datenbank möglich ist, lässt sich also für individuelle Mandanten bestimmen. Indem Sie die Authentifizierung von Microsoft Entra ID zusammen mit mandantenspezifischen Richtlinien für die Sicherheit auf Zeilenebene nutzen, senken Sie das Risiko, dass eine Anwendung aus einer mehrinstanzenfähigen Datenbank Zugriff auf die Daten eines anderen Mandaten erlangt. Weitere Informationen:
- Microsoft Entra-Authentifizierung mit Azure Database for PostgreSQL – Flexibler Server
- Herstellen einer Verbindung mit Azure Database for PostgreSQL – Flexibler Server unter Verwendung einer verwalteten Identität
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Daniel Scott-Raynsford | Partner Technology Strategist
Andere Mitwirkende:
- John Downs | Principal Software Engineer
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack for Azure
- Paul Burpo | Principal Customer Engineer, FastTrack for Azure ISVs
- Assaf Fraenkel | Senior Engineer/Data Architect, Azure FastTrack for ISVs and Start-ups
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
Überprüfen Sie die Speicher- und Datenansätze für mehrere Mandanten.