Aplicação de N camadas do Windows no Azure com o SQL ServerWindows N-tier application on Azure with SQL Server

Essa arquitetura de referência mostra como implantar VMs e uma rede virtual configurada para um aplicativo de N camadas , usando SQL Server no Windows para a camada de dados.This reference architecture shows how to deploy VMs and a virtual network configured for an N-tier application, using SQL Server on Windows for the data tier. Implementar esta solução.Deploy this solution.

Arquitetura de N camadas com o Microsoft Azure

Transfira um ficheiro do Visio desta arquitetura.Download a Visio file of this architecture.

ArquiteturaArchitecture

A arquitetura é composta pelos seguintes componentes:The architecture has the following components:

  • Grupo de recursos.Resource group. Os grupos de recursos são usados para agrupar recursos para que possam ser gerenciados por tempo de vida, proprietário ou outros critérios.Resource groups are used to group resources so they can be managed by lifetime, owner, or other criteria.

  • Rede virtual (VNet) e sub-redes.Virtual network (VNet) and subnets. Cada VM do Azure é implementada numa VNet que pode ser segmentado em sub-redes.Every Azure VM is deployed into a VNet that can be segmented into subnets. Crie uma sub-rede separada para cada camada.Create a separate subnet for each tier.

  • Gateway de aplicação.Application gateway. O Gateway de aplicação do Azure é um balanceador de carga de camada 7.Azure Application Gateway is a layer 7 load balancer. Nesta arquitetura, este encaminha os pedidos HTTP para o front-end da web.In this architecture, it routes HTTP requests to the web front end. Gateway de aplicação também fornece um firewall de aplicações web (WAF) que protege a aplicação de exploits e vulnerabilidades comuns.Application Gateway also provides a web application firewall (WAF) that protects the application from common exploits and vulnerabilities.

  • NSGs.NSGs. Use NSGs ( grupos de segurança de rede ) para restringir o tráfego de rede na VNet.Use network security groups (NSGs) to restrict network traffic within the VNet. Por exemplo, na arquitetura de três camadas mostrada aqui, a camada de base de dados não aceita tráfego da web front-end, apenas a partir de camada de negócio e a sub-rede de gestão.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.

  • Proteção contra DDoS.DDoS Protection. Embora a plataforma Azure forneça proteção básica contra ataques de DDoS (negação de serviço distribuído), é recomendável usar a proteção contra DDoS Standard, que tem recursos aprimorados de mitigação de DDoS.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. Ver considerações de segurança.See Security considerations.

  • Máquinas virtuais.Virtual machines. Para obter recomendações sobre como configurar as VMs, veja executar uma VM do Windows no Azure e executar uma VM do Linux no Azure.For recommendations on configuring VMs, see Run a Windows VM on Azure and Run a Linux VM on Azure.

  • Conjuntos de disponibilidade.Availability sets. Crie um conjunto de disponibilidade para cada camada e provisione pelo menos duas VMs em cada camada, o que torna as VMs qualificadas para um SLA (contrato de nível de serviço)mais alto.Create an availability set for each tier, and provision at least two VMs in each tier, which makes the VMs eligible for a higher service level agreement (SLA).

  • Balanceadores de carga.Load balancers. Use Azure Load Balancer para distribuir o tráfego de rede da camada da Web para a camada de negócios e da camada de negócios para 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.

  • Endereço IP público.Public IP address. Um endereço IP público é necessária para a aplicação receber o tráfego de Internet.A public IP address is needed for the application to receive Internet traffic.

  • Jumpbox.Jumpbox. Também denominada anfitrião de bastião.Also called a bastion host. Uma VM segura na rede que os administradores utilizam para ligar as outras VMs.A secure VM on the network that administrators use to connect to the other VMs. A jumpbox tem um NSG que permite tráfego remoto apenas a partir de endereços IP públicos numa lista segura.The jumpbox has an NSG that allows remote traffic only from public IP addresses on a safe list. O NSG deve permitir tráfego de ambiente de trabalho remoto (RDP).The NSG should permit remote desktop (RDP) traffic.

  • Grupo de Disponibilidade Always On do SQL Server.SQL Server Always On Availability Group. Fornece uma elevada disponibilidade na camada de dados ao ativar a replicação e a ativação pós-falha.Provides high availability at the data tier, by enabling replication and failover. Ele usa a tecnologia de Cluster de ativação pós-falha de servidor do Windows (WSFC) para a ativação pós-falha.It uses Windows Server Failover Cluster (WSFC) technology for failover.

  • Servidores do Active Directory Domain Services (AD DS) .Active Directory Domain Services (AD DS) Servers. Os objetos de computador para o cluster de ativação pós-falha e respetivas funções agrupadas associadas são criados no 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).

  • Testemunho de nuvem.Cloud Witness. Um cluster de ativação pós-falha requer mais da metade dos respetivos nós para estar em execução, que é conhecido como tendo o quórum.A failover cluster requires more than half of its nodes to be running, which is known as having quorum. Se o cluster tem apenas dois nós, uma partição da rede poderia fazer com que cada nó para pensar é o nó principal.If the cluster has just two nodes, a network partition could cause each node to think it's the master node. Nesse caso, tem um testemunho para quebrar empates e estabelecer um quórum.In that case, you need a witness to break ties and establish quorum. Um testemunho é um recurso, como um disco partilhado que pode atuar como um separador de empate estabelecer um quórum.A witness is a resource such as a shared disk that can act as a tie breaker to establish quorum. Testemunho de nuvem é um tipo de testemunho que utiliza o armazenamento de Blobs do Azure.Cloud Witness is a type of witness that uses Azure Blob Storage. Para saber mais sobre o conceito de quórum, consulte quórum de cluster e um conjunto de compreensão.To learn more about the concept of quorum, see Understanding cluster and pool quorum. Para obter mais informações sobre o testemunho de nuvem, consulte implementar um testemunho de nuvem para um Cluster de ativação pós-falha.For more information about Cloud Witness, see Deploy a Cloud Witness for a Failover Cluster.

  • DNS do Azure.Azure DNS. O DNS do Azure é um serviço de hospedagem para domínios DNS.Azure DNS is a hosting service for DNS domains. Ele fornece a resolução de nomes através da infraestrutura do Microsoft Azure.It provides name resolution using Microsoft Azure infrastructure. Ao alojar os seus domínios no Azure, pode gerir os recursos DNS com as mesmas credenciais, APIs, ferramentas e faturação dos seus outros serviços do Azure.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.

RecomendaçõesRecommendations

Os requisitos podem ser diferentes da arquitetura descrita aqui.Your requirements might differ from the architecture described here. Utilize estas recomendações como um ponto de partida.Use these recommendations as a starting point.

VNet/Sub-redesVNet / Subnets

Ao criar a VNet, determine quantos endereços IP são necessários para o seus recursos em cada sub-rede.When you create the VNet, determine how many IP addresses your resources in each subnet require. Especifique uma máscara de sub-rede e um intervalo de endereços VNet suficientemente grandes para os endereços IP necessários, através da notação CIDR.Specify a subnet mask and a VNet address range large enough for the required IP addresses, using CIDR notation. Use um espaço de endereço que esteja dentro dos blocos de endereço IP privadopadrão, que são 10.0.0.0/8, 172.16.0.0/12 e 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.

Escolha um intervalo de endereços que não se sobreponha à sua rede no local, caso precise de configurar um gateway entre a VNet e a sua rede no local mais tarde.Choose an address range that does not overlap with your on-premises network, in case you need to set up a gateway between the VNet and your on-premises network later. Depois de criar a VNet, não pode alterar o intervalo de endereços.Once you create the VNet, you can't change the address range.

Crie sub-redes com requisitos de funcionalidade e segurança em mente.Design subnets with functionality and security requirements in mind. Todas as VMs dentro da mesma camada ou função devem passar pela mesma sub-rede, a qual pode ser um limite de segurança.All VMs within the same tier or role should go into the same subnet, which can be a security boundary. Para obter mais informações sobre como criar VNets e sub-redes, consulte planejar e projetar redes virtuais do Azure.For more information about designing VNets and subnets, see Plan and design Azure Virtual Networks.

Balanceadores de cargaLoad balancers

Não exponha as VMs diretamente à Internet, mas em vez disso, dar um endereço IP privado a cada VM.Don't expose the VMs directly to the Internet, but instead give each VM a private IP address. Os clientes se conectam usando o endereço IP público associado ao gateway de aplicativo.Clients connect using the public IP address associated with the Application Gateway.

Defina as regras do balanceador de carga para direcionar o tráfego de rede para as VMs.Define load balancer rules to direct network traffic to the VMs. Por exemplo, para ativar o tráfego HTTP, mapear a porta 80 da configuração de front-end para a porta 80 no conjunto de endereços de back-end.For example, to enable HTTP traffic, map port 80 from the front-end configuration to port 80 on the back-end address pool. Quando um cliente envia uma solicitação HTTP para a porta 80, o balanceador de carga seleciona um endereço IP de back-end usando um algoritmo de hash que inclui o endereço IP de origem.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. Pedidos de cliente são distribuídos por todas as VMs no conjunto de endereços de back-end.Client requests are distributed across all the VMs in the back-end address pool.

Grupos de segurança de redeNetwork security groups

Utilize as regras do NSG para restringir o tráfego entre as camadas.Use NSG rules to restrict traffic between tiers. Na arquitetura de três camadas mostrada acima, a camada web não comunica diretamente com a camada de base de dados.In the three-tier architecture shown above, the web tier does not communicate directly with the database tier. Para impor esta regra, a camada da base de dados deve bloquear o tráfego de entrada da sub-rede da camada Web.To enforce this, the database tier should block incoming traffic from the web tier subnet.

  1. Negar todo o tráfego de entrada da VNet.Deny all inbound traffic from the VNet. (Utilize a etiqueta VIRTUAL_NETWORK na regra.)(Use the VIRTUAL_NETWORK tag in the rule.)
  2. Permitir o tráfego de entrada da sub-rede da camada de negócio.Allow inbound traffic from the business tier subnet.
  3. Permitir o tráfego de entrada da sub-rede da camada de base de dados em si.Allow inbound traffic from the database tier subnet itself. Esta regra permite a comunicação entre a base de dados VMs, que é necessária para a replicação de base de dados e de ativação pós-falha.This rule allows communication between the database VMs, which is needed for database replication and failover.
  4. Permitir o tráfego RDP (porta 3389) da sub-rede da jumpbox.Allow RDP traffic (port 3389) from the jumpbox subnet. Esta regra permite aos administradores estabelecer ligação com o escalão da base de dados a partir da jumpbox.This rule lets administrators connect to the database tier from the jumpbox.

Criar regras de 2 – 4 com prioridade mais alta do que a primeira regra, para que eles substituem-la.Create rules 2 – 4 with higher priority than the first rule, so they override it.

Grupos de Disponibilidade Always On do SQL ServerSQL Server Always On Availability Groups

Recomendamos Always on grupos de disponibilidade para SQL Server alta disponibilidade.We recommend Always On Availability Groups for SQL Server high availability. Com as versões anteriores ao Windows Server 2016, os Grupos de Disponibilidade AlwaysOn necessitam de um controlador de domínio e todos os nós no grupo de disponibilidade têm de estar no mesmo domínio do AD.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.

Outras camadas se conectam ao banco de dados por meio de um ouvinte de grupo de disponibilidade.Other tiers connect to the database through an availability group listener. O serviço de escuta permite que um cliente do SQL se ligue sem saber o nome da instância física do SQL Server.The listener enables a SQL client to connect without knowing the name of the physical instance of SQL Server. As VMs com acesso à base de dados têm de estar associadas ao domínio.VMs that access the database must be joined to the domain. O cliente (neste caso, a outra camada) utiliza o DNS para resolver o nome da rede virtual do serviço de escuta nos endereços IP.The client (in this case, another tier) uses DNS to resolve the listener's virtual network name into IP addresses.

Configure os Grupos de Disponibilidade AlwaysOn do SQL Server da seguinte forma:Configure the SQL Server Always On Availability Group as follows:

  1. Crie um cluster WSFC (Clustering de Ativação Pós-falha do Windows Server), um Grupo de Disponibilidade AlwaysOn do SQL Server e uma réplica primária.Create a Windows Server Failover Clustering (WSFC) cluster, a SQL Server Always On Availability Group, and a primary replica. Para obter mais informações, consulte introdução com Always on grupos de disponibilidade.For more information, see Getting Started with Always On Availability Groups.

  2. Crie um balanceador de carga interno com um endereço IP privado estático.Create an internal load balancer with a static private IP address.

  3. Criar um serviço de escuta do grupo de disponibilidade e mapeie o nome DNS do serviço de escuta do endereço IP de um balanceador de carga interno.Create an availability group listener, and map the listener's DNS name to the IP address of an internal load balancer.

  4. Crie uma regra de balanceador de carga para a porta de escuta do SQL Server (porta TCP 1433, por predefinição).Create a load balancer rule for the SQL Server listening port (TCP port 1433 by default). A regra de balanceador de carga tem de ativar o IP flutuante, também denominado Devolução Direta do Servidor.The load balancer rule must enable floating IP, also called Direct Server Return. Esta ação faz com que a VM responda diretamente ao cliente, o que permite uma ligação direta à réplica primária.This causes the VM to reply directly to the client, which enables a direct connection to the primary replica.

    Nota

    Quando o IP flutuante é ativado, o número de porta do front-end tem de ser igual ao número de porta do back-end na regra de balanceador de carga.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.

Quando um cliente do SQL tenta estabelecer ligação, o balanceador de carga encaminha o pedido de ligação para a réplica primária.When a SQL client tries to connect, the load balancer routes the connection request to the primary replica. Se houver uma ativação pós-falha para outra réplica, o Balanceador de carga encaminha automaticamente novas solicitações para uma nova réplica primária.If there is a failover to another replica, the load balancer automatically routes new requests to a new primary replica. Para obter mais informações, consulte configurar um ouvinte de ILB para SQL Server Always on grupos de disponibilidade.For more information, see Configure an ILB listener for SQL Server Always On Availability Groups.

Durante a ativação pós-falha, as ligações de cliente existentes são fechadas.During a failover, existing client connections are closed. Após a conclusão da ativação pós-falha, as novas ligações serão encaminhadas para a nova réplica primária.After the failover completes, new connections will be routed to the new primary replica.

Se a sua aplicação fizer significativamente mais leituras do que escritas, pode descarregar algumas das consultas só de leitura para uma réplica secundária.If your application makes significantly more reads than writes, you can offload some of the read-only queries to a secondary replica. Consulte usando um ouvinte para se conectar a uma réplica secundária somente leitura (roteamento somente leitura).See Using a Listener to Connect to a Read-Only Secondary Replica (Read-Only Routing).

Teste sua implantação forçando um failover manual do grupo de disponibilidade.Test your deployment by forcing a manual failover of the availability group.

JumpboxJumpbox

Não permita o acesso RDP a partir da Internet pública às VMs que executam a carga de trabalho de aplicação.Don't allow RDP access from the public Internet to the VMs that run the application workload. Em vez disso, todos os acessos RDP para estas VMs têm de passar pela jumpbox.Instead, all RDP access to these VMs must come through the jumpbox. Um administrador inicia sessão na jumpbox e, em seguida, inicia sessão noutra VM a partir da jumpbox.An administrator logs into the jumpbox, and then logs into the other VM from the jumpbox. A jumpbox permite tráfego RDP através da Internet, mas apenas a partir de endereços IP conhecidos e seguros.The jumpbox allows RDP traffic from the Internet, but only from known, safe IP addresses.

A jumpbox tem requisitos de desempenho mínimos, por isso, selecione um tamanho de VM pequeno.The jumpbox has minimal performance requirements, so select a small VM size. Crie um endereço IP público para a jumpbox.Create a public IP address for the jumpbox. Coloque a jumpbox na mesma VNet que as outras VMs, mas numa sub-rede de gestão separada.Place the jumpbox in the same VNet as the other VMs, but in a separate management subnet.

Para proteger a jumpbox, adicione uma regra NSG que permita ligações RDP apenas a partir de um conjunto de endereços IP públicos seguro.To secure the jumpbox, add an NSG rule that allows RDP connections only from a safe set of public IP addresses. Configure os NSGs para as outras sub-redes para permitir o tráfego RDP da sub-rede de gestão.Configure the NSGs for the other subnets to allow RDP traffic from the management subnet.

Considerações de escalabilidadeScalability considerations

Para as camadas Web e Business, considere o uso de conjuntos de dimensionamento de máquinas virtuais, em vez de implantar VMs separadas em um conjunto de disponibilidade.For the web and business tiers, consider using virtual machine scale sets, instead of deploying separate VMs into an availability set. Um conjunto de dimensionamento torna mais fácil de implementar e gerir um conjunto de VMs idênticas e dimensione automaticamente as VMs com base em métricas de desempenho.A scale set makes it easy to deploy and manage a set of identical VMs, and autoscale the VMs based on performance metrics. À medida que a carga nas VMs aumenta, são adicionadas automaticamente VMs adicionais ao balanceador de carga.As the load on the VMs increases, additional VMs are automatically added to the load balancer. Considere os conjuntos de dimensionamento caso precise de aumentar horizontalmente e de forma rápida as VMs ou realizar um dimensionamento automático.Consider scale sets if you need to quickly scale out VMs, or need to autoscale.

Existem duas formas básicas de configurar as VMs implementadas num conjunto de dimensionamento:There are two basic ways to configure VMs deployed in a scale set:

  • Utilize extensões para configurar a VM após a sua implementação.Use extensions to configure the VM after it's deployed. Com esta abordagem, as novas instâncias de VM podem demorar mais tempo a iniciar em comparação com uma VM sem extensões.With this approach, new VM instances may take longer to start up than a VM with no extensions.

  • Implementar um disco gerido com uma imagem de disco personalizada.Deploy a managed disk with a custom disk image. Esta opção pode ser mais rápida de implementar.This option may be quicker to deploy. No entanto, ele requer que mantenha a imagem atualizada.However, it requires you to keep the image up-to-date.

Para obter mais informações, consulte considerações de design para conjuntos de dimensionamento.For more information, see Design considerations for scale sets.

Dica

Quando utilizar uma solução de dimensionamento automático, teste-a com cargas de trabalho ao nível de produção com alguma antecedência.When using any autoscale solution, test it with production-level workloads well in advance.

Cada subscrição do Azure tem limites predefinidos implementados, incluindo um número máximo de VMs por região.Each Azure subscription has default limits in place, including a maximum number of VMs per region. Pode aumentar o limite através do preenchimento de um pedido de suporte.You can increase the limit by filing a support request. Para obter mais informações, consulte assinatura do Azure e limites de serviço, cotas e restrições.For more information, see Azure subscription and service limits, quotas, and constraints.

Considerações de disponibilidadeAvailability considerations

Se não usar conjuntos de dimensionamento de máquinas virtuais, coloque VMs para o mesmo escalão para um conjunto de disponibilidade.If you don't use virtual machine scale sets, put VMs for the same tier into an availability set. Crie pelo menos duas VMs no conjunto de disponibilidade para dar suporte ao SLA de disponibilidade para VMs do Azure.Create at least two VMs in the availability set to support the availability SLA for Azure VMs. Para obter mais informações, consulte gerenciar a disponibilidade de máquinas virtuais.For more information, see Manage the availability of virtual machines. Utilizam automaticamente conjuntos de dimensionamento grupos de posicionamento, que atuam como um conjunto de disponibilidade implícito.Scale sets automatically use placement groups, which act as an implicit availability set.

O balanceador de carga usa investigações de integridade para monitorar a disponibilidade de instâncias de VM.The load balancer uses health probes to monitor the availability of VM instances. Se uma sonda não é possível aceder a uma instância durante um período de tempo limite, o Balanceador de carga deixará de enviar o tráfego para essa VM.If a probe can't reach an instance within a timeout period, the load balancer stops sending traffic to that VM. No entanto, o balanceador de carga continuará a sondar e, se a VM ficar novamente disponível, o balanceador de carga retomará o envio de tráfego para essa VM.However, the load balancer will continue to probe, and if the VM becomes available again, the load balancer resumes sending traffic to that VM.

Seguem-se algumas recomendações para as sondas de estado de funcionamento do balanceador de carga:Here are some recommendations on load balancer health probes:

  • As sondas podem testar HTTP ou TCP.Probes can test either HTTP or TCP. Se as VMs estiverem em execução num servidor HTTP, crie uma sonda HTTP.If your VMs run an HTTP server, create an HTTP probe. Caso contrário, crie uma sonda TCP.Otherwise create a TCP probe.
  • Para uma sonda HTTP, especifique o caminho para um ponto final HTTP.For an HTTP probe, specify the path to an HTTP endpoint. A sonda verifica a existência de uma resposta HTTP 200 a partir deste caminho.The probe checks for an HTTP 200 response from this path. Este caminho pode ser o caminho de raiz ("/") ou um ponto de final de monitorização de estado de funcionamento que implementa algumas lógicas personalizadas para verificar o estado de funcionamento da aplicação.This path can be the root path ("/"), or a health-monitoring endpoint that implements some custom logic to check the health of the application. O ponto final tem de permitir pedidos HTTP anónimos.The endpoint must allow anonymous HTTP requests.
  • A investigação é enviada de um endereço IP conhecido, 168.63.129.16.The probe is sent from a known IP address, 168.63.129.16. Não bloqueiam o tráfego de ou para este endereço IP em políticas de firewall ou as regras do NSG.Don't block traffic to or from this IP address in any firewall policies or NSG rules.
  • Use os logs de investigação de integridade para exibir o status das investigações de integridade.Use health probe logs to view the status of the health probes. Ative o registo no Portal do Azure para cada balanceador de carga.Enable logging in the Azure portal for each load balancer. Os registos são escritos no armazenamento de blobs do Azure eLogs are written to Azure Blob storage. Os registos mostram o número de VMs não estão a receber o tráfego de rede devido a respostas de sonda com falha.The logs show how many VMs aren't getting network traffic because of failed probe responses.

Se você precisar de mais disponibilidade do que o SLA do Azure para VMs fornece, considere a replicação do aplicativo em duas regiões, usando o Gerenciador de tráfego do Azure para failover.If you need higher availability than the Azure SLA for VMs provides, consider replication the application across two regions, using Azure Traffic Manager for failover. Para obter mais informações, consulte aplicativo de N camadas de várias regiões para alta disponibilidade.For more information, see Multi-region N-tier application for high availability.

Considerações de segurançaSecurity considerations

As redes virtuais são um limite de isolamento de tráfego no Azure.Virtual networks are a traffic isolation boundary in Azure. As VMs numa VNet não é possível comunicar diretamente com as VMs numa VNet diferente.VMs in one VNet can't communicate directly with VMs in a different VNet. As VMs na mesma VNet podem se comunicar, a menos que você crie NSGs ( grupos de segurança de rede ) para restringir o tráfego.VMs within the same VNet can communicate, unless you create network security groups (NSGs) to restrict traffic. Para obter mais informações, consulte serviços de nuvem da Microsoft e segurança de rede.For more information, see Microsoft cloud services and network security.

REDE DE PERÍMETRO.DMZ. Considere adicionar uma aplicação virtual de rede (NVA) para criar uma rede de Perímetro entre a Internet e a rede virtual do Azure.Consider adding a network virtual appliance (NVA) to create a DMZ between the Internet and the Azure virtual network. A NVA é um termo genérico para uma aplicação virtual que pode realizar tarefas relacionadas com a rede, tais como firewall, inspeção de pacotes, auditoria e encaminhamento personalizado.NVA is a generic term for a virtual appliance that can perform network-related tasks, such as firewall, packet inspection, auditing, and custom routing. Para obter mais informações, consulte implementando uma DMZ entre o Azure e a Internet.For more information, see Implementing a DMZ between Azure and the Internet.

Encriptação.Encryption. Criptografe dados confidenciais em repouso e use Azure Key Vault para gerenciar as chaves de criptografia de banco de dado.Encrypt sensitive data at rest and use Azure Key Vault to manage the database encryption keys. O Key Vault pode armazenar chaves de encriptação nos módulos de segurança de hardware (HSMs).Key Vault can store encryption keys in hardware security modules (HSMs). Para obter mais informações, consulte o artigo Configurar a Integração do Cofre de Chaves do Azure para o SQL Server em VMs do Azure.For more information, see Configure Azure Key Vault Integration for SQL Server on Azure VMs. É também recomendado para armazenar segredos da aplicação, como cadeias de ligação de base de dados no Cofre de chaves.It's also recommended to store application secrets, such as database connection strings, in Key Vault.

Proteção contra DDoS.DDoS protection. A plataforma do Azure fornece a proteção contra DDoS básica, por predefinição.The Azure platform provides basic DDoS protection by default. Esta proteção básica visa proteger a infraestrutura do Azure como um todo.This basic protection is targeted at protecting the Azure infrastructure as a whole. Embora a proteção básica contra DDoS seja habilitada automaticamente, é recomendável usar a proteção contra DDoS Standard.Although basic DDoS protection is automatically enabled, we recommend using DDoS Protection Standard. Proteção padrão usa otimização adaptável, com base nos padrões de tráfego de rede da sua aplicação, para detetar ameaças.Standard protection uses adaptive tuning, based on your application's network traffic patterns, to detect threats. Isto permite que a aplicar atenuações contra ataques de DDoS podem passar despercebidas pelas políticas de DDoS de toda a infraestrutura.This allows it to apply mitigations against DDoS attacks that might go unnoticed by the infrastructure-wide DDoS policies. Proteção padrão também fornece alertas, telemetria e analytics através do Azure Monitor.Standard protection also provides alerting, telemetry, and analytics through Azure Monitor. Para obter mais informações, consulte proteção contra DDoS do Azure: Práticas recomendadas e arquiteturasde referência.For more information, see Azure DDoS Protection: Best practices and reference architectures.

Implementar a soluçãoDeploy the solution

Uma implementação para esta arquitetura de referência está disponível no GitHub.A deployment for this reference architecture is available on GitHub. Toda a implementação pode demorar até duas horas, que inclui a execução dos scripts para configurar o AD DS, o cluster de ativação pós-falha do Windows Server e o grupo de disponibilidade do SQL Server.The entire deployment can take up to two hours, which includes running the scripts to configure AD DS, the Windows Server failover cluster, and the SQL Server availability group.

Pré-requisitosPrerequisites

  1. Clone, copie ou transfira o ficheiro zip para o repositório do GitHub das arquiteturas de referência.Clone, fork, or download the zip file for the reference architectures GitHub repository.

  2. Instale a CLI 2.0 do Azure.Install Azure CLI 2.0.

  3. Instale o Node.js e o NPMInstall Node and NPM

  4. Instale o pacote npm dos blocos modulares do Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  5. Numa linha de comandos, linha de comandos do Bash ou linha de comandos do PowerShell, inicie sessão na sua conta do Azure da seguinte forma:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Passos da implementaçãoDeployment steps

  1. Execute o seguinte comando para criar um grupo de recursos.Run the following command to create a resource group.

    az group create --location <location> --name <resource-group-name>
    
  2. Execute o seguinte comando para criar uma conta de armazenamento para o testemunho de nuvem.Run the following command to create a Storage account for the Cloud Witness.

    az storage account create --location <location> \
      --name <storage-account-name> \
      --resource-group <resource-group-name> \
      --sku Standard_LRS
    
  3. Navegue para o virtual-machines\n-tier-windows pasta do repositório de GitHub de arquiteturas de referência.Navigate to the virtual-machines\n-tier-windows folder of the reference architectures GitHub repository.

  4. Abra o ficheiro n-tier-windows.json.Open the n-tier-windows.json file.

  5. Pesquise todas as instâncias de "witnessStorageAccount" e substitua o texto do espaço reservado pelo nome da conta de armazenamento da etapa 2.Search for all instances of "witnessStorageAccount" and replace the placeholder text with the name of the Storage account from step 2.

    "witnessStorageAccount": "[replace-with-storageaccountname]",
    
  6. Execute o seguinte comando para listar as chaves de conta para a conta de armazenamento.Run the following command to list the account keys for the storage account.

    az storage account keys list \
      --account-name <storage-account-name> \
      --resource-group <resource-group-name>
    

    O resultado deverá ser semelhante ao seguinte.The output should look like the following. Copie o valor de key1.Copy the value of key1.

    [
    {
        "keyName": "key1",
        "permissions": "Full",
        "value": "..."
    },
    {
        "keyName": "key2",
        "permissions": "Full",
        "value": "..."
    }
    ]
    
  7. Na n-tier-windows.json do ficheiro, procure a todas as instâncias de "witnessStorageAccountKey" e cole a chave da conta.In the n-tier-windows.json file, search for all instances of "witnessStorageAccountKey" and paste in the account key.

    "witnessStorageAccountKey": "[replace-with-storagekey]"
    
  8. Na n-tier-windows.json ficheiro, procure todas as instâncias de [replace-with-password] e [replace-with-sql-password] substituí-las por uma palavra-passe segura.In the n-tier-windows.json file, search for all instances of [replace-with-password] and [replace-with-sql-password] replace them with a strong password. Guarde o ficheiro.Save the file.

    Nota

    Se você alterar o nome de usuário do administrador, também deverá atualizar extensions os blocos no arquivo JSON.If you change the administrator user name, you must also update the extensions blocks in the JSON file.

  9. Execute o seguinte comando para implementar a arquitetura.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
    

Para obter mais informações sobre como implantar essa arquitetura de referência de exemplo usando os blocos de construção do Azure, visite o repositório do GitHub.For more information on deploying this sample reference architecture using Azure Building Blocks, visit the GitHub repository.

Passos SeguintesNext steps