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 i Windows för datanivån.
Arkitektur
Arkitekturen har följande komponenter:
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 inom 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ätverk 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å.
Layer 7 Load Balancer. Eftersom Application Gateway ännu inte är tillgängligt på Azure Stack Hub finns det alternativ på Azure Stack Hub Market Place, 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, endast 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 WSFC-teknik (Windows 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 det virtuella nätverket till företagsnätverket 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 företagsnätverk) för att matcha AD DS-domänens FQDN.
Molnvittne. Ett redundanskluster kräver att mer än hälften av dess noder körs, vilket kallas kvorum. Om klustret bara har två noder kan en nätverkspartition få varje nod att tro att det är kontrollplansnoden. 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 molnvittnesslutpunkten från globala Azure.
Det kan se ut så här:
För globala 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 virtuell Windows-dator på Azure Stack Hub.
Virtuellt nätverk
När du skapar det virtuella nätverket ska du bestämma hur många IP-adresser som 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 hjälp av 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 med 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 hjälp av 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.
Neka all inkommande trafik från det virtuella nätverket. (Använd taggen VIRTUAL_NETWORK i regeln.)
Tillåt inkommande trafik från undernätet på affärsnivå.
Tillåt inkommande trafik från själva undernätet på databasnivå. Den här regeln tillåter kommunikation mellan de virtuella databasdatorerna, vilket krävs för databasreplikering och redundans.
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 virtuella SQL-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:
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.
Skapa en intern lastbalanserare med en statisk, privat IP-adress.
Skapa en lyssningsfunktion för tillgänglighetsgrupp och mappa lyssningsfunktionens DNS-namn till IP-adressen för en intern lastbalanserare.
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 programmet 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 optimering av SQL-prestanda kan du även läsa artikeln om metodtips för SQL 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.
Jumpbox 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
För webb- och affärsnivåer bör du överväga att använda VM-skalningsuppsättningar i stället för att distribuera separata virtuella datorer. 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. Det här designövervägandet gäller främst för Azure Stack Hub, men det finns vissa förbehåll:
Vm-skalningsuppsättningar på Azure Stack Hub stöder inte överetablering eller löpande uppgraderingar.
Du kan inte skala vm-skalningsuppsättningar automatiskt 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
- Mer information om Azure Cloud Patterns finns i Molndesignmönster.