Windows N-Tier-program på Azure Stack hubb med SQL ServerWindows N-tier application on Azure Stack Hub with SQL Server

Den här referens arkitekturen visar hur du distribuerar virtuella datorer (VM) och ett virtuellt nätverk som har kon figurer ATS för ett N-Nivåprogram med hjälp av SQL Server i Windows för data nivån.This reference architecture shows how to deploy virtual machines (VMs) and a virtual network configured for an N-tier application, using SQL Server on Windows for the data tier.

ArkitekturArchitecture

Arkitekturen har följande komponenter:The architecture has the following components.

Diagrammet visar ett virtuellt nätverk som består av sex undernät: Application Gateway, hantering, webb nivå, affärs nivå, datanivå och Active Directory.

AllmäntGeneral

  • Resursgrupp.Resource group. Resurs grupper används för att gruppera Azure-resurser så att de kan hanteras efter livs längd, ägare eller andra kriterier.Resource groups are used to group Azure resources so they can be managed by lifetime, owner, or other criteria.

  • Tillgänglighets uppsättning.Availability Set. Tillgänglighets uppsättningen är en data Center konfiguration som ger VM-redundans och tillgänglighet.Availability set is a datacenter configuration to provide VM redundancy and availability. Den här konfigurationen inom en Azure Stack hubb garanterar att minst en virtuell dator är tillgänglig under en planerad eller oplanerad underhålls händelse.This configuration within an Azure Stack Hub stamp ensures that during either a planned or unplanned maintenance event, at least one virtual machine is available. Virtuella datorer placeras i en tillgänglighets uppsättning som sprider dem över flera fel domäner (Azure Stack Hubbs värdar)VMs are placed in an availability set that spreads them across multiple fault domains (Azure Stack Hub hosts)

Nätverk och belastnings utjämningNetworking and load balancing

  • Virtuellt nätverk och undernät.Virtual network and subnets. Varje virtuell Azure-dator distribueras till ett virtuellt nätverk som kan segmenteras i undernät.Every Azure VM is deployed into a virtual network that can be segmented into subnets. Skapa ett separat undernät för varje nivå.Create a separate subnet for each tier.

  • Layer 7-Load Balancer.Layer 7 Load Balancer. Eftersom Application Gateway ännu inte är tillgängligt på Azure Stack Hub finns det alternativ som är tillgängliga på Azure Stack hubb marknad , till exempel: Kemp: LoadMaster Load Balancer ADC Content switch / F5 stor IP Virtual Edition eller A10 vThunder ADCAs Application Gateway is not yet available on Azure Stack Hub, there are alternatives available on Azure Stack Hub Market place such as: KEMP LoadMaster Load Balancer ADC Content Switch/ f5 Big-IP Virtual Edition or A10 vThunder ADC

  • Belastnings utjämning.Load balancers. Använd Azure Load Balancer för att distribuera nätverks trafik från webb nivån till affärs nivå och från affärs nivån till SQL Server.Use Azure Load Balancer to distribute network traffic from the web tier to the business tier, and from the business tier to SQL Server.

  • Nätverks säkerhets grupper (NSG: er).Network security groups (NSGs). Använd NSG: er för att begränsa nätverks trafiken inom det virtuella nätverket.Use NSGs to restrict network traffic within the virtual network. I den tre-nivå arkitektur som visas här accepterar till exempel inte databas nivån trafik från Front webb sidan, bara från affärs nivån och hanterings under nätet.For example, in the three-tier architecture shown here, the database tier does not accept traffic from the web front end, only from the business tier and the management subnet.

  • DNS.DNS. Azure Stack Hub tillhandahåller inte en egen DNS-värd tjänst, så Använd DNS-servern i tillägg.Azure Stack Hub does not provide its own DNS hosting service, so please use the DNS server in your ADDS.

