Windows N-nivåprogram på Azure Stack Hub med SQL Server

Den här referensarkitekturen visar hur du distribuerar virtuella datorer och ett virtuellt nätverk som konfigurerats för ett N-nivåprogram med hjälp av SQL Server på Windows för datanivån.

Arkitektur

Arkitekturen har följande komponenter:

The diagram shows a virtual network comprising six subnets: Application Gateway, Management, Web tier, Business tier, Data tier, and Active Directory. The Data tier subnet uses Cloud Witness. There are three load balancers.

Allmänt

  • Resursgrupp. Resursgrupper används för att gruppera Azure-resurser så att de kan hanteras efter livslängd, ägare eller andra kriterier.

  • Tillgänglighetsuppsättning. Tillgänglighetsuppsättningen är en datacenterkonfiguration som ger redundans och tillgänglighet för virtuella datorer. Den här konfigurationen i en Azure Stack Hub-stämpel säkerställer att minst en virtuell dator är tillgänglig under antingen en planerad eller oplanerad underhållshändelse. Virtuella datorer placeras i en tillgänglighetsuppsättning som sprider dem över flera feldomäner (Azure Stack Hub-värdar)

Nätverks- och belastningsutjämning

  • Virtuellt nätverk och undernät. Varje virtuell Azure-dator distribueras till ett virtuellt nätverk som kan segmenteras i undernät. Skapa ett separat undernät för varje nivå.

  • Lager 7 Load Balancer. Eftersom Application Gateway ännu inte är tillgängligt på Azure Stack Hub finns det alternativ på Azure Stack Hub Market-platsen, till exempel: KEMP LoadMaster Load Balancer ADC Content Switch/ f5 Big-IP Virtual Edition eller A10 vThunder ADC

  • Lastbalanserare. Använd Azure Load Balancer för att distribuera nätverkstrafik från webbnivån till affärsnivån och från affärsnivån till SQL Server.

  • Nätverkssäkerhetsgrupper (NSG:er). Använd NSG:er för att begränsa nätverkstrafiken i det virtuella nätverket. I arkitekturen med tre nivåer som visas här accepterar databasnivån till exempel inte trafik från webbklientdelen, bara från affärsnivån och hanteringsundernätet.

  • DNS. Azure Stack Hub tillhandahåller inte någon egen DNS-värdtjänst, så använd DNS-servern i ADDS.

Virtuella datorer

  • SQL Server AlwaysOn-tillgänglighetsgrupp. Ger hög tillgänglighet på datanivån, genom att aktivera replikering och redundans. Den använder Windows WSFC-teknik (Server Failover Cluster) för redundans.

  • Active Directory Domain Services-servrar (AD DS-servrar). Datorobjekten för redundansklustret och dess associerade klustrade roller skapas i Active Directory Domain Services (AD DS). Konfigurera AD DS-servrar i virtuella datorer i samma virtuella nätverk är att föredra för att ansluta andra virtuella datorer till AD DS. Du kan också ansluta de virtuella datorerna till befintlig Enterprise AD DS genom att ansluta virtuella nätverk till Enterprise-nätverk med VPN-anslutning. Med båda metoderna måste du ändra det virtuella nätverkets DNS till DIN AD DS DNS-server (i virtuellt nätverk eller befintligt Enterprise-nätverk) för att matcha AD DS-domänens FQDN.

  • Molnvittne. Ett redundanskluster kräver att mer än hälften av noderna körs, vilket kallas kvorum. Om klustret bara har två noder kan en nätverkspartition få varje nod att tro att det är kontrollplanets nod. I så fall behöver du ett vittne för att bryta banden och upprätta kvorum. Ett vittne är en resurs, till exempel en delad disk som kan fungera som en kopplingsbrytare för att upprätta kvorum. Molnvittne är en typ av vittne som använder Azure Blob Storage. Mer information om begreppet kvorum finns i Förstå kluster- och poolkvorum. Mer information om molnvittne finns i Distribuera ett molnvittne för ett redundanskluster. I Azure Stack Hub skiljer sig molnvittnets slutpunkt från globala Azure.

Det kan se ut så här:

  • För global Azure:
    https://mywitness.blob.core.windows.net/

  • För Azure Stack Hub:
    https://mywitness.blob.<region>.<FQDN>

  • Jumpbox. Kallas även för en skyddsmiljö-värd. En säker virtuell dator i nätverket som administratörer använder för att ansluta till andra virtuella datorer. Jumpboxen har en NSG som endast tillåter fjärrtrafik från offentliga IP-adresser på en säker lista. NSG: ska tillåta trafik för fjärrskrivbord (RDP).

Rekommendationer

Dina krav kan vara annorlunda från den arkitektur som beskrivs här. Använd de här rekommendationerna som utgångspunkt.

Virtuella datorer

Rekommendationer om hur du konfigurerar de virtuella datorerna finns i Köra en Windows virtuell dator på Azure Stack Hub.

