Aplikacja N-warstwowa systemu Windows w usłudze Azure Stack Hub z SQL Server

Ta architektura referencyjna przedstawia sposób wdrażania maszyn wirtualnych i sieci wirtualnej skonfigurowanej dla aplikacji N-warstwowej przy użyciu SQL Server w systemie Windows dla warstwy danych.

Architektura

Architektura ma następujące składniki.

Na diagramie przedstawiono sieć wirtualną składającą się z sześciu podsieci: Application Gateway, zarządzania, warstwy sieci Web, warstwy biznesowej, warstwy danych i usługi Active Directory. Podsieć warstwy danych używa monitora w chmurze. Istnieją trzy moduły równoważenia obciążenia.

Ogólne

  • Grupa zasobów. Grupy zasobów są używane do grupowania zasobów platformy Azure, aby mogły być zarządzane przez okres istnienia, właściciela lub inne kryteria.

  • Zestaw dostępności. Zestaw dostępności to konfiguracja centrum danych zapewniająca nadmiarowość i dostępność maszyn wirtualnych. Ta konfiguracja w ramach sygnatury usługi Azure Stack Hub gwarantuje, że podczas planowanego lub nieplanowanego zdarzenia konserwacji jest dostępna co najmniej jedna maszyna wirtualna. Maszyny wirtualne są umieszczane w zestawie dostępności, który rozprzestrzenia je w wielu domenach błędów (hosty usługi Azure Stack Hub)

Sieć i równoważenie obciążenia

  • Sieć wirtualna i podsieci. Każda maszyna wirtualna platformy Azure jest wdrażana w sieci wirtualnej, którą można podzielić na podsieci. Utwórz oddzielną podsieć dla każdej warstwy.

  • Warstwa 7 Load Balancer. Ponieważ Application Gateway nie jest jeszcze dostępna w usłudze Azure Stack Hub, dostępne są alternatywy w witrynie Azure Stack Hub Market, takie jak: KEMP LoadMaster Load Balancer ADC Content Switch/ f5 Big-IP Virtual Edition lub A10 vThunder ADC

  • Moduły równoważenia obciążenia. Użyj Azure Load Balancer, aby dystrybuować ruch sieciowy z warstwy internetowej do warstwy biznesowej i z warstwy biznesowej do SQL Server.

  • Sieciowe grupy zabezpieczeń . Użyj sieciowych grup zabezpieczeń, aby ograniczyć ruch sieciowy w sieci wirtualnej. Na przykład w architekturze trójwarstwowej pokazanej tutaj warstwa bazy danych nie akceptuje ruchu z frontonu internetowego, tylko z warstwy biznesowej i podsieci zarządzania.

  • DNS. Usługa Azure Stack Hub nie udostępnia własnej usługi hostingu DNS, dlatego użyj serwera DNS w usłudze ADDS.

Maszyny wirtualne

  • SQL Server zawsze włączoną grupę dostępności. Zapewnia wysoką dostępność w warstwie danych przez włączenie replikacji i trybu failover. Używa technologii klastra trybu failover systemu Windows Server (WSFC) do pracy w trybie failover.

  • Serwery usług Active Directory Domain Services (AD DS). Obiekty komputera dla klastra trybu failover i skojarzone z nim role klastra są tworzone w usłudze Active Directory Domain Services (AD DS). Konfigurowanie serwerów usług AD DS na maszynach wirtualnych w tej samej sieci wirtualnej jest preferowaną metodą dołączania innych maszyn wirtualnych do usług AD DS. Maszyny wirtualne można również dołączyć do istniejących usług AD DS w przedsiębiorstwie, łącząc sieć wirtualną z siecią Enterprise za pomocą połączenia sieci VPN. W obu podejściach należy zmienić nazwę DNS sieci wirtualnej na serwer DNS usług AD DS (w sieci wirtualnej lub istniejącej sieci przedsiębiorstwa), aby rozpoznać nazwę FQDN domeny usług AD DS.

  • Monitor w chmurze. Klaster trybu failover wymaga uruchomienia ponad połowy swoich węzłów, co jest nazywane kworum. Jeśli klaster ma tylko dwa węzły, partycja sieciowa może spowodować, że każdy węzeł uzna, że jest to węzeł płaszczyzny sterowania. W takim przypadku potrzebny jest świadek , aby zerwać więzi i ustanowić kworum. Monitor to zasób, taki jak dysk udostępniony, który może pełnić rolę wyłącznika w celu ustanowienia kworum. Monitor w chmurze to typ monitora, który używa Azure Blob Storage. Aby dowiedzieć się więcej na temat koncepcji kworum, zobacz Omówienie kworum klastra i puli. Aby uzyskać więcej informacji na temat monitora w chmurze, zobacz Wdrażanie monitora w chmurze dla klastra trybu failover. W usłudze Azure Stack Hub punkt końcowy monitora chmury różni się od globalnej platformy Azure.

