Windows N-tier-toepassing in Azure

Azure
Virtual Network
Virtual Machines

Deze referentie architectuur laat zien hoe u virtuele machines (Vm's) en een virtueel netwerk kunt implementeren dat is geconfigureerd voor een toepassing met meerdere lagen , met behulp van SQL Server in Windows voor de gegevenslaag.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. Deze oplossing implementeren.Deploy this solution.

Architectuur met N-tier met Microsoft AzureN-tier architecture using Microsoft Azure

Een Visio-bestand van deze architectuur downloaden.Download a Visio file of this architecture.

ArchitectuurArchitecture

De architectuur heeft de volgende onderdelen:The architecture has the following components.

AlgemeenGeneral

  • Resourcegroep.Resource group. Resource groepen worden gebruikt om Azure-resources te groeperen, zodat deze kunnen worden beheerd met behulp van levens duur, eigenaar en andere criteria.Resource groups are used to group Azure resources so they can be managed by lifetime, owner, or other criteria.

  • Beschikbaarheids zones.Availability zones. Beschikbaarheids zones zijn fysieke locaties binnen een Azure-regio.Availability zones are physical locations within an Azure region. Elke zone bestaat uit een of meer data centers met onafhankelijke voeding, koeling en netwerken.Each zone consists of one or more datacenters with independent power, cooling, and networking. Door Vm's in meerdere zones te plaatsen, wordt de toepassing stabiel voor fouten in een zone.By placing VMs across zones, the application becomes resilient to failures within a zone.

Netwerk-en taak verdelingNetworking and load balancing

  • Virtueel netwerk en subnetten.Virtual network and subnets. Elke VM van Azure wordt geïmplementeerd in een virtueel netwerk dat kan worden gesegmenteerd in subnetten.Every Azure VM is deployed into a virtual network that can be segmented into subnets. Maak een apart subnet voor elke laag.Create a separate subnet for each tier.

  • Application Gateway.Application gateway. Application Gateway is een laag 7-Load Balancer.Application Gateway is a layer 7 load balancer. In deze architectuur worden HTTP-aanvragen naar de web-front-end gerouteerd.In this architecture, it routes HTTP requests to the web front end. Application Gateway biedt ook een Web Application firewall (WAF) waarmee de toepassing wordt beschermd tegen veelvoorkomende aanvallen en beveiligings problemen.Application Gateway also provides a web application firewall (WAF) that protects the application from common exploits and vulnerabilities.

  • Load balancers.Load balancers. Gebruik Azure Standard Load Balancer voor het distribueren van netwerk verkeer van de weblaag naar de bedrijfslaag en van de zakelijke laag naar SQL Server.Use Azure Standard Load Balancer to distribute network traffic from the web tier to the business tier, and from the business tier to SQL Server.

  • Netwerk beveiligings groepen (nsg's).Network security groups (NSGs). Gebruik nsg's om het netwerk verkeer binnen het virtuele netwerk te beperken.Use NSGs to restrict network traffic within the virtual network. In de architectuur met drie lagen die hier wordt weer gegeven, accepteert de database laag echter alleen verkeer van de web-front-end, alleen vanuit de bedrijfs laag en het subnet van het beheer.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.

  • DDoS Protection.DDoS Protection. Hoewel het Azure-platform basis beveiliging biedt tegen DDoS-aanvallen (Distributed Denial of service), raden wij u aan DDoS Protection Standardte gebruiken, die verbeterde functies voor DDoS-risico heeft.Although the Azure platform provides basic protection against distributed denial of service (DDoS) attacks, we recommend using DDoS Protection Standard, which has enhanced DDoS mitigation features. Zie beveiligings overwegingen.See Security considerations.

  • Azure DNS.Azure DNS. Azure DNS is een hostingservice voor DNS-domeinen.Azure DNS is a hosting service for DNS domains. Het biedt naam omzetting met Microsoft Azure-infra structuur.It provides name resolution using Microsoft Azure infrastructure. Door uw domeinen in Azure te hosten, kunt u uw DNS-records met dezelfde referenties, API's, hulpprogramma's en facturering beheren als voor uw andere Azure-services.By hosting your domains in Azure, you can manage your DNS records using the same credentials, APIs, tools, and billing as your other Azure services.

Virtuele machinesVirtual machines

  • SQL Server AlwaysOn- beschikbaarheids groep.SQL Server Always On Availability Group. Biedt hoge beschikbaarheid in de gegevenslaag door replicatie en failover in te schakelen.Provides high availability at the data tier, by enabling replication and failover. Er wordt gebruikgemaakt van de WSFC-technologie (Windows Server failover cluster) voor failover.It uses Windows Server Failover Cluster (WSFC) technology for failover.

  • AD DS-servers (Active Directory Domain Services).Active Directory Domain Services (AD DS) Servers. De computer objecten voor het failovercluster en de gekoppelde geclusterde functies worden in Active Directory Domain Services (AD DS) gemaakt.The computer objects for the failover cluster and its associated clustered roles are created in Active Directory Domain Services (AD DS).

  • Cloudwitness.Cloud Witness. Voor een failovercluster moeten meer dan de helft van de knoop punten worden uitgevoerd. dit wordt ook wel quorum genoemd.A failover cluster requires more than half of its nodes to be running, which is known as having quorum. Als het cluster slechts twee knoop punten heeft, kan een netwerk partitie ervoor zorgen dat elk knoop punt het primaire knoop punt is.If the cluster has just two nodes, a network partition could cause each node to think it's the primary node. In dat geval hebt u een Witness nodig om bindingen te verstoren en quorum vast te leggen.In that case, you need a witness to break ties and establish quorum. Een Witness is een bron, zoals een gedeelde schijf, waarmee kan worden gereageerd als een binder voor het instellen van quorum.A witness is a resource such as a shared disk that can act as a tie breaker to establish quorum. Cloudwitness is een type Witness dat gebruikmaakt van Azure Blob Storage.Cloud Witness is a type of witness that uses Azure Blob Storage. Zie cluster-en groeps quorumvoor meer informatie over het concept van quorum.To learn more about the concept of quorum, see Understanding cluster and pool quorum. Zie een Cloudwitness implementeren voor een failoverclustervoor meer informatie over de Cloud-Witness.For more information about Cloud Witness, see Deploy a Cloud Witness for a Failover Cluster.

  • Jumpbox.Jumpbox. Wordt ook wel een bastionhost genoemd.Also called a bastion host. Een beveiligde VM in het netwerk die beheerders kunnen gebruiken om verbinding te maken met de andere VM's.A secure VM on the network that administrators use to connect to the other VMs. De jumpbox heeft een netwerkbeveiligingsgroep die alleen extern verkeer vanaf openbare IP-adressen op een lijst met veilige adressen toelaat.The jumpbox has an NSG that allows remote traffic only from public IP addresses on a safe list. De netwerkbeveiligingsgroep zou RDP-verkeer (extern bureaublad) moeten toestaan.The NSG should permit remote desktop (RDP) traffic.

AanbevelingenRecommendations

Uw vereisten kunnen afwijken van de architectuur die hier wordt beschreven.Your requirements might differ from the architecture described here. Gebruik deze aanbevelingen als uitgangspunt.Use these recommendations as a starting point.

Virtuele machinesVirtual machines

Zie een Windows VM uitvoeren op Azurevoor aanbevelingen voor het configureren van de vm's.For recommendations on configuring the VMs, see Run a Windows VM on Azure.

Virtueel netwerkVirtual network

Wanneer u het virtuele netwerk maakt, bepaalt u hoeveel IP-adressen uw resources in elk subnet nodig hebben.When you create the virtual network, determine how many IP addresses your resources in each subnet require. Geef een subnetmasker en een netwerk adres bereik op die groot genoeg zijn voor de vereiste IP-adressen, met behulp van CIDR -notatie.Specify a subnet mask and a network address range large enough for the required IP addresses, using CIDR notation. Gebruik een adresruimte die valt binnen de standaard privé-IP-adresblokken, te weten 10.0.0.0/8, 172.16.0.0/12 en 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.

Kies een adres bereik dat niet met uw on-premises netwerk overlapt voor het geval u later een gateway tussen het virtuele netwerk en uw on-premises netwerk moet instellen.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. Wanneer u het virtuele netwerk hebt gemaakt, kunt u het adres bereik niet meer wijzigen.Once you create the virtual network, you can't change the address range.

Houd rekening met de vereisten voor functionaliteit en beveiliging wanneer u subnetten ontwerpt.Design subnets with functionality and security requirements in mind. Alle VM's binnen dezelfde laag of rol moeten worden geplaatst in hetzelfde subnet dat een beveiligingsgrens kan vormen.All VMs within the same tier or role should go into the same subnet, which can be a security boundary. Zie Azure Virtual Networks plannen en ontwerpenvoor meer informatie over het ontwerpen van virtuele netwerken en subnetten.For more information about designing virtual networks and subnets, see Plan and design Azure Virtual Networks.

Application GatewayApplication Gateway

Zie Application Gateway configuratie-overzichtvoor meer informatie over het configureren van Application Gateway.For information about configuring Application Gateway, see Application Gateway configuration overview.

Load balancersLoad balancers

Maak de Vm's niet rechtstreeks op internet beschikbaar, maar geef elke virtuele machine een privé-IP-adres.Don't expose the VMs directly to the Internet, but instead give each VM a private IP address. Clients maken verbinding met het open bare IP-adres dat is gekoppeld aan de Application Gateway.Clients connect using the public IP address associated with the Application Gateway.

Definieer load balancer-regels om netwerkverkeer door te sturen naar de virtuele machines.Define load balancer rules to direct network traffic to the VMs. Als u bijvoorbeeld HTTP-verkeer wilt inschakelen, wijst u poort 80 van de front-end-configuratie toe aan poort 80 op de back-end-adres groep.For example, to enable HTTP traffic, map port 80 from the front-end configuration to port 80 on the back-end address pool. Wanneer een client een HTTP-aanvraag naar poort 80 verzendt, selecteert de load balancer een back-end-IP-adres met behulp van een hash-algoritme met het IP-adres van de bron.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. Client aanvragen worden gedistribueerd over alle virtuele machines in de back-end-adres groep.Client requests are distributed across all the VMs in the back-end address pool.

NetwerkbeveiligingsgroepenNetwork security groups

Gebruik NSG-regels om het verkeer tussen lagen te beperken.Use NSG rules to restrict traffic between tiers. In de architectuur met drie lagen die hierboven wordt weer gegeven, communiceert de weblaag niet rechtstreeks met de data base-laag.In the three-tier architecture shown above, the web tier does not communicate directly with the database tier. Als u deze regel wilt afdwingen, moet het binnenkomende verkeer van het subnet met de weblaag door de database laag worden geblokkeerd.To enforce this rule, the database tier should block incoming traffic from the web tier subnet.

  1. Alle binnenkomend verkeer van het virtuele netwerk wordt geweigerd.Deny all inbound traffic from the virtual network. (Gebruik de tag VIRTUAL_NETWORK in de regel.)(Use the VIRTUAL_NETWORK tag in the rule.)
  2. Binnenkomend verkeer van het subnet van de bedrijfslaag toestaan.Allow inbound traffic from the business tier subnet.
  3. Binnenkomend verkeer van het subnet met de data base-laag zelf toestaan.Allow inbound traffic from the database tier subnet itself. Deze regel staat communicatie toe tussen de data base-Vm's, die nodig zijn voor database replicatie en failover.This rule allows communication between the database VMs, which is needed for database replication and failover.
  4. RDP-verkeer toestaan (poort 3389) van het JumpBox-subnet.Allow RDP traffic (port 3389) from the jumpbox subnet. Deze regel zorgt ervoor dat beheerders vanuit de jumpbox verbinding kunnen maken met de databaselaag.This rule lets administrators connect to the database tier from the jumpbox.

Maak regels 2 – 4 met een hogere prioriteit dan de eerste regel, zodat ze deze overschrijven.Create rules 2 – 4 with higher priority than the first rule, so they override it.

AlwaysOn-beschikbaarheidsgroepen in SQL ServerSQL Server Always On Availability Groups

Voor een hoge beschikbaarheid van SQL Server worden AlwaysOn-beschikbaarheidgroepen aangeraden.We recommend Always On Availability Groups for SQL Server high availability. Vóór Windows Server 2016 vereisten AlwaysOn-beschikbaarheidsgroepen een domeincontroller en moesten alle knooppunten in de beschikbaarheidsgroep zich in hetzelfde AD-domein bevinden.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.

Andere lagen maken verbinding met de database via een listener voor de beschikbaarheidsgroep.Other tiers connect to the database through an availability group listener. De listener maakt het mogelijk dat een SQL-client verbinding maakt zonder de naam van het fysieke exemplaar van SQL Server te kennen.The listener enables a SQL client to connect without knowing the name of the physical instance of SQL Server. Virtuele machines die toegang hebben tot de database, moeten worden toegevoegd aan het domein.VMs that access the database must be joined to the domain. De client (in dit geval een andere laag) gebruikt DNS om de naam van het virtuele netwerk van de listener om te zetten in IP-adressen.The client (in this case, another tier) uses DNS to resolve the listener's virtual network name into IP addresses.

U configureert de AlwaysOn-beschikbaarheidsgroep in SQL Server als volgt:Configure the SQL Server Always On Availability Group as follows:

  1. Maak een WSFC-cluster (Windows Server Failover Clustering), een AlwaysOn-beschikbaarheidsgroep in SQL Server en een primaire replica.Create a Windows Server Failover Clustering (WSFC) cluster, a SQL Server Always On Availability Group, and a primary replica. Zie Aan de slag met AlwaysOn-beschikbaarheidsgroepen voor meer informatie.For more information, see Getting Started with Always On Availability Groups.

  2. Maak een interne load balancer met een statisch privé-IP-adres.Create an internal load balancer with a static private IP address.

  3. Maak een listener voor de beschikbaarheidsgroep en wijs de DNS-naam van de listener toe aan het IP-adres van een interne load balancer.Create an availability group listener, and map the listener's DNS name to the IP address of an internal load balancer.

  4. Maak een load balancer-regel voor de SQL Server-controlepoort (standaard TCP-poort 1433).Create a load balancer rule for the SQL Server listening port (TCP port 1433 by default). De load balancer-regel moet zwevende IP-adressen, ook wel Direct Server Return, inschakelen.The load balancer rule must enable floating IP, also called Direct Server Return. Dit zorgt ervoor dat de VM rechtstreeks antwoordt naar de client, waardoor een directe verbinding met de primaire replica mogelijk is.This causes the VM to reply directly to the client, which enables a direct connection to the primary replica.

    Notitie

    Als zwevende IP-adressen zijn ingeschakeld, moet het front-end poortnummer hetzelfde zijn als het back-end poortnummer in de load balancer-regel.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.

Wanneer een SQL-client verbinding probeert te maken, stuurt de load balancer de verbindingsaanvraag door naar de primaire replica.When a SQL client tries to connect, the load balancer routes the connection request to the primary replica. Als er een failover naar een andere replica is, worden nieuwe aanvragen automatisch door de load balancer naar een nieuwe primaire replica gerouteerd.If there is a failover to another replica, the load balancer automatically routes new requests to a new primary replica. Zie Een ILB-listener voor AlwaysOn-beschikbaarheidsgroepen in SQL Server configureren voor meer informatie.For more information, see Configure an ILB listener for SQL Server Always On Availability Groups.

Tijdens een failover worden bestaande clientverbindingen gesloten.During a failover, existing client connections are closed. Nadat de failover is voltooid, worden nieuwe verbindingen doorgestuurd naar de nieuwe primaire replica.After the failover completes, new connections will be routed to the new primary replica.

Als uw toepassing veel meer leesbewerkingen dan schrijfbewerkingen uitvoert, kunt u enkele van de alleen-lezen query's offloaden naar een secundaire replica.If your application makes significantly more reads than writes, you can offload some of the read-only queries to a secondary replica. Zie Een listener gebruiken om verbinding te maken met een secundaire alleen-lezen replica (alleen-lezen routering).See Using a Listener to Connect to a Read-Only Secondary Replica (Read-Only Routing).

Test uw implementatie door een handmatige failover van de beschikbaarheidsgroep te forceren.Test your deployment by forcing a manual failover of the availability group.

JumpboxJumpbox

Sta geen RDP-toegang vanaf het open bare Internet toe aan de virtuele machines waarop de workload van de toepassing wordt uitgevoerd.Don't allow RDP access from the public Internet to the VMs that run the application workload. In plaats daarvan moet alle RDP-toegang tot deze Vm's via de JumpBox.Instead, all RDP access to these VMs should go through the jumpbox. Een beheerder meldt zich aan bij de jumpbox en meldt zich vervolgens aan bij de andere VM's vanuit de jumpbox.An administrator logs into the jumpbox, and then logs into the other VM from the jumpbox. De jumpbox staat RDP-verkeer van internet toe, maar alleen vanaf bekende, veilige IP-adressen.The jumpbox allows RDP traffic from the Internet, but only from known, safe IP addresses.

De JumpBox heeft minimale prestatie vereisten, dus Selecteer een kleine VM-grootte.The jumpbox has minimal performance requirements, so select a small VM size. Maak een openbaar IP-adres voor de jumpbox.Create a public IP address for the jumpbox. Plaats de JumpBox in hetzelfde virtuele netwerk als de andere Vm's, maar in een afzonderlijk beheer subnet.Place the jumpbox in the same virtual network as the other VMs, but in a separate management subnet.

Als u de JumpBox wilt beveiligen, voegt u een NSG-regel toe die alleen RDP-verbindingen van een veilige set open bare IP-adressen toestaat.To secure the jumpbox, add an NSG rule that allows RDP connections only from a safe set of public IP addresses. Configureer de NSG's voor de andere subnetten zodanig dat RDP-verkeer van het beheersubnet is toegestaan.Configure the NSGs for the other subnets to allow RDP traffic from the management subnet.

SchaalbaarheidsoverwegingenScalability considerations

SchaalsetsScale sets

Voor de web-en Business-lagen kunt u overwegen virtuele-machine schaal sets te gebruiken in plaats van afzonderlijke vm's te implementeren.For the web and business tiers, consider using virtual machine scale sets instead of deploying separate VMs. Een schaalset maakt het eenvoudig om een set identieke Vm's te implementeren en te beheren en om de Vm's automatisch te schalen op basis van metrische gegevens over prestaties.A scale set makes it easy to deploy and manage a set of identical VMs, and autoscale the VMs based on performance metrics. Als de belasting op de virtuele machines toeneemt, worden er automatisch extra virtuele machines toegevoegd aan de load balancer.As the load on the VMs increases, additional VMs are automatically added to the load balancer. Overweeg schaalsets te gebruiken als u virtuele machines snel wilt uitschalen, of automatisch wilt schalen.Consider scale sets if you need to quickly scale out VMs, or need to autoscale.

Er zijn twee basismethoden voor het configureren van virtuele machines die worden geïmplementeerd in een schaalset:There are two basic ways to configure VMs deployed in a scale set:

  • Gebruik uitbrei dingen om de virtuele machine te configureren nadat deze is geïmplementeerd.Use extensions to configure the VM after it's deployed. Bij deze methode duurt het opstarten van nieuwe VM-exemplaren langer dan bij een VM zonder extensies.With this approach, new VM instances may take longer to start up than a VM with no extensions.

  • Een beheerde schijf met een aangepaste installatiekopie implementeren.Deploy a managed disk with a custom disk image. Het implementeren gaat waarschijnlijk sneller bij deze methode.This option may be quicker to deploy. U moet de installatie kopie echter up-to-date houden.However, it requires you to keep the image up-to-date.

Zie ontwerp overwegingen voor schaal setsvoor meer informatie.For more information, see Design considerations for scale sets.

Tip

Wanneer u een oplossing voor automatisch schalen gebruikt, moet u deze ruim van tevoren testen met werkbelastingen op productieniveau.When using any autoscale solution, test it with production-level workloads well in advance.

AbonnementslimietenSubscription limits

Voor elk Azure-abonnement gelden standaardlimieten, inclusief een maximum aantal virtuele machines per regio.Each Azure subscription has default limits in place, including a maximum number of VMs per region. U kunt de limiet verhogen door een ondersteuningsaanvraag daartoe in te dienen.You can increase the limit by filing a support request. Zie Azure-abonnement- en servicelimieten, quota en beperkingen voor meer informatie.For more information, see Azure subscription and service limits, quotas, and constraints.

Application GatewayApplication Gateway

Application Gateway ondersteunt de modus voor vaste capaciteit of de modus voor automatisch schalen.Application Gateway supports fixed capacity mode or autoscaling mode. De modus vaste capaciteit is handig voor scenario's met consistente en voorspel bare werk belastingen.Fixed capacity mode is useful for scenarios with consistent and predictable workloads. U kunt de modus voor automatisch schalen gebruiken voor werk belastingen met variabele verkeer.Consider using autoscaling mode for workloads with variable traffic. Zie voor meer informatie automatisch schalen en zone-redundante Application Gateway v2For more information, see Autoscaling and Zone-redundant Application Gateway v2

BeschikbaarheidsoverwegingenAvailability considerations

Beschikbaarheids zones bieden de beste tolerantie binnen één regio.Availability zones provide the best resiliency within a single region. Als u nog meer Beschik baarheid nodig hebt, kunt u overwegen om de toepassing te repliceren tussen twee regio's met behulp van Azure Traffic Manager voor failover.If you need even higher availability, consider replicating the application across two regions, using Azure Traffic Manager for failover. Zie voor meer informatie meerdere regio's N-tier-toepassing voor hoge Beschik baarheid.For more information, see Multi-region N-tier application for high availability.

Niet alle regio's ondersteunen beschikbaarheids zones en niet alle VM-grootten worden in alle zones ondersteund.Not all regions support availability zones, and not all VM sizes are supported in all zones. Voer de volgende Azure CLI-opdracht uit om de ondersteunde zones voor elke VM-grootte binnen een regio te vinden:Run the following Azure CLI command to find the supported zones for each VM size within a region:

az vm list-skus --resource-type virtualMachines --zone false --location <location> \
    --query "[].{Name:name, Zones:locationInfo[].zones[] | join(','@)}" -o table

Als u deze architectuur implementeert in een regio die geen beschikbaarheids zones ondersteunt, plaatst u de virtuele machines voor elke laag in een beschikbaarheidsset.If you deploy this architecture to a region that does not support availability zones, put the VMs for each tier inside an availability set. Vm's binnen dezelfde beschikbaarheidsset worden geïmplementeerd op meerdere fysieke servers, reken rekken, opslag eenheden en netwerk switches voor redundantie.VMs within the same availability set are deployed across multiple physical servers, compute racks, storage units, and network switches for redundancy. Schaal sets gebruiken automatisch plaatsings groepen, die fungeren als een impliciete beschikbaarheidsset.Scale sets automatically use placement groups, which act as an implicit availability set.

Wanneer u implementeert in beschikbaarheids zones, gebruikt u de standaard-SKU van Azure Load Balancer en de v2-SKU van Application Gateway.When deploying to availability zones, use the Standard SKU of Azure Load Balancer and the v2 SKU of Application Gateway. Deze Sku's bieden ondersteuning voor de cross-zone redundantie.These SKUs support cross-zone redundancy. Zie voor meer informatie:For more information, see:

Een implementatie met één Application Gateway kan meerdere exemplaren van de gateway uitvoeren.A single Application Gateway deployment can run multiple instances of the gateway. Voer ten minste twee exemplaren uit voor werk belastingen voor productie.For production workloads, run at least two instances.

StatustestenHealth probes

Application Gateway en Load Balancer beide status tests gebruiken om de beschik baarheid van VM-exemplaren te bewaken.Application Gateway and Load Balancer both use health probes to monitor the availability of VM instances.

  • Application Gateway maakt altijd gebruik van een HTTP-test.Application Gateway always uses an HTTP probe.
  • Load Balancer kunt HTTP of TCP testen.Load Balancer can test either HTTP or TCP. Als een virtuele machine een HTTP-server uitvoert, gebruikt u over het algemeen een HTTP-test.Generally, if a VM runs an HTTP server, use an HTTP probe. Gebruik anders TCP.Otherwise, use TCP.

Als een test binnen een time-outperiode geen exemplaar kan bereiken, verzendt de gateway of load balancer stopt met het verzenden van verkeer naar die virtuele machine.If a probe can't reach an instance within a timeout period, the gateway or load balancer stops sending traffic to that VM. De test blijft controleren en retourneert de virtuele machine naar de back-end-pool als de virtuele machine weer beschikbaar wordt.The probe continues to check and will return the VM to the back-end pool if the VM becomes available again.

HTTP-tests sturen een HTTP GET-aanvraag naar een opgegeven pad en Luis teren naar een HTTP 200-antwoord.HTTP probes send an HTTP GET request to a specified path and listen for an HTTP 200 response. Dit pad kan het hoofdpad (/) zijn of een status bewakings eindpunt dat een bepaalde aangepaste logica implementeert om de status van de toepassing te controleren.This path can be the root path ("/"), or a health-monitoring endpoint that implements some custom logic to check the health of the application. Voor het eindpunt moeten anonieme HTTP-aanvragen worden toegestaan.The endpoint must allow anonymous HTTP requests.

Zie voor meer informatie over status tests:For more information about health probes, see:

Zie voor overwegingen over het ontwerpen van een status test eindpunt het controle patroon status eindpunt.For considerations about designing a health probe endpoint, see Health Endpoint Monitoring pattern.

KostenoverwegingenCost considerations

Gebruik de prijs calculator van Azure om de kosten te schatten.Use the Azure Pricing Calculator to estimates costs. Hier volgen enkele andere overwegingen.Here are some other considerations.

Virtuele-machineschaalsetsVirtual machine scale sets

Schaal sets voor virtuele machines zijn beschikbaar op alle Windows VM-grootten.Virtual machine scale sets are available on all Windows VM sizes. Er worden alleen kosten in rekening gebracht voor de virtuele Azure-machines die u implementeert en eventuele extra onderliggende infrastructuur resources, zoals opslag en netwerken.You are only charged for the Azure VMs you deploy and any additional underlying infrastructure resources consumed such as storage and networking. Er zijn geen incrementele kosten voor de virtuele-machine Scale sets-service.There are no incremental charges for the virtual machine scale sets service.

Zie prijzen voor Windows-vm's voor de prijs opties voor één vm's.For single VMs pricing options See Windows VMs pricing

SQL ServerSQL server

Als u Azure SQL DBaas kiest, kunt u kosten besparen omdat u geen AlwaysOn-beschikbaarheids groep en domein controller machines hoeft te configureren.If you choose Azure SQL DBaas, you can save on cost because don't need to configure an Always On Availability Group and domain controller machines. Er zijn verschillende implementatie opties, beginnend bij een enkele data base, tot een beheerd exemplaar of elastische Pools.There are several deployment options starting from single database up to managed instance, or elastic pools. Zie prijzen voor Azure SQLvoor meer informatie.For more information see Azure SQL pricing.

Zie prijzen voor SQL-vm'svoor de prijs opties voor SQL Server-vm's.For SQL server VMs pricing options see SQL VMs pricing.

Load balancersLoad balancers

Er worden alleen kosten in rekening gebracht voor het aantal geconfigureerde taakverdelings-en uitgaande regels.You are charged only for the number of configured load-balancing and outbound rules. Inkomende NAT-regels zijn gratis.Inbound NAT rules are free. Er worden geen kosten per uur in rekening gebracht voor de Standard Load Balancer als er geen regels zijn geconfigureerd.There is no hourly charge for the Standard Load Balancer when no rules are configured.

Raadpleeg de kostensectie in Microsoft Azure Well-Architected Framework voor meer informatie.For more information, see the cost section in Microsoft Azure Well-Architected Framework.

BeveiligingsoverwegingenSecurity considerations

Virtuele netwerken zijn een verkeersisolatiegrens in Azure.Virtual networks are a traffic isolation boundary in Azure. Standaard kunnen Vm's in één virtueel netwerk niet rechtstreeks communiceren met virtuele machines in een ander virtueel netwerk.By default, VMs in one virtual network can't communicate directly with VMs in a different virtual network. U kunt echter expliciet virtuele netwerken met elkaar verbinden met behulp van peering op het virtuele netwerk.However, you can explicitly connect virtual networks by using virtual network peering.

Nsg's.NSGs. Gebruik netwerk beveiligings groepen (nsg's) om het verkeer van en naar Internet te beperken.Use network security groups (NSGs) to restrict traffic to and from the internet. Zie voor meer informatie Microsoft-cloudservices en -netwerkbeveiliging.For more information, see Microsoft cloud services and network security.

DMZ.DMZ. Overweeg een virtueel netwerkapparaat (NVA) toe te voegen om een perimeternetwerk (DMZ) te maken tussen internet en het virtuele Azure-netwerk.Consider adding a network virtual appliance (NVA) to create a DMZ between the Internet and the Azure virtual network. NVA is een algemene term voor een virtueel apparaat dat netwerkgerelateerde taken kan uitvoeren, zoals een firewall, pakketinspectie, controle en aangepaste routering.NVA is a generic term for a virtual appliance that can perform network-related tasks, such as firewall, packet inspection, auditing, and custom routing. Zie Een DMZ tussen Azure en internet implementeren voor meer informatie.For more information, see Implementing a DMZ between Azure and the Internet.

Versleuteling.Encryption. Versleutel gevoelige data-at-rest en gebruik Azure Key Vault om de versleutelingssleutels voor de database te beheren.Encrypt sensitive data at rest and use Azure Key Vault to manage the database encryption keys. Key Vault kan versleutelingssleutels opslaan in hardwarebeveiligingsmodules (HSM's).Key Vault can store encryption keys in hardware security modules (HSMs). Zie voor meer informatie Integratie van Azure Sleutelkluis configureren voor SQL Server op Azure-VM's.For more information, see Configure Azure Key Vault Integration for SQL Server on Azure VMs. Het is ook raadzaam om toepassings geheimen, zoals database verbindings reeksen, op te slaan in Key Vault.It's also recommended to store application secrets, such as database connection strings, in Key Vault.

DDoS-beveiliging.DDoS protection. Het Azure-platform biedt standaard eenvoudige DDoS-beveiliging.The Azure platform provides basic DDoS protection by default. Deze basis beveiliging is gericht op het beveiligen van de Azure-infra structuur als geheel.This basic protection is targeted at protecting the Azure infrastructure as a whole. Hoewel de basis beveiliging van DDoS automatisch wordt ingeschakeld, kunt u het beste DDoS Protection Standardgebruiken.Although basic DDoS protection is automatically enabled, we recommend using DDoS Protection Standard. Standaard beveiliging gebruikt adaptieve afstemming, op basis van de netwerk verkeers patronen van uw toepassing om bedreigingen te detecteren.Standard protection uses adaptive tuning, based on your application's network traffic patterns, to detect threats. Hierdoor kunnen oplossingen worden toegepast tegen DDoS-aanvallen die mogelijk niet worden opgemerkt door het DDoS-beleid voor de hele infra structuur.This allows it to apply mitigations against DDoS attacks that might go unnoticed by the infrastructure-wide DDoS policies. Standaard beveiliging biedt ook waarschuwingen, telemetrie en analyses via Azure Monitor.Standard protection also provides alerting, telemetry, and analytics through Azure Monitor. Zie Azure DDoS Protection: Aanbevolen procedures en referentie architecturenvoor meer informatie.For more information, see Azure DDoS Protection: Best practices and reference architectures.

DevOps overwegingenDevOps considerations

In deze architectuur gebruikt u [Azure buil ding blocks templates] [azbb-Temp late] voor het inrichten van de Azure-resources en de bijbehorende afhankelijkheden.In this architecture you use [Azure Building Blocks templates][azbb-template] for provisioning the Azure resources and its dependencies. Omdat alle hoofd bronnen en hun afhankelijkheden zich in hetzelfde virtuele netwerk bevinden, worden ze geïsoleerd in dezelfde basis werk belasting, waardoor het eenvoudiger wordt om de specifieke resources van de werk belasting te koppelen aan een team, zodat het team onafhankelijk alle aspecten van deze resources kan beheren.Since all the main resources and their dependencies are in the same virtual network, they are isolated in the same basic workload, that makes it easier to associate the workload's specific resources to a team, so that the team can independently manage all aspects of those resources. Dankzij deze isolatie kunnen DevOps continue integratie en continue levering (CI/CD) uitvoeren.This isolation enables DevOps to perform continuous integration and continuous delivery (CI/CD).

Daarnaast kunt u verschillende implementatie sjablonen gebruiken en deze integreren met Azure DevOps Services om in een paar minuten verschillende omgevingen in te richten, bijvoorbeeld om productie zoals scenario's te repliceren of test omgevingen alleen wanneer dat nodig is, zodat u kosten kunt besparen.Also, you can use different deployment templates and integrate them with Azure DevOps Services to provision different environments in minutes, for example to replicate production like scenarios or load testing environments only when needed, saving cost.

In deze sceanario worden virtuele machines geconfigureerd met behulp van virtuele-machine uitbreidingen, omdat ze de mogelijkheid bieden om bepaalde extra software te installeren, zoals anti-malware en beveiligings agenten.In this sceanario you virtual machines are configured by using Virtual Machine Extensions, since they offer the possibility of installing certain additional software, such as anti malware and security agents. VM-extensies worden alleen geïnstalleerd en uitgevoerd op het moment dat de VM wordt gemaakt.VM Extensions are installed and executed only at VM creation time. Dit betekent dat als het besturings systeem onjuist is geconfigureerd in een latere fase, een hand matige interventie nodig is om het te herstellen naar de juiste status.That means if the Operating System gets configured incorrectly at a later stage, it will require a manual intervention to move it back to its correct state..

Hulpprogram Ma's voor configuratie beheer, in het bijzonder desired state Configuration (DSC), worden in deze architectuur gebruikt om Active Directory en een SQL Server AlwaysOn-beschikbaarheids groep te configureren.Configuration Management Tools, in particular Desired State Configuration (DSC), are used in this architecture to configure Active Directory and a SQL Server Always On Availability Group.

Overweeg het gebruik van de Azure Monitor voor het analyseren en optimaliseren van de prestaties van uw infrastructuur, het bewaken en diagnosticeren van netwerkproblemen zonder u aan te melden bij uw virtuele machines.Consider using the Azure Monitor to Analyze and optimize the performance of your infrastructure, Monitor and diagnose networking issues without logging into your virtual machines. Application Insights is eigenlijk een van de onderdelen van Azure Monitor, waarmee u beschikt over uitgebreide metrische gegevens en Logboeken om de status van uw volledige Azure-landschap te controleren.Application Insights is actually one of the components of Azure Monitor, which gives you rich metrics and logs to verify the state of your complete Azure landscape. Azure Monitor helpt u bij het volgen van de status van uw infra structuur.Azure Monitor will help you to follow the state of your infrastructure.

Zorg ervoor dat u niet alleen uw reken elementen bewaken die uw toepassings code ondersteunen, maar ook uw gegevens platform, met name uw data bases, omdat een lage prestatie van de gegevenslaag van een toepassing ernstige gevolgen kan hebben.Make sure not only to monitor your compute elements supporting your application code, but your data platform as well, in particular your databases, since a low performance of the data tier of an application could have serious consequences.

Voor het testen van de Azure-omgeving waarin de toepassingen worden uitgevoerd, moet deze versie worden beheerd en geïmplementeerd via dezelfde mechanismen als toepassings code. vervolgens kan deze worden getest en gevalideerd met behulp van DevOps-test modellen.In order to test the Azure environment where the applications are running, it should be version-controlled and deployed through the same mechanisms as application code, then it can be tested and validated using DevOps testing paradigms too.

Zie de sectie over de operationele uitmuntendheid in Azure Well-Architected Frameworkvoor meer informatie.For more information, see the Operational Excellence section in Azure Well-Architected Framework.

De oplossing implementerenDeploy the solution

Een implementatie voor deze referentiearchitectuur is beschikbaar op GitHub.A deployment for this reference architecture is available on GitHub. De volledige implementatie kan tot een uur duren, waaronder het uitvoeren van de scripts om AD DS te configureren, het Windows Server-failovercluster en de SQL Server-beschikbaarheids groep.The entire deployment can take up to an hour, which includes running the scripts to configure AD DS, the Windows Server failover cluster, and the SQL Server availability group.

Als u een regio opgeeft die beschikbaarheids zones ondersteunt, worden de virtuele machines geïmplementeerd in beschikbaarheids zones.If you specify a region that supports availability zones, the VMs are deployed into availability zones. Anders worden de Vm's geïmplementeerd in beschikbaarheids sets.Otherwise, the VMs are deployed into availability sets. Zie Services ondersteunen per regiovoor een lijst met regio's die beschikbaarheids zones ondersteunen.For a list of regions that support availability zones, see Services support by region.

VereistenPrerequisites

  1. Kloon, vertak of download het zip-bestand voor de GitHub-opslagplaats met referentiearchitecturen.Clone, fork, or download the zip file for the reference architectures GitHub repository.

  2. Installeer de Azure CLI 2.0.Install Azure CLI 2.0.

  3. Node en NPM installerenInstall Node and NPM

  4. Installeer het NPM-pakket met Azure-bouwstenen.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  5. Meld u via een opdrachtprompt, Bash-prompt of PowerShell-prompt als volgt aan bij uw Azure-account:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

ImplementatiestappenDeployment steps

  1. Navigeer naar de virtual-machines\n-tier-windows map van de GitHub-opslag plaats met referentie architecturen.Navigate to the virtual-machines\n-tier-windows folder of the reference architectures GitHub repository.

  2. Open het bestand n-tier-windows.json.Open the n-tier-windows.json file.

  3. Zoek in het n-tier-windows.json bestand naar alle exemplaren van [replace-with-password] en [replace-with-safe-mode-password] Vervang deze door een sterk wacht woord.In the n-tier-windows.json file, search for all instances of [replace-with-password] and [replace-with-safe-mode-password] and replace them with a strong password. Sla het bestand op.Save the file.

    Notitie

    Als u de gebruikers naam van de beheerder wijzigt, moet u ook de extensions blokken in het JSON-bestand bijwerken.If you change the administrator user name, you must also update the extensions blocks in the JSON file.

  4. Voer de volgende opdracht uit om de architectuur te implementeren.Run the following command to deploy the architecture.

    azbb -s <your subscription_id> -g <resource_group_name> -l <location> -p n-tier-windows.json --deploy
    
  5. Wanneer de implementatie is voltooid, opent u de Azure Portal en navigeert u naar de resource groep.When the deployment is complete, open the Azure portal and navigate to the resource group. Zoek het opslag account dat begint met ' sqlcw '.Find the storage account that begins with 'sqlcw'. Dit is het opslag account dat wordt gebruikt voor de Cloud-Witness van het cluster.This is the storage account that will be used for the cluster's cloud witness. Navigeer naar het opslag account, selecteer toegangs sleutels en kopieer de waarde van key1 .Navigate into the storage account, select Access Keys, and copy the value of key1. Kopieer ook de naam van het opslag account.Also copy the name of the storage account.

  6. Open het bestand n-tier-windows-sqlao.json.Open the n-tier-windows-sqlao.json file.

  7. Zoek in het n-tier-windows-sqlao.json bestand naar alle exemplaren van [replace-with-password] en [replace-with-sql-password] Vervang deze door een sterk wacht woord.In the n-tier-windows-sqlao.json file, search for all instances of [replace-with-password] and [replace-with-sql-password] and replace them with a strong password.

    Notitie

    Als u de gebruikers naam van de beheerder wijzigt, moet u ook de extensions blokken in het JSON-bestand bijwerken.If you change the administrator user name, you must also update the extensions blocks in the JSON file.

  8. Zoek in het n-tier-windows-sqlao.json bestand naar alle exemplaren van [replace-with-storageaccountname] en [replace-with-storagekey] Vervang deze door de waarden uit stap 5.In the n-tier-windows-sqlao.json file, search for all instances of [replace-with-storageaccountname] and [replace-with-storagekey] and replace them with the values from step 5. Sla het bestand op.Save the file.

  9. Voer de volgende opdracht uit om SQL Server altijd in te stellen.Run the following command to configure SQL Server Always On.

    azbb -s <your subscription_id> -g <resource_group_name> -l <location> -p n-tier-windows-sqlao.json --deploy
    

Volgende stappenNext steps