Virtuellt nätverk

När du skapar det virtuella nätverket avgör du hur många IP-adresser dina resurser i varje undernät kräver. Ange en nätmask och ett nätverksadressintervall som är tillräckligt stort för de IP-adresser som krävs med CIDR-notation . Använd ett adressutrymme som ligger inom standarden för privata IP-adressblock, som är 10.0.0.0/8, 172.16.0.0/12 och 192.168.0.0/16.

Välj ett adressintervall som inte överlappar ditt lokala nätverk, om du behöver konfigurera en gateway mellan det virtuella nätverket och ditt lokala nätverk senare. När du har skapat det virtuella nätverket kan du inte ändra adressintervallet.

Utforma undernät och ha både funktionalitet och säkerhetskrav i åtanke. Alla virtuella datorer inom samma nivå eller roll bör ingå i samma undernät, vilket kan vara en säkerhetsgräns. Mer information om hur du utformar virtuella nätverk och undernät finns i Planera och utforma virtuella Azure-nätverk.

Lastbalanserare

Exponera inte de virtuella datorerna direkt till Internet, utan ge i stället varje virtuell dator en privat IP-adress. Klienter ansluter med den offentliga IP-adress som är associerad med Layer 7-Load Balancer.

Definiera regler för lastbalanseraren för att dirigera nätverkstrafik till de virtuella datorerna. Om du till exempel vill aktivera HTTP-trafik mappar du port 80 från klientdelskonfigurationen till port 80 i serverdelsadresspoolen. När en klient skickar en HTTP-begäran till port 80 väljer lastbalanseraren en serverdels-IP-adress med hjälp av en hash-algoritm som innehåller källans IP-adress. Klientbegäranden distribueras över alla virtuella datorer i serverdelsadresspoolen.

Nätverkssäkerhetsgrupper

Använd NSG-regler för att begränsa trafiken mellan nivåer. I arkitekturen med tre nivåer som visas ovan kommunicerar inte webbnivån direkt med databasnivån. För att framtvinga den här regeln bör databasnivån blockera inkommande trafik från undernätet på webbnivån.

  1. Neka all inkommande trafik från det virtuella nätverket. (Använd taggen VIRTUAL_NETWORK i regeln.)

  2. Tillåt inkommande trafik från undernätet på affärsnivå.

  3. Tillåt inkommande trafik från själva undernätet på databasnivån. Den här regeln tillåter kommunikation mellan de virtuella databasdatorerna, vilket krävs för databasreplikering och redundans.

  4. Tillåt RDP-trafik (port 3389) från jumpbox-undernätet. Den här regeln låter administratörer ansluta till databasnivån från jumpbox.

Skapa regler 2–4 med högre prioritet än den första regeln, så att de åsidosätter den.

SQL Server Always On-tillgänglighetsgrupper

Vi rekommenderar Always On-tillgänglighetsgrupper för SQL Server med hög tillgänglighet. Före Windows Server 2016 kräver Always On-tillgänglighetsgrupper en domänkontrollant, och alla noder i tillgänglighetsgruppen måste ingå i samma AD-domän.

För hög tillgänglighet för vm-lager bör alla SQL virtuella datorer finnas i en tillgänglighetsuppsättning.

Andra nivåer ansluts till databasen via en lyssningsfunktion för tillgänglighetsgrupp. Genom lyssningsfunktionen kan en SQL-klient ansluta utan att känna till namnet på den fysiska instansen av SQL-servern. Virtuella datorer med åtkomst till databasen måste vara anslutna till domänen. Klienten (i det här fallet en annan nivå) använder DNS för att omvandla namnet på lyssningsfunktionens virtuella nätverk till IP-adresser.

Konfigurera SQL Server Always On-tillgänglighetsgruppen på följande sätt:

  1. Skapa ett WSFC-kluster (Windows Server Failover Clustering), en SQL Server Always On-tillgänglighetsgrupp och en primär replik. Mer information finns i Komma igång med SQL Server Always On-tillgänglighetsgrupper.

  2. Skapa en intern lastbalanserare med en statisk, privat IP-adress.

  3. Skapa en lyssningsfunktion för tillgänglighetsgrupp och mappa lyssningsfunktionens DNS-namn till IP-adressen för en intern lastbalanserare.

  4. Skapa en lastbalanseringsregel för SQL Server-lyssningsporten (TCP-port 1433 som standard). Lastbalanseringsregeln måste aktivera flytande IP, även kallat direkt serverreturnering. Det här gör att den virtuella datorn svarar direkt på klienten, vilket möjliggör en direkt anslutning till den primära repliken.

Anteckning

När flytande IP är aktiverat måste portnumret för klientdelen vara samma som backend-portnumret i lastbalanseringsregeln.

När en SQL-klient försöker ansluta dirigerar lastbalanseraren anslutningsbegäran till den primära repliken. Om det sker en redundansväxling till en annan replik dirigerar lastbalanseraren automatiskt nya begäranden till en ny primär replik. Mer information finns i Konfigurera en ILB-lyssnare för SQL Server AlwaysOn-tillgänglighetsgrupper.

