Wskazówki dotyczące korzystania z usługi Azure Database for PostgreSQL w rozwiązaniu wielodostępnym

Wiele wielodostępnych rozwiązań na platformie Azure korzysta z systemu zarządzania relacyjnymi bazami danych typu open source w usłudze Azure Database for PostgreSQL. W tym artykule opisano funkcje usługi Azure Database for PostgreSQL, które są przydatne podczas pracy z systemami wielodostępnymi. Ten artykuł zawiera również linki do wskazówek i przykładów dotyczących korzystania z usługi Azure Database for PostgreSQL w rozwiązaniu wielodostępnym.

Opcje wdrażania

Dostępne są następujące opcje dla Azure Database for PostgreSQL i są odpowiednie do użycia z aplikacjami wielodostępnymi:

  • Azure Database for PostgreSQL jest dobrym wyborem w przypadku większości wielodostępnych wdrożeń, które nie wymagają wysokiej skalowalności Azure Cosmos DB dla usługi PostgreSQL.

  • Azure Database for PostgreSQL elastyczne klastry zapewnia skalowanie w poziomie w ramach usługi zarządzanej. Jest ona odpowiednia dla aplikacji dla wielu najemców, które muszą być skalowane od kilku najemców do dużej liczby najemców.

  • Azure HorizonDB (wersja zapoznawcza) to natywna dla chmury, w pełni zarządzana platforma PostgreSQL z rozagregowaną architekturą obliczeniową i magazynową. Zapewnia podstawowy punkt końcowy odczytu i zapisu oraz pulę replik do odczytu z równoważeniem obciążenia, która umożliwia skalowanie odczytu w poziomie dla poszczególnych dzierżawców. HorizonDB jest dobrym rozwiązaniem w przypadku zapleczy SaaS i obciążeń transakcyjnych o wysokiej przepływności.

    Important

    Azure HorizonDB jest dostępna w wersji zapoznawczej i nie jest zalecana w przypadku obciążeń produkcyjnych.

Azure Cosmos DB dla bazy danych PostgreSQL znajduje się na ścieżce wycofania i nie jest zalecana w przypadku nowych projektów. Usługa zostanie wycofana 31 marca 2029 r. Przeprowadź migrację istniejących obciążeń do klastrów elastycznych Azure Database for PostgreSQL przed tą datą.

Funkcje usługi Azure Database for PostgreSQL, które obsługują wielodostępność

Jeśli używasz usługi Azure Database for PostgreSQL do tworzenia aplikacji wielodostępnej, następujące funkcje mogą ulepszyć rozwiązanie.

Uwaga

Niektóre funkcje są dostępne tylko w określonych opcjach wdrażania. Poniższe wskazówki opisują, które funkcje są dostępne.

Zabezpieczenia na poziomie wiersza

Zabezpieczenia na poziomie wiersza są przydatne, aby wymusić izolację na poziomie najemcy przy użyciu współdzielonych tabel. W PostgreSQL zaimplementujesz zabezpieczenia na poziomie wiersza, stosując zasady zabezpieczeń wierszy na tabelach, aby ograniczyć dostęp do wierszy przez najemcę.

Implementowanie zabezpieczeń na poziomie wiersza w tabeli może mieć wpływ na wydajność. Może być konieczne utworzenie innych indeksów w tabelach z włączonym zabezpieczeniem na poziomie wiersza, aby upewnić się, że wydajność nie ma wpływu. W przypadku korzystania z zabezpieczeń na poziomie wiersza ważne jest użycie technik testowania wydajnościowego w celu sprawdzenia, czy obciążenie spełnia podstawowe wymagania dotyczące wydajności.

Aby uzyskać więcej informacji na temat zabezpieczeń na poziomie wiersza, zobacz Zarządzanie dostępem dla usługi Azure Database for PostgreSQL.

Kontekst dzierżawy dla zabezpieczeń na poziomie wiersza

Polityki zabezpieczeń na poziomie wiersza wymagają dostępu do bieżącego identyfikatora najemcy. Azure Database for PostgreSQL udostępnia dwa rozszerzenia, które ułatwiają zarządzanie kontekstem dzierżawy:

  • session_variable: udostępnia zmienne o zakresie sesji, których można użyć do przechowywania i pobierania identyfikatora dzierżawy w ramach sesji. Użyj tych zmiennych w zasadach zabezpieczeń na poziomie wiersza.
  • login_hook: wykonuje funkcję podczas logowania. Użyj tego rozszerzenia, aby automatycznie ustawić kontekst dzierżawy podczas nawiązywania połączenia.

Aby uzyskać więcej informacji, zobacz Rozszerzenia oraz ich wersje dla Azure Database for PostgreSQL.

Skalowanie w poziomie przy użyciu fragmentowania

Wzorzec fragmentowania umożliwia skalowanie obciążenia między wieloma bazami danych lub serwerami baz danych.

Rozwiązania wymagające wysokiego poziomu skalowania mogą używać usługi Azure Cosmos DB for PostgreSQL. Ten tryb wdrażania umożliwia fragmentowanie w poziomie dzierżaw między wieloma serwerami lub węzłami. Użyj tabel rozproszonych w wielodostępnych bazach danych, aby upewnić się, że wszystkie dane najemcy są przechowywane w tym samym węźle. Takie podejście zwiększa wydajność zapytań.

Aby uzyskać więcej informacji, zobacz następujące artykuły:

Klastry elastyczne