Virtuella datorerVirtual machines

  • SQL Server Always on-tillgänglighetsgrupper.SQL Server Always On Availability Group. Ger hög tillgänglighet på datanivån, genom att aktivera replikering och redundans.Provides high availability at the data tier, by enabling replication and failover. Den använder WSFC-teknik (Windows Server failover Cluster) för redundans.It uses Windows Server Failover Cluster (WSFC) technology for failover.

  • Active Directory Domain Services-servrar (AD DS-servrar).Active Directory Domain Services (AD DS) Servers. Dator objekt för redundansklustret och tillhör ande klustrade roller skapas i Active Directory Domain Services (AD DS).The computer objects for the failover cluster and its associated clustered roles are created in Active Directory Domain Services (AD DS). Konfigurera AD DS-servrar i virtuella datorer i samma virtuella nätverk är önskade metoder för att ansluta andra virtuella datorer till AD DS.Set up AD DS servers in VMs in the same virtual network are preferred method to join other VMs to AD DS. Du kan också ansluta de virtuella datorerna till en befintlig Enterprise AD DS genom att ansluta ett virtuellt nätverk till företags nätverket med VPN-anslutning.You can also join the VMs to existing Enterprise AD DS by connecting virtual network to Enterprise network with VPN connection. Med båda metoderna måste du ändra det virtuella nätverkets DNS till din AD DS DNS-server (i virtuellt nätverk eller i ett befintligt företags nätverk) för att lösa AD DS-domänens FQDN.With both approaches, you need to change the virtual network DNS to your AD DS DNS server (in virtual network or existing Enterprise network) to resolve the AD DS domain FQDN.

  • Moln vittne.Cloud Witness. Ett redundanskluster kräver mer än hälften av noderna som ska köras, vilket kallas för kvorum.A failover cluster requires more than half of its nodes to be running, which is known as having quorum. Om klustret bara har två noder kan en nätverks partition orsaka att varje nod ser att den är huvud-noden.If the cluster has just two nodes, a network partition could cause each node to think it's the master node. I så fall behöver du ett vittne för att ta bort band och upprätta kvorum.In that case, you need a witness to break ties and establish quorum. Ett vittne är en resurs som en delad disk som kan fungera som en ansvars brytare för att upprätta kvorum.A witness is a resource such as a shared disk that can act as a tie breaker to establish quorum. Moln vittne är en typ av vittne som använder Azure Blob Storage.Cloud Witness is a type of witness that uses Azure Blob Storage. Om du vill veta mer om begreppet kvorum, se förstå kvorum för kluster och pooler.To learn more about the concept of quorum, see Understanding cluster and pool quorum. Mer information om moln vittne finns i distribuera ett moln vittne för ett redundanskluster.For more information about Cloud Witness, see Deploy a Cloud Witness for a Failover Cluster. I Azure Stack hubb skiljer moln vittnes slut punkten från Global Azure.In Azure Stack Hub, the Cloud Witness endpoint is different from global Azure.

Det kan se ut så här:It may look like:

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

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

  • Jumpbox.Jumpbox. Kallas även för en skyddsmiljö-värd.Also called a bastion host. En säker virtuell dator i nätverket som administratörer använder för att ansluta till andra virtuella datorer.A secure VM on the network that administrators use to connect to the other VMs. Jumpboxen har en NSG som endast tillåter fjärrtrafik från offentliga IP-adresser på en säker lista.The jumpbox has an NSG that allows remote traffic only from public IP addresses on a safe list. NSG: ska tillåta trafik för fjärrskrivbord (RDP).The NSG should permit remote desktop (RDP) traffic.

RekommendationerRecommendations

Dina krav kan vara annorlunda från den arkitektur som beskrivs här.Your requirements might differ from the architecture described here. Använd de här rekommendationerna som utgångspunkt.Use these recommendations as a starting point.

Virtuella datorerVirtual machines

Rekommendationer om hur du konfigurerar de virtuella datorerna finns i köra en virtuell Windows-dator på Azure Stack Hub.For recommendations on configuring the VMs, see Run a Windows VM on Azure Stack Hub.

Virtuellt nätverkVirtual network

När du skapar det virtuella nätverket bör du ta reda på hur många IP-adresser som resurserna i varje undernät kräver.When you create the virtual network, determine how many IP addresses your resources in each subnet require. Ange en nätmask och ett nätverks adress intervall som är tillräckligt stort för de IP-adresser som krävs, med CIDR -notering.Specify a subnet mask and a network address range large enough for the required IP addresses, using 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.Use an address space that falls within the standard private IP address blocks, which are 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16.

Välj ett adress intervall 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.Choose an address range that does not overlap with your on-premises network, in case you need to set up a gateway between the virtual network and your on-premises network later. När du har skapat det virtuella nätverket kan du inte ändra adress intervallet.Once you create the virtual network, you can't change the address range.

Utforma undernät och ha både funktionalitet och säkerhetskrav i åtanke.Design subnets with functionality and security requirements in mind. Alla virtuella datorer inom samma nivå eller roll bör ingå i samma undernät, vilket kan vara en säkerhetsgräns.All VMs within the same tier or role should go into the same subnet, which can be a security boundary. Mer information om hur du utformar virtuella nätverk och undernät finns i planera och utforma virtuella Azure-nätverk.For more information about designing virtual networks and subnets, see Plan and design Azure Virtual Networks.