Befintliga klientanslutningar stängs under en redundansväxling. När redundansväxlingen är klar vidarebefordras nya anslutningar till den nya primära repliken.

Om ditt program gör fler läsningar än skrivningar kan du avlasta några av de skrivskyddade frågorna till en sekundär replik. Se Ansluta till en skrivskyddad sekundär replik (skrivskyddad routning) med en lyssnare.

Testa distributionen genom att framtvinga en manuell redundansväxling av tillgänglighetsgruppen.

För SQL prestandaoptimering kan du även läsa artikeln SQL bästa praxis för server för att optimera prestanda i Azure Stack Hub.

Jumpbox

Tillåt inte RDP-åtkomst från det offentliga Internet till de virtuella datorer som kör programarbetsbelastningen. I stället bör all RDP-åtkomst till dessa virtuella datorer gå igenom jumpboxen. En administratör loggar in på jumpbox som sedan loggar in på den andra virtuella datorn från jumpbox. Jumpbox tillåter RDP-trafik från Internet, men endast från kända, säkra IP-adresser.

Jumpboxen har minimala prestandakrav, så välj en liten VM-storlek. Skapa en offentlig IP-adress för jumpbox. Placera jumpboxen i samma virtuella nätverk som de andra virtuella datorerna, men i ett separat hanteringsundernät.

För att skydda jumpboxen lägger du till en NSG-regel som endast tillåter RDP-anslutningar från en säker uppsättning offentliga IP-adresser. Konfigurera NSG:er för andra undernät så att RDP-trafik från hanteringsundernätet tillåts.

Skalbarhetsöverväganden

Skalningsuppsättningar

Överväg att använda VM-skalningsuppsättningar i stället för att distribuera separata virtuella datorer för webb- och affärsnivåer. En skalningsuppsättning gör det enkelt att distribuera och hantera en uppsättning identiska virtuella datorer. Överväg skalningsuppsättningar om du snabbt behöver skala ut virtuella datorer.

Det finns två grundläggande sätt att konfigurera virtuella datorer som har distribueras i en skalningsuppsättning:

  • Använd tillägg för att konfigurera den virtuella datorn när den har distribuerats. Nya VM-instanser kan ta längre tid att starta än en virtuell dator utan tillägg med den här metoden.

  • Distribuera en hanterad disk med en anpassad diskavbildning. Det här alternativet kan gå snabbare att distribuera. Det kräver dock att du håller avbildningen uppdaterad.

Mer information finns i Designöverväganden för skalningsuppsättningar. Den här designöverväganden gäller främst för Azure Stack Hub, men det finns några varningar:

  • Vm-skalningsuppsättningar på Azure Stack Hub stöder inte överetablering eller löpande uppgraderingar.

  • Du kan inte autoskala VM-skalningsuppsättningar på Azure Stack Hub.

  • Vi rekommenderar starkt att du använder hanterade diskar på Azure Stack Hub i stället för ohanterade diskar för VM-skalningsuppsättningar

  • För närvarande finns det en gräns på 700 virtuella datorer på Azure Stack Hub, som står för alla virtuella Datorer i Azure Stack Hub-infrastrukturen, enskilda virtuella datorer och skalningsuppsättningsinstanser.

Prenumerationsgränser

Varje Azure Stack Hub-klientprenumeration har standardgränser, inklusive ett maximalt antal virtuella datorer per region som konfigurerats av Azure Stack Hub-operatören. Mer information finns i Översikt över Azure Stack Hub-tjänster, planer, erbjudanden och prenumerationer. Se även Kvottyper i Azure Stack Hub.

Säkerhetsöverväganden

Virtuella nätverk utgör en gräns för isolering av trafik i Azure. Som standard kan virtuella datorer i ett virtuellt nätverk inte kommunicera direkt med virtuella datorer i ett annat virtuellt nätverk.

NSG:er. Använd nätverkssäkerhetsgrupper (NSG:er) för att begränsa trafik till och från Internet. Mer information finns i Microsofts molntjänster och nätverkssäkerhet.

DMZ. Överväg att lägga till en virtuell nätverksinstallation (NVA) för att skapa en DMZ mellan det offentliga Internet och det virtuella Azure-nätverket. NVA är ett allmänt begrepp för en virtuell installation som kan utföra nätverksrelaterade uppgifter, till exempel för brandväggen, paketinspektion, granskning och anpassad routning.

Kryptering. Kryptera känsliga data i vila och använd Key Vault i Azure Stack Hub för att hantera databaskrypteringsnycklarna. Mer information finns i Konfigurera Azure Key Vault-integrering för SQL Server på Azure Virtual Machines. Vi rekommenderar också att du lagrar programhemligheter, till exempel databasanslutningssträngar, i Key Vault.

Nästa steg