Może to wyglądać następująco:

  • Dla globalnej platformy Azure:
    https://mywitness.blob.core.windows.net/

  • W przypadku usługi Azure Stack Hub:
    https://mywitness.blob.<region>.<FQDN>

  • Rampa. Nazywana również hostem bastionu. Bezpieczna maszyna wirtualna w sieci, której administratorzy używają do łączenia się z innymi maszynami wirtualnymi. Rampa zawiera sieciową grupę zabezpieczeń, która zezwala na zdalny ruch z publicznych adresów IP znajdujących się na liście bezpiecznych adresów. Sieciowa grupa zabezpieczeń powinna zezwalać na ruch pulpitu zdalnego (RDP).

Zalecenia

Wymagania rzeczywiste mogą różnić się od dotyczących opisanej tu architektury. Potraktuj te zalecenia jako punkt wyjścia.

Maszyny wirtualne

Aby uzyskać zalecenia dotyczące konfigurowania maszyn wirtualnych, zobacz Uruchamianie maszyny wirtualnej z systemem Windows w usłudze Azure Stack Hub.

Sieć wirtualna

Podczas tworzenia sieci wirtualnej określ, ile adresów IP wymaga zasobów w każdej podsieci. Określ maskę podsieci i zakres adresów sieciowych wystarczająco duży dla wymaganych adresów IP przy użyciu notacji CIDR . Użyj przestrzeni adresowej należącej do standardowych bloków prywatnych adresów IP, tj. 10.0.0.0/8, 172.16.0.0/12 i 192.168.0.0/16.

Wybierz zakres adresów, który nie nakłada się na sieć lokalną, na wypadek potrzeby skonfigurowania bramy między siecią wirtualną a siecią lokalną później. Po utworzeniu sieci wirtualnej nie można zmienić zakresu adresów.

Zaprojektuj podsieci, pamiętając o wymaganiach dotyczących funkcjonalność i zabezpieczeń. Wszystkie maszyny wirtualne w tej samej warstwie lub roli powinny należeć do tej samej podsieci, która może być granicą zabezpieczeń. Aby uzyskać więcej informacji na temat projektowania sieci wirtualnych i podsieci, zobacz Planowanie i projektowanie sieci wirtualnych platformy Azure.

Moduły równoważenia obciążenia

Nie uwidaczniaj maszyn wirtualnych bezpośrednio w Internecie, ale zamiast tego nadaj każdej maszynie wirtualnej prywatny adres IP. Klienci łączą się przy użyciu publicznego adresu IP skojarzonego z Load Balancer warstwy 7.

Zdefiniuj reguły modułu równoważenia obciążenia tak, aby ruch sieciowy był przekierowywany bezpośrednio do maszyn wirtualnych. Aby na przykład włączyć ruch HTTP, zamapuj port 80 z konfiguracji frontonu na port 80 w puli adresów zaplecza. Gdy klient wysyła żądanie HTTP do portu 80, moduł równoważenia obciążenia wybiera adres IP zaplecza za pomocą algorytmu wyznaczania wartości skrótu zawierającego źródłowy adres IP. Żądania klientów są dystrybuowane na wszystkich maszynach wirtualnych w puli adresów zaplecza.

Grupy zabezpieczeń sieci

Reguły sieciowej grupy zabezpieczeń służą do ograniczania ruchu między warstwami. W powyższej architekturze trójwarstwowej warstwa internetowa nie komunikuje się bezpośrednio z warstwą bazy danych. Aby wymusić tę regułę, warstwa bazy danych powinna blokować ruch przychodzący z podsieci warstwy internetowej.

  1. Odmów całego ruchu przychodzącego z sieci wirtualnej. (Użyj tagu VIRTUAL_NETWORK w regule).

  2. Zezwalaj na ruch przychodzący z podsieci warstwy biznesowej.

  3. Zezwalaj na ruch przychodzący z samej podsieci warstwy bazy danych. Ta reguła umożliwia komunikację między maszynami wirtualnymi bazy danych, która jest wymagana do replikacji bazy danych i trybu failover.

  4. Zezwalaj na ruch RDP (port 3389) z podsieci serwera przesiadkowego. Ta zasada umożliwia administratorom nawiązywanie połączenia z warstwą bazy danych z poziomu serwera przesiadkowego.

Utwórz reguły 2–4 o wyższym priorytcie niż pierwsza reguła, aby je zastąpić.

Zawsze włączone grupy dostępności programu SQL Server

Zalecamy korzystanie z zawsze włączonych grup dostępności w celu zapewnienia wysokiej dostępności programu SQL Server. W systemach starszych niż Windows Server 2016 zawsze włączone grupy dostępności wymagają kontrolera domeny, a wszystkie węzły w grupie dostępności muszą znajdować się w tej samej domenie usługi AD.

W przypadku wysokiej dostępności warstwy maszyny wirtualnej wszystkie maszyny wirtualne SQL powinny znajdować się w zestawie dostępności.

Innej warstwy łączą się z bazą danych za pośrednictwem odbiornika grupy dostępności. Odbiornik umożliwia klientowi SQL łączenie się bez uprzedniego uzyskania informacji o nazwie fizycznego wystąpienia programu SQL Server. Maszyny wirtualne, które uzyskują dostęp do bazy danych muszą być przyłączone do domeny. Klient (w tym przypadku inna warstwa) używa usługi DNS do rozpoznawania nazwy sieci wirtualnej odbiornika jako adresów IP.

Skonfiguruj zawsze włączone grupy dostępności programu SQL Server w następujący sposób:

  1. Tworzenie klastra usługi Windows Server Failover Clustering (WSFC), zawsze włączonych grup dostępności programu SQL Server i repliki podstawowej. Aby uzyskać więcej informacji, zobacz Getting Started with Always On Availability Groups (Wprowadzenie do zawsze włączonych grup dostępności).

  2. Utwórz wewnętrzny moduł równoważenia obciążenia za pomocą statycznego prywatnego adresu IP.

  3. Utwórz odbiornik grupy dostępności i zamapuj nazwę DNS odbiornika na adres IP wewnętrznego modułu równoważenia obciążenia.

  4. Utwórz regułę modułu równoważenia obciążenia dla portu nasłuchiwania serwera SQL (domyślnie port TCP 1433). Reguła modułu równoważenia obciążenia musi włączać zmienny adres IP, nazywany również bezpośrednim zwrotem z serwera. Powoduje to, że maszyna wirtualna może odpowiadać bezpośrednio klientowi, co umożliwia bezpośrednie połączenie z repliką podstawową.

Uwaga

W przypadku włączenia zmiennego adresu IP numer portu frontonu musi być taki sam jak numer portu zaplecza w regule modułu równoważenia obciążenia.

Kiedy klient SQL próbuje nawiązać połączenie, moduł równoważenia obciążenia kieruje żądanie połączenia do repliki podstawowej. Jeśli istnieje tryb failover do innej repliki, moduł równoważenia obciążenia automatycznie kieruje nowe żądania do nowej repliki podstawowej. Aby uzyskać więcej informacji, zobacz Konfigurowanie odbiornika ILB dla zawsze włączonych grup dostępności programu SQL Server.

Podczas pracy w trybie failover istniejące połączenia klienta są zamknięte. Po zakończeniu pracy w trybie failover nowe połączenia będą kierowane do nowej repliki podstawowej.

Jeśli aplikacja wykonuje więcej operacji odczytu niż zapisy, można odciążyć niektóre zapytania tylko do odczytu do repliki pomocniczej. Zobacz Using a Listener to Connect to a Read-Only Secondary Replica (Read-Only Routing) (Używanie odbiornika do łączenia się z repliką pomocniczą tylko do odczytu (routing tylko do odczytu)).

Przetestuj wdrożenie, wymuszając ręczne przełączanie w tryb failover grupy dostępności.

Aby uzyskać informacje na temat optymalizacji wydajności sql, zapoznaj się również z artykułem SQL Server best practices to optimize performance in Azure Stack Hub (Najlepsze rozwiązania dotyczące programu SQL Server w celu optymalizacji wydajności w usłudze Azure Stack Hub).

Serwer przesiadkowy

Nie zezwalaj na dostęp RDP z publicznego Internetu do maszyn wirtualnych, na których jest uruchamiane obciążenie aplikacji. Zamiast tego cały dostęp RDP do tych maszyn wirtualnych powinien przechodzić przez serwer przesiadkowy. Administratorzy logują się do serwera przesiadkowego, a następnie logują się do innej maszyny wirtualnej z poziomu serwera przesiadkowego. Serwer przesiadkowy zezwala na ruch RDP z Internetu, ale tylko ze znanych, bezpiecznych adresów IP.

Serwer przesiadkowy ma minimalne wymagania dotyczące wydajności, dlatego wybierz mały rozmiar maszyny wirtualnej. Utwórz publiczny adres IP dla serwera przesiadkowego. Umieść serwer przesiadkowy w tej samej sieci wirtualnej co inne maszyny wirtualne, ale w oddzielnej podsieci zarządzania.

Aby zabezpieczyć serwer przesiadkowy, dodaj regułę sieciowej grupy zabezpieczeń, która zezwala na połączenia RDP tylko z bezpiecznego zestawu publicznych adresów IP. Skonfiguruj sieciowe grupy zabezpieczeń dla innych podsieci, aby zezwolić na ruch RDP z podsieci zarządzania.

Zagadnienia dotyczące skalowalności

Zestawy skalowania

W przypadku warstw internetowych i biznesowych rozważ użycie zestawów skalowania maszyn wirtualnych zamiast wdrażania oddzielnych maszyn wirtualnych. Zestaw skalowania ułatwia wdrażanie zestawu identycznych maszyn wirtualnych i zarządzanie nimi. Rozważ zestawy skalowania, jeśli chcesz szybko skalować maszyny wirtualne w poziomie.

Istnieją dwa podstawowe sposoby konfigurowania maszyn wirtualnych wdrożonych w zestawie skalowania:

  • Użyj rozszerzeń, aby skonfigurować maszynę wirtualną po jej wdrożeniu. W tej metodzie uruchomienie nowych wystąpień maszyny wirtualnej może potrwać dłużej niż w przypadku maszyny wirtualnej bez rozszerzeń.

  • Wdróż dysk zarządzany przy użyciu niestandardowego obrazu dysku. Ta opcja może być szybsza do wdrożenia. Jednak wymaga to zachowania aktualności obrazu.

Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące projektowania zestawów skalowania. Ta kwestia projektowania dotyczy głównie usługi Azure Stack Hub, jednak istnieją pewne zastrzeżenia:

  • Zestawy skalowania maszyn wirtualnych w usłudze Azure Stack Hub nie obsługują nadmiernych aprowizacji ani uaktualnień stopniowych.

  • Nie można automatycznie skalować zestawów skalowania maszyn wirtualnych w usłudze Azure Stack Hub.

  • Zdecydowanie zalecamy używanie dysków zarządzanych w usłudze Azure Stack Hub zamiast dysków niezarządzanych dla zestawu skalowania maszyn wirtualnych

  • Obecnie istnieje limit 700 maszyn wirtualnych w usłudze Azure Stack Hub, który obejmuje wszystkie maszyny wirtualne infrastruktury usługi Azure Stack Hub, poszczególne maszyny wirtualne i wystąpienia zestawu skalowania.

Limity subskrypcji

Każda subskrypcja dzierżawy usługi Azure Stack Hub ma domyślne limity, w tym maksymalną liczbę maszyn wirtualnych na region skonfigurowany przez operatora usługi Azure Stack Hub. Aby uzyskać więcej informacji, zobacz Azure Stack Hub services, plans, offers, subscriptions overview (Omówienie usług, planów, ofert i subskrypcji). Zapoznaj się również z typami limitów przydziału w usłudze Azure Stack Hub.

Zagadnienia dotyczące bezpieczeństwa

Sieci wirtualne stanowią granicę izolacji ruchu na platformie Azure. Domyślnie maszyny wirtualne w jednej sieci wirtualnej nie mogą komunikować się bezpośrednio z maszynami wirtualnymi w innej sieci wirtualnej.

Sieciowe grupy zabezpieczeń. Użyj sieciowych grup zabezpieczeń , aby ograniczyć ruch do i z Internetu. Aby uzyskać więcej informacji, zobacz Zabezpieczenia usług w chmurze i sieci firmy Microsoft.

STREFA DMZ. Rozważ dodanie wirtualnego urządzenia sieciowego (WUS) w celu utworzenia strefy DMZ między Internetem a siecią wirtualną platformy Azure. Urządzenie WUS to ogólny termin określający urządzenie wirtualne, które może wykonywać zadania związane z siecią, takie jak zapora, inspekcja pakietów, inspekcja i niestandardowy routing.

Szyfrowanie. Szyfrowanie poufnych danych magazynowanych i używanie Key Vault w usłudze Azure Stack Hub do zarządzania kluczami szyfrowania bazy danych. Aby uzyskać więcej informacji, zobacz Configure Azure Key Vault Integration for SQL Server on Azure VMs (Konfigurowanie integracji usługi Azure Key Vault dla programu SQL Server na maszynach wirtualnych Azure). Zaleca się również przechowywanie wpisów tajnych aplikacji, takich jak parametry połączenia bazy danych, w Key Vault.

Następne kroki