Klastry elastyczne to funkcja Azure Database for PostgreSQL. Zapewniają one możliwości skalowania w poziomie w ramach jednej usługi zarządzanej. Ta opcja wdrożenia korzysta z funkcji tabeli rozproszonej dla obciążeń wielodostępnych, które wymagają możliwości skalowania w poziomie.

W rozwiązaniach wielodostępnych elastyczne klastry umożliwiają dzielenie danych najemców między wiele węzłów. Klastry elastyczne obsługują dwa modele fragmentowania:

  • Fragmentowanie oparte na wierszach: można dystrybuować tabele według identyfikatora najemcy, aby zapewnić kolokację danych najemcy na określonych węzłach. To podejście może poprawić wydajność zapytań specyficznych dla dzierżawcy, ale wymaga, aby zapytania zawierały kolumnę dystrybucji.
  • Fragmentowanie oparte na schemacie: Można odizolować klientów, używając oddzielnego schematu dla każdego klienta. Takie podejście jest idealne w przypadku niezależnych dostawców oprogramowania (ISV) wdrażających aplikacje, których zapytania nie mogą być modyfikowane w celu obsługi shardingu opartego na wierszach. Fragmentowanie oparte na schemacie jest odpowiednie dla obciążeń z zakresu od 1 do 10 000 dzierżaw.

Aby uzyskać więcej informacji, zobacz następujące artykuły:

Buforowanie połączeń

Baza danych Postgres używa modelu opartego na procesie dla połączeń. Ten model czyni nieefektywnym utrzymywanie dużej liczby bezczynnych połączeń. Niektóre architektury wielodostępne wymagają wielu aktywnych połączeń, które negatywnie wpływają na wydajność serwera Postgres.

Buforowanie połączeń za pośrednictwem narzędzia PgBouncer jest instalowane domyślnie w Azure Database for PostgreSQL.

Aby uzyskać więcej informacji, zobacz następujące artykuły:

Uwierzytelnianie Microsoft Entra

Azure Database for PostgreSQL obsługuje uwierzytelnianie połączeń przy użyciu Microsoft Entra ID. Ta funkcja umożliwia obciążenia aplikacji w środowisku wielodostępnym w celu uwierzytelniania w bazie danych przy użyciu jednostki usługi specyficznej dla dzierżawy lub tożsamości zarządzanej. Dostęp do bazy danych można ograniczyć do konkretnego klienta. Łącząc uwierzytelnianie za pomocą Microsoft Entra ID z zasadami zabezpieczeń wierszy specyficznymi dla dzierżawy, można zmniejszyć ryzyko uzyskania dostępu do danych innej dzierżawy w wielodostępnej bazie danych.

Aby uzyskać więcej informacji, zobacz następujące artykuły:

Poufne przetwarzanie na platformie Azure

Azure Database for PostgreSQL obsługuje poufne przetwarzanie Azure za pośrednictwem zaufanych środowisk wykonywania (TEE), które zapewniają sprzętową ochronę danych w użyciu. Ta funkcja chroni dane dzierżawy przed nieautoryzowanym dostępem przez system operacyjny, funkcję hypervisor lub inne aplikacje.

W przypadku wielodostępnych rozwiązań obsługujących poufne dane, komputeryzacja poufna zapewnia ochronę danych na poziomie sprzętu w trakcie przetwarzania. Korzystanie z przetwarzania poufnego, gdy dzierżawcy mają ścisłe wymagania dotyczące ochrony danych lub wymagania dotyczące zgodności z przepisami lub gdy musisz upewnić się, że dostawca aplikacji nie może uzyskać dostępu do danych dzierżawy.

Aby uzyskać więcej informacji, zobacz Azure Confidential Computing for Azure Database for PostgreSQL.

Szyfrowanie

Dane przechowywane w Azure Database for PostgreSQL są domyślnie szyfrowane w spoczynku przy użyciu kluczy zarządzanych przez Microsoft, ale można również użyć kluczy zarządzanych przez klienta (CMK), aby umożliwić dzierżawcom określanie własnych kluczy szyfrowania.

W przypadku korzystania z kluczy cmKs możesz podać własne klucze szyfrowania przechowywane w usłudze Azure Key Vault. W środowiskach wielodostępnych takie podejście umożliwia używanie różnych kluczy szyfrowania dla różnych dzierżaw, nawet jeśli ich dane są przechowywane na tym samym serwerze bazy danych. Ta funkcja zapewnia również dzierżawcom kontrolę nad własnymi kluczami szyfrowania. Jeśli najemca zdecyduje się dezaktywować swoje konto, usunięcie skojarzonego klucza gwarantuje, że ich dane nie będą już dostępne.

Azure Database for PostgreSQL obsługuje automatyczne aktualizacje wersji kluczy CMK. Ta funkcja automatycznie aktualizuje nowe wersje kluczy po rotacji w usłudze Key Vault i nie wymaga ręcznego zarządzania wersjami kluczy. W środowiskach wielodostępnych, w których zgodność z przepisami wymaga regularnej rotacji kluczy, ta automatyzacja zmniejsza ręczne zadania operacyjne i utrzymuje ochronę danych bez przerw w działaniu usługi.

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główny autor:

Inni współautorzy:

  • John Downs | Główny inżynier oprogramowania, wzorce i praktyki platformy Azure
  • Arsen Vladimirskiy | Główny inżynier klienta, fasttrack dla platformy Azure
  • Paul Burpo | Główny inżynier klienta, FastTrack dla ISV na Azure
  • Assaf Fraenkel | Starszy inżynier/architekt danych, usługa Azure FastTrack dla niezależnych dostawców oprogramowania i start-up

Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.