LastbalanserareLoad balancers

Exponera inte de virtuella datorerna direkt på Internet, utan i stället ger varje virtuell dator en privat IP-adress.Don't expose the VMs directly to the Internet, but instead give each VM a private IP address. Klienter ansluter med hjälp av den offentliga IP-adress som är kopplad till Layer 7-Load Balancer.Clients connect using the public IP address associated with the Layer 7 Load Balancer.

Definiera regler för lastbalanseraren för att dirigera nätverkstrafik till de virtuella datorerna.Define load balancer rules to direct network traffic to the VMs. Om du till exempel vill aktivera HTTP-trafik, mappa port 80 från klient delens konfiguration till port 80 på backend-adresspoolen.For example, to enable HTTP traffic, map port 80 from the front-end configuration to port 80 on the back-end address pool. 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.When a client sends an HTTP request to port 80, the load balancer selects a back-end IP address by using a hashing algorithm that includes the source IP address. Klient begär Anden distribueras över alla virtuella datorer i backend-adresspoolen.Client requests are distributed across all the VMs in the back-end address pool.

NätverkssäkerhetsgrupperNetwork security groups

Använd NSG-regler för att begränsa trafiken mellan nivåer.Use NSG rules to restrict traffic between tiers. På den tre nivå arkitektur som visas ovan kommunicerar inte webb nivån direkt med databas nivån.In the three-tier architecture shown above, the web tier does not communicate directly with the database tier. För att genomdriva denna regel ska databas nivån blockera inkommande trafik från webb nivå under nätet.To enforce this rule, the database tier should block incoming traffic from the web tier subnet.

  1. Neka all inkommande trafik från det virtuella nätverket.Deny all inbound traffic from the virtual network. (Använd VIRTUAL_NETWORK-taggen i regeln.)(Use the VIRTUAL_NETWORK tag in the rule.)

  2. Tillåt inkommande trafik från under nätet för affärs nivå.Allow inbound traffic from the business tier subnet.

  3. Tillåt inkommande trafik från själva under nätet för databas nivån.Allow inbound traffic from the database tier subnet itself. Den här regeln tillåter kommunikation mellan de virtuella databas datorerna, vilket krävs för databasreplikering och redundans.This rule allows communication between the database VMs, which is needed for database replication and failover.

  4. Tillåt RDP-trafik (port 3389) från hopp under nätet.Allow RDP traffic (port 3389) from the jumpbox subnet. Den här regeln låter administratörer ansluta till databasnivån från jumpbox.This rule lets administrators connect to the database tier from the jumpbox.

Skapa regler 2 – 4 med högre prioritet än den första regeln, så att de åsidosätter den.Create rules 2 – 4 with higher priority than the first rule, so they override it.

SQL Server Always On-tillgänglighetsgrupperSQL Server Always On Availability Groups

Vi rekommenderar Always On-tillgänglighetsgrupper för SQL Server med hög tillgänglighet.We recommend Always On Availability Groups for SQL Server high availability. 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.Prior to Windows Server 2016, Always On Availability Groups require a domain controller, and all nodes in the availability group must be in the same AD domain.

Alla virtuella SQL-datorer bör vara i en tillgänglighets uppsättning för VM-lagret hög tillgänglighet.For VM layer high availability, all SQL VMs should be in an Availability Set.

Andra nivåer ansluts till databasen via en lyssningsfunktion för tillgänglighetsgrupp.Other tiers connect to the database through an availability group listener. Genom lyssningsfunktionen kan en SQL-klient ansluta utan att känna till namnet på den fysiska instansen av SQL-servern.The listener enables a SQL client to connect without knowing the name of the physical instance of SQL Server. Virtuella datorer med åtkomst till databasen måste vara anslutna till domänen.VMs that access the database must be joined to the domain. 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.The client (in this case, another tier) uses DNS to resolve the listener's virtual network name into IP addresses.

Konfigurera SQL Server Always On-tillgänglighetsgruppen på följande sätt:Configure the SQL Server Always On Availability Group as follows:

  1. Skapa ett WSFC-kluster (Windows Server Failover Clustering), en SQL Server Always On-tillgänglighetsgrupp och en primär replik.Create a Windows Server Failover Clustering (WSFC) cluster, a SQL Server Always On Availability Group, and a primary replica. Mer information finns i Komma igång med SQL Server Always On-tillgänglighetsgrupper.For more information, see Getting Started with Always On Availability Groups.

  2. Skapa en intern lastbalanserare med en statisk, privat IP-adress.Create an internal load balancer with a static private IP address.

  3. Skapa en lyssningsfunktion för tillgänglighetsgrupp och mappa lyssningsfunktionens DNS-namn till IP-adressen för en intern lastbalanserare.Create an availability group listener, and map the listener's DNS name to the IP address of an internal load balancer.

  4. Skapa en lastbalanseringsregel för SQL Server-lyssningsporten (TCP-port 1433 som standard).Create a load balancer rule for the SQL Server listening port (TCP port 1433 by default). Lastbalanseringsregeln måste aktivera flytande IP, även kallat direkt serverreturnering.The load balancer rule must enable floating IP, also called Direct Server Return. 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.This causes the VM to reply directly to the client, which enables a direct connection to the primary replica.

Anteckning

När flytande IP är aktiverat måste portnumret för klientdelen vara samma som backend-portnumret i lastbalanseringsregeln.When floating IP is enabled, the front-end port number must be the same as the back-end port number in the load balancer rule.

När en SQL-klient försöker ansluta dirigerar lastbalanseraren anslutningsbegäran till den primära repliken.When a SQL client tries to connect, the load balancer routes the connection request to the primary replica. Om det finns en redundansväxling till en annan replik dirigerar belastningsutjämnaren automatiskt nya begär anden till en ny primär replik.If there is a failover to another replica, the load balancer automatically routes new requests to a new primary replica. Mer information finns i Konfigurera en ILB-lyssnare för SQL Server AlwaysOn-tillgänglighetsgrupper.For more information, see Configure an ILB listener for SQL Server Always On Availability Groups.

Befintliga klientanslutningar stängs under en redundansväxling.During a failover, existing client connections are closed. När redundansväxlingen är klar vidarebefordras nya anslutningar till den nya primära repliken.After the failover completes, new connections will be routed to the new primary replica.

Om ditt program får fler läsningar än skrivningar kan du avlasta några av de skrivskyddade frågorna till en sekundär replik.If your application makes more reads than writes, you can offload some of the read-only queries to a secondary replica. Se Ansluta till en skrivskyddad sekundär replik (skrivskyddad routning) med en lyssnare.See Using a Listener to Connect to a Read-Only Secondary Replica (Read-Only Routing).

Testa distributionen genom att framtvinga en manuell redundansväxling av tillgänglighetsgruppen.Test your deployment by forcing a manual failover of the availability group.

För optimering av SQL-prestanda kan du även se artikeln SQL Server Best Practices för att optimera prestanda i Azure Stack Hub.For SQL performance optimization, you can also refer the article SQL server best practices to optimize performance in Azure Stack Hub.

JumpboxJumpbox

Tillåt inte RDP-åtkomst från det offentliga Internet till de virtuella datorer som kör program belastningen.Don't allow RDP access from the public Internet to the VMs that run the application workload. I stället bör all RDP-åtkomst till de här virtuella datorerna gå igenom hopp rutan.Instead, all RDP access to these VMs should go through the jumpbox. En administratör loggar in på jumpbox som sedan loggar in på den andra virtuella datorn från jumpbox.An administrator logs into the jumpbox, and then logs into the other VM from the jumpbox. Jumpbox tillåter RDP-trafik från Internet, men endast från kända, säkra IP-adresser.The jumpbox allows RDP traffic from the Internet, but only from known, safe IP addresses.

Hoppet har minimala prestanda krav, så välj en liten VM-storlek.The jumpbox has minimal performance requirements, so select a small VM size. Skapa en offentlig IP-adress för jumpbox.Create a public IP address for the jumpbox. Placera hopp rutan i samma virtuella nätverk som de andra virtuella datorerna, men i ett separat hanterings under nät.Place the jumpbox in the same virtual network as the other VMs, but in a separate management subnet.

För att skydda hoppet lägger du till en NSG-regel som endast tillåter RDP-anslutningar från en säker uppsättning offentliga IP-adresser.To secure the jumpbox, add an NSG rule that allows RDP connections only from a safe set of public IP addresses. Konfigurera NSG:er för andra undernät så att RDP-trafik från hanteringsundernätet tillåts.Configure the NSGs for the other subnets to allow RDP traffic from the management subnet.

SkalbarhetsövervägandenScalability considerations

SkalningsuppsättningarScale sets

För Web-och Business-nivåerna bör du överväga att använda skalnings uppsättningar för virtuella datorer i stället för att distribuera separata virtuella datorer.For the web and business tiers, consider using virtual machine scale sets instead of deploying separate VMs. En skalnings uppsättning gör det enkelt att distribuera och hantera en uppsättning identiska virtuella datorer.A scale set makes it easy to deploy and manage a set of identical VMs. Överväg skalnings uppsättningar om du snabbt behöver skala ut virtuella datorer.Consider scale sets if you need to quickly scale out VMs.

Det finns två grundläggande sätt att konfigurera virtuella datorer som har distribueras i en skalningsuppsättning:There are two basic ways to configure VMs deployed in a scale set:

  • Använd tillägg för att konfigurera den virtuella datorn när den har distribuerats.Use extensions to configure the VM after it's deployed. Nya VM-instanser kan ta längre tid att starta än en virtuell dator utan tillägg med den här metoden.With this approach, new VM instances may take longer to start up than a VM with no extensions.

  • Distribuera en hanterad disk med en anpassad diskavbildning.Deploy a managed disk with a custom disk image. Det här alternativet kan gå snabbare att distribuera.This option may be quicker to deploy. Men du måste hålla avbildningen uppdaterad.However, it requires you to keep the image up-to-date.

Mer information finns i design överväganden för skalnings uppsättningar.For more information, see Design considerations for scale sets. Den här design beräkningen gäller främst för Azure Stack hubb, men det finns vissa varningar:This design consideration is mostly true for Azure Stack Hub, however there are some caveats:

  • Skalnings uppsättningar för virtuella datorer på Azure Stack Hub stöder inte överetablering eller löpande uppgraderingar.Virtual machine scale sets on Azure Stack Hub do not support overprovisioning or rolling upgrades.

  • Du kan inte skala skalnings uppsättningar för virtuella datorer på Azure Stack Hub.You cannot autoscale virtual machine scale sets on 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 skalnings uppsättningen för virtuella datorerWe strongly recommend using Managed disks on Azure Stack Hub instead of unmanaged disks for virtual machine scale set

  • För närvarande finns det en gräns på 700 VM på Azure Stack hubb, som är konton för alla Azure Stack virtuella datorer för hubb infrastruktur, enskilda virtuella datorer och skalnings uppsättnings instanser.Currently, there is a 700 VM limit on Azure Stack Hub, which accounts for all Azure Stack Hub infrastructure VMs, individual VMs, and scale set instances.

PrenumerationsgränserSubscription limits

Varje Azure Stack Hub-klient prenumeration har standard gränser, inklusive maximalt antal virtuella datorer per region som kon figurer ATS av Azure Stack Hub-operatorn.Each Azure Stack Hub tenant subscription has default limits in place, including a maximum number of VMs per region configured by the Azure Stack Hub operator. Mer information finns i Azure Stack hubb tjänster, abonnemang, erbjudanden, prenumerationer översikt.For more information, see Azure Stack Hub services, plans, offers, subscriptions overview. Se även kvot typer i Azure Stack Hub.Also refer to Quota types in Azure Stack Hub.

SäkerhetsövervägandenSecurity considerations

Virtuella nätverk utgör en gräns för isolering av trafik i Azure.Virtual networks are a traffic isolation boundary in Azure. Som standard kan virtuella datorer i ett virtuellt nätverk inte kommunicera direkt med virtuella datorer i ett annat virtuellt nätverk.By default, VMs in one virtual network can't communicate directly with VMs in a different virtual network.

NSG: er.NSGs. Använd nätverks säkerhets grupper (NSG: er) för att begränsa trafik till och från Internet.Use network security groups (NSGs) to restrict traffic to and from the internet. Mer information finns i Microsofts molntjänster och nätverkssäkerhet.For more information, see Microsoft cloud services and network security.

DMZ.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.Consider adding a network virtual appliance (NVA) to create a DMZ between the Internet and the Azure virtual network. 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.NVA is a generic term for a virtual appliance that can perform network-related tasks, such as firewall, packet inspection, auditing, and custom routing.

Kryptering.Encryption. Kryptera känsliga data i vila och Använd Key Vault i Azure Stack Hub för att hantera databas krypterings nycklarna.Encrypt sensitive data at rest and use Key Vault in Azure Stack Hub to manage the database encryption keys. Mer information finns i Konfigurera Azure Key Vault-integrering för SQL Server på Azure Virtual Machines.For more information, see Configure Azure Key Vault Integration for SQL Server on Azure VMs. Vi rekommenderar också att du lagrar program hemligheter, t. ex. databas anslutnings strängar, i Key Vault.It's also recommended to store application secrets, such as database connection strings, in Key Vault.

Nästa stegNext steps