Executar aplicativo de N camadas em várias regiões do Azure para ter alta disponibilidadeRun an N-tier application in multiple Azure regions for high availability

Essa arquitetura de referência mostra um conjunto de práticas comprovadas para executar um aplicativo de N camadas em várias regiões do Azure, a fim de alcançar a disponibilidade e uma infraestrutura de recuperação de desastres robusta.This reference architecture shows a set of proven practices for running an N-tier application in multiple Azure regions, in order to achieve availability and a robust disaster recovery infrastructure.

Arquitetura de rede altamente disponível para aplicativos de N camadas do Azure"

Baixe um Arquivo Visio dessa arquitetura.Download a Visio file of this architecture.

ArquiteturaArchitecture

Essa arquitetura baseia-se naquela mostrada em Aplicativo de N camadas com o SQL Server.This architecture builds on the one shown in N-tier application with SQL Server.

  • Regiões primárias e secundárias.Primary and secondary regions. Use duas regiões para obter alta disponibilidade.Use two regions to achieve higher availability. Uma delas é a região primária.One is the primary region. A outra região destina-se ao failover.The other region is for failover.

  • Gerenciador de tráfego do Azure.Azure Traffic Manager. O Gerenciador de Tráfego roteia as solicitações de entrada para uma das regiões.Traffic Manager routes incoming requests to one of the regions. Durante as operações normais, ele roteia as solicitações para a região primária.During normal operations, it routes requests to the primary region. Se essa região ficar indisponível, o Gerenciador de Tráfego fará failover para a região secundária.If that region becomes unavailable, Traffic Manager fails over to the secondary region. Para obter mais informações, consulte a Configuração do Gerenciador de Tráfego.For more information, see the section Traffic Manager configuration.

  • Grupos de recursos.Resource groups. Crie grupos de recursos separados para a região primária, a região secundária e para o Gerenciador de Tráfego.Create separate resource groups for the primary region, the secondary region, and for Traffic Manager. Isso oferece flexibilidade para gerenciar cada região como uma única coleção de recursos.This gives you the flexibility to manage each region as a single collection of resources. Por exemplo, você poderia reimplantar uma região sem interromper a outra.For example, you could redeploy one region, without taking down the other one. Vincule os grupos de recursos para ser possível executar uma consulta para listar todos os recursos para o aplicativo.Link the resource groups, so that you can run a query to list all the resources for the application.

  • Redes virtuais.Virtual networks. Crie uma rede virtual separada para cada região.Create a separate virtual network for each region. Verifique se que os espaços de endereço não se sobrepõem.Make sure the address spaces do not overlap.

  • SQL Server Always on grupo de disponibilidade.SQL Server Always On Availability Group. Se você utilizar o SQL Server, recomendamos usar os Grupos de Disponibilidade Always On para ter alta disponibilidade.If you are using SQL Server, we recommend SQL Always On Availability Groups for high availability. Crie um único grupo de disponibilidade que inclui instâncias do SQL Server em ambas as regiões.Create a single availability group that includes the SQL Server instances in both regions.

    Observação

    Além disso, considere usar o Banco de Dados SQL do Azure, que fornece um banco de dados relacional como um serviço de nuvem.Also consider Azure SQL Database, which provides a relational database as a cloud service. Com o Banco de Dados SQL, você não precisa configurar um grupo de disponibilidade ou gerenciar o failover.With SQL Database, you don't need to configure an availability group or manage failover.

  • Emparelhamento de rede virtual.Virtual network peering. Emparelhar as duas redes virtuais para permitir a replicação de dados da região primária para a região secundária.Peer the two virtual networks to allow data replication from the primary region to the secondary region. Para obter mais informações, consulte Emparelhamento de rede virtual do Azure.For more information, see Virtual network peering.

RecomendaçõesRecommendations

Uma arquitetura de várias regiões pode fornecer uma disponibilidade maior que a implantação em uma única região.A multi-region architecture can provide higher availability than deploying to a single region. Se uma interrupção regional afetar a região primária, você poderá usar o Gerenciador de Tráfego para fazer failover para a região secundária.If a regional outage affects the primary region, you can use Traffic Manager to fail over to the secondary region. Essa arquitetura também poderá ajudar a se um subsistema individual do aplicativo falhar.This architecture can also help if an individual subsystem of the application fails.

Há várias abordagens gerais para alcançar alta disponibilidade em várias regiões:There are several general approaches to achieving high availability across regions:

  • Ativo/passivo com espera ativa.Active/passive with hot standby. O tráfego vai para uma região, enquanto a outra aguarda em espera ativa.Traffic goes to one region, while the other waits on hot standby. A espera ativa significa que as VMs na região secundária são alocadas e ficam em execução a todo momentos.Hot standby means the VMs in the secondary region are allocated and running at all times.
  • Ativo/passivo com espera passiva.Active/passive with cold standby. O tráfego vai para uma região, enquanto a outra aguarda em espera passiva.Traffic goes to one region, while the other waits on cold standby. A espera passiva significa que as VMs na região secundária não são alocadas até serem necessárias para failover.Cold standby means the VMs in the secondary region are not allocated until needed for failover. Essa abordagem custa menos para ser executada, mas geralmente leva mais tempo para ficar online durante uma falha.This approach costs less to run, but will generally take longer to come online during a failure.
  • Ativa/ativa.Active/active. Ambas as regiões ficam ativas e a carga das solicitações é balanceada entre elas.Both regions are active, and requests are load balanced between them. Se uma região ficar indisponível, ela será retirada da rotação.If one region becomes unavailable, it is taken out of rotation.

Essa arquitetura de referência se concentra em ativo/passivo com espera ativa, usando o Gerenciador de Tráfego para o failover.This reference architecture focuses on active/passive with hot standby, using Traffic Manager for failover. Observe que você poderia implantar um pequeno número de VMs para espera ativa e, em seguida, aumentar conforme necessário.Note that you could deploy a small number of VMs for hot standby and then scale out as needed.

Emparelhamento regionalRegional pairing

Cada região do Azure é emparelhada com outra na mesma área geográfica.Each Azure region is paired with another region within the same geography. Em geral, escolha regiões do mesmo par regional (por exemplo, Leste dos EUA 2 e EUA Central).In general, choose regions from the same regional pair (for example, East US 2 and US Central). Os benefícios de se fazer isso são:Benefits of doing so include:

  • No caso de uma interrupção ampla, a recuperação de pelo menos uma região de cada par é priorizada.If there is a broad outage, recovery of at least one region out of every pair is prioritized.
  • As atualizações planejadas do sistema do Azure são distribuídas em regiões emparelhadas sequencialmente para minimizar o possível tempo de inatividade.Planned Azure system updates are rolled out to paired regions sequentially, to minimize possible downtime.
  • Os pares residem na mesma geografia para atender aos requisitos de residência de dados.Pairs reside within the same geography, to meet data residency requirements.

No entanto, verifique se ambas as regiões dão suporte a todos os serviços do Azure necessários para seu aplicativo (consulte Serviços por região).However, make sure that both regions support all of the Azure services needed for your application (see Services by region). Para saber mais sobre pares regionais, confira Continuidade dos negócios e recuperação de desastres (BCDR): Regiões Combinadas do Azure.For more information about regional pairs, see Business continuity and disaster recovery (BCDR): Azure Paired Regions.

Configuração do Gerenciador de TráfegoTraffic Manager configuration

Considere os seguintes pontos ao configurar o Gerenciador de Tráfego:Consider the following points when configuring Traffic Manager:

  • Roteamento.Routing. O Gerenciador de Tráfego dá suporte a vários algoritmos de roteamento.Traffic Manager supports several routing algorithms. Para o cenário descrito neste artigo, use roteamento prioritário (anteriormente chamado de roteamento de failover).For the scenario described in this article, use priority routing (formerly called failover routing). Com essa configuração, o Gerenciador de Tráfego envia todas as solicitações para a região primária, a menos que ela fique inacessível.With this setting, Traffic Manager sends all requests to the primary region, unless the primary region becomes unreachable. Nesse ponto, ele automaticamente faz failover para a região secundária.At that point, it automatically fails over to the secondary region. Consulte Configurar o método de roteamento de failover.See Configure Failover routing method.
  • Investigação de integridade.Health probe. O Gerenciador de Tráfego usa uma investigação HTTP (ou HTTPS) para monitorar a disponibilidade de cada região.Traffic Manager uses an HTTP (or HTTPS) probe to monitor the availability of each region. A investigação verifica uma resposta HTTP 200 para um caminho de URL especificado.The probe checks for an HTTP 200 response for a specified URL path. Como uma prática recomendada, crie um ponto de extremidade que relata a integridade geral do aplicativo e use esse ponto de extremidade para a investigação de integridade.As a best practice, create an endpoint that reports the overall health of the application, and use this endpoint for the health probe. Caso contrário, a investigação pode relatar um ponto de extremidade íntegro quando partes essenciais do aplicativo estão falhando na verdade.Otherwise, the probe might report a healthy endpoint when critical parts of the application are actually failing. Para obter mais informações, consulte padrão de monitoramento do ponto de extremidade de integridade.For more information, see Health Endpoint Monitoring pattern.

Quando o Gerenciador de Tráfego faz failover, há um período em que os clientes não podem acessar o aplicativo.When Traffic Manager fails over there is a period of time when clients cannot reach the application. A duração é afetada pelos seguintes fatores:The duration is affected by the following factors:

  • A investigação de integridade precisa detectar que a região primária ficou inacessível.The health probe must detect that the primary region has become unreachable.
  • Os servidores DNS precisam atualizar os registros DNS armazenados em cache para o endereço IP, dependendo da TTL (vida útil) DNS.DNS servers must update the cached DNS records for the IP address, which depends on the DNS time-to-live (TTL). A TTL padrão é 300 segundos (5 minutos), mas você pode configurar esse valor ao criar o perfil do Gerenciador de Tráfego.The default TTL is 300 seconds (5 minutes), but you can configure this value when you create the Traffic Manager profile.

Para saber mais, consulte Sobre o monitoramento do Gerenciador de Tráfego.For details, see About Traffic Manager Monitoring.

Em caso de falha do Gerenciador de Tráfego, é recomendável executar um failback manual em vez de implementar um failback automático.If Traffic Manager fails over, we recommend performing a manual failback rather than implementing an automatic failback. Caso contrário, você pode criar uma situação em que o aplicativo fica alternando entre as regiões.Otherwise, you can create a situation where the application flips back and forth between regions. Verifique se todos os subsistemas de aplicativo estão íntegros antes de realizar o failback.Verify that all application subsystems are healthy before failing back.

Observe que o Gerenciador de Tráfego realiza failback automaticamente por padrão.Note that Traffic Manager automatically fails back by default. Para evitar isso, diminua manualmente a prioridade da região primária após um evento de failover.To prevent this, manually lower the priority of the primary region after a failover event. Por exemplo, suponha que a região primária tem prioridade 1 e a secundária tem prioridade 2.For example, suppose the primary region is priority 1 and the secondary is priority 2. Após um failover, defina a região primária para a prioridade 3, para impedir o failback automático.After a failover, set the primary region to priority 3, to prevent automatic failback. Quando você estiver pronto retornar para ela, atualize a prioridade para 1.When you are ready to switch back, update the priority to 1.

O seguinte comando da CLI do Azure atualiza a prioridade:The following Azure CLI command updates the priority:

az network traffic-manager endpoint update --resource-group <resource-group> --profile-name <profile>
    --name <endpoint-name> --type azureEndpoints --priority 3

Outra abordagem é desabilitar temporariamente o ponto de extremidade até que você esteja pronto para realizar failback:Another approach is to temporarily disable the endpoint until you are ready to fail back:

az network traffic-manager endpoint update --resource-group <resource-group> --profile-name <profile>
    --name <endpoint-name> --type azureEndpoints --endpoint-status Disabled

Dependendo da causa de um failover, será necessário reimplantar os recursos dentro de uma região.Depending on the cause of a failover, you might need to redeploy the resources within a region. Antes de fazer o failback, execute um teste de prontidão operacional.Before failing back, perform an operational readiness test. O teste deverá verificar o seguinte:The test should verify things like:

  • As VMs estão configuradas corretamente.VMs are configured correctly. (Todo o software necessário está instalado, o IIS está em execução e assim por diante.)(All required software is installed, IIS is running, and so on.)
  • Os subsistemas de aplicativos estão íntegros.Application subsystems are healthy.
  • Testes funcionais.Functional testing. (Por exemplo, a camada de banco de dados pode ser acessada da camada da Web.)(For example, the database tier is reachable from the web tier.)

Configurar Grupos de Disponibilidade Always On do SQL ServerConfigure SQL Server Always On Availability Groups

Antes do Windows Server 2016, os Grupos de Disponibilidade Always On do SQL Server exigiam um controlador de domínio e todos os nós no grupo de disponibilidade precisavam estar no mesmo domínio do AD (Active Directory).Prior to Windows Server 2016, SQL Server Always On Availability Groups require a domain controller, and all nodes in the availability group must be in the same Active Directory (AD) domain.

Para configurar o grupo de disponibilidade:To configure the availability group:

  • No mínimo, coloque dois controladores de domínio em cada região.At a minimum, place two domain controllers in each region.

  • Forneça um endereço IP estático para cada controlador de domínio.Give each domain controller a static IP address.

  • Emparelhar as duas redes virtuais para habilitar a comunicação entre elas.Peer the two virtual networks to enable communication between them.

  • Para cada rede virtual, adicione os endereços IP dos controladores de domínio (de ambas as regiões) à lista de servidores DNS.For each virtual network, add the IP addresses of the domain controllers (from both regions) to the DNS server list. Você pode usar o comando da CLI a seguir.You can use the following CLI command. Para obter mais informações, consulte alterar servidores DNS.For more information, see Change DNS servers.

    az network vnet update --resource-group <resource-group> --name <vnet-name> --dns-servers "10.0.0.4,10.0.0.6,172.16.0.4,172.16.0.6"
    
  • Crie um cluster WSFC (Clustering de Failover do Windows Server) que inclui as instâncias do SQL Server em ambas as regiões.Create a Windows Server Failover Clustering (WSFC) cluster that includes the SQL Server instances in both regions.

  • Crie um único Grupo de Disponibilidade Always On do SQL Server que inclui instâncias do SQL Server em ambas as regiões primária e secundária.Create a SQL Server Always On Availability Group that includes the SQL Server instances in both the primary and secondary regions. Consulte Estendendo o Grupo de Disponibilidade Always On para o Datacenter Remoto do Azure (PowerShell) para ver as etapas.See Extending Always On Availability Group to Remote Azure Datacenter (PowerShell) for the steps.

    • Coloque a réplica primária na região primária.Put the primary replica in the primary region.

    • Coloque uma ou mais réplicas secundárias na região primária.Put one or more secondary replicas in the primary region. Configure-as para usar a confirmação síncrona com failover automático.Configure these to use synchronous commit with automatic failover.

    • Coloque uma ou mais réplicas secundárias na região secundária.Put one or more secondary replicas in the secondary region. Configure-as para usar a confirmação assíncrona, por motivos de desempenho.Configure these to use asynchronous commit, for performance reasons. (Caso contrário, todas as transações de T-SQL precisarão aguardar uma viagem de ida e volta pela rede para a região secundária.)(Otherwise, all T-SQL transactions have to wait on a round trip over the network to the secondary region.)

      Observação

      Réplicas de confirmação assíncrona não dão suporte a failover automático.Asynchronous commit replicas do not support automatic failover.

Considerações sobre disponibilidadeAvailability considerations

Com um aplicativo complexo de N camadas, pode não ser necessário replicar o aplicativo inteiro na região secundária.With a complex N-tier app, you may not need to replicate the entire application in the secondary region. Em vez disso, você pode replicar apenas um subsistema crítico que é necessário para dar suporte à continuidade de negócios.Instead, you might just replicate a critical subsystem that is needed to support business continuity.

O Gerenciador de Tráfego é um possível ponto de falha no sistema.Traffic Manager is a possible failure point in the system. Se o serviço do Gerenciador de Tráfego falhar, os clientes não poderão acessar seu aplicativo durante o tempo de inatividade.If the Traffic Manager service fails, clients cannot access your application during the downtime. Examine o SLA do Gerenciador de Tráfego e determine se usar apenas o Gerenciador de Tráfego atende aos seus requisitos de negócios para alta disponibilidade.Review the Traffic Manager SLA, and determine whether using Traffic Manager alone meets your business requirements for high availability. Caso contrário, considere adicionar outra solução de gerenciamento de tráfego como um failback.If not, consider adding another traffic management solution as a failback. Se o serviço do Gerenciador de Tráfego do Azure falhar, altere os registros CNAME no DNS para apontar para outro serviço de gerenciamento de tráfego.If the Azure Traffic Manager service fails, change your CNAME records in DNS to point to the other traffic management service. (Esta etapa deve ser executada manualmente e seu aplicativo estará indisponível até que as alterações de DNS sejam propagadas.)(This step must be performed manually, and your application will be unavailable until the DNS changes are propagated.)

Para o cluster do SQL Server, há dois cenários de failover a serem considerados:For the SQL Server cluster, there are two failover scenarios to consider:

  • Todas as réplicas de banco de dados do SQL Server na região primária falham.All of the SQL Server database replicas in the primary region fail. Isso pode acontecer durante uma interrupção regional, por exemplo.For example, this could happen during a regional outage. Nesse caso, você deve fazer failover do grupo de disponibilidade manualmente, mesmo que o Gerenciador de Tráfego faça failover automaticamente no front-end.In that case, you must manually fail over the availability group, even though Traffic Manager automatically fails over on the front end. Siga as etapas em Executar um Failover Manual Forçado de um Grupo de Disponibilidade do SQL Server, que descreve como executar um failover forçado usando o SQL Server Management Studio, o Transact-SQL ou o PowerShell no SQL Server 2016.Follow the steps in Perform a Forced Manual Failover of a SQL Server Availability Group, which describes how to perform a forced failover by using SQL Server Management Studio, Transact-SQL, or PowerShell in SQL Server 2016.

    Aviso

    Com o failover forçado, há um risco de perda de dados.With forced failover, there is a risk of data loss. Depois que a região principal estiver novamente online, crie um instantâneo do banco de dados e usar tablediff para encontrar as diferenças.Once the primary region is back online, take a snapshot of the database and use tablediff to find the differences.

  • O Gerenciador de Tráfego faz failover para a região secundária, mas a réplica primária do Banco de Dados do SQL Server ainda está disponível.Traffic Manager fails over to the secondary region, but the primary SQL Server database replica is still available. A camada de front-end pode falhar sem afetar as VMs do SQL Server, por exemplo.For example, the front-end tier might fail, without affecting the SQL Server VMs. Nesse caso, o tráfego da Internet é roteado para a região secundária e essa região ainda pode se conectar à réplica primária.In that case, Internet traffic is routed to the secondary region, and that region can still connect to the primary replica. No entanto, haverá aumento da latência, pois as conexões do SQL Server ocorrem entre regiões.However, there will be increased latency, because the SQL Server connections are going across regions. Nessa situação, você deve executar um failover manual da seguinte maneira:In this situation, you should perform a manual failover as follows:

    1. Alterne temporariamente uma réplica de banco de dados do SQL Server na região secundária para confirmação síncrona.Temporarily switch a SQL Server database replica in the secondary region to synchronous commit. Isso garante que não haja perda de dados durante o failover.This ensures there won't be data loss during the failover.
    2. Failover para essa réplica.Fail over to that replica.
    3. Após realizar o failback para a região primária, restaure a configuração de confirmação assíncrona.When you fail back to the primary region, restore the asynchronous commit setting.

Considerações sobre capacidade de gerenciamentoManageability considerations

Quando você atualizar a implantação, atualize uma região de cada vez para reduzir a chance de uma falha global devido a uma configuração incorreta ou um erro no aplicativo.When you update your deployment, update one region at a time to reduce the chance of a global failure from an incorrect configuration or an error in the application.

Teste a resiliência do sistema a falhas.Test the resiliency of the system to failures. Aqui estão alguns cenários comuns de falha para testar:Here are some common failure scenarios to test:

  • Desligamento de instâncias de VM.Shut down VM instances.
  • Recursos de pressão, como CPU e memória.Pressure resources such as CPU and memory.
  • Desconectar/atraso de rede.Disconnect/delay network.
  • Falha de processos.Crash processes.
  • Expiração de certificados.Expire certificates.
  • Simular falhas de hardware.Simulate hardware faults.
  • Desligamento do serviço DNS nos controladores de domínio.Shut down the DNS service on the domain controllers.

Meça o tempo de recuperação e verifique se ele cumpre seus requisitos de negócios.Measure the recovery times and verify they meet your business requirements. Teste também combinações dos modos de falha.Test combinations of failure modes, as well.

Considerações de custoCost considerations

Use a calculadora de preços do Azure para estimar os custos.Use the Azure Pricing Calculator to estimates costs. Aqui estão algumas outras considerações.Here are some other considerations.

conjuntos de escala de máquina virtualVirtual machine scale sets

Os conjuntos de dimensionamento de máquinas virtuais estão disponíveis em todos os tamanhos de VM do Windows.Virtual machine scale sets are available on all Windows VM sizes. Você é cobrado somente pelas VMs do Azure implantadas e quaisquer recursos adicionais de infraestrutura subjacente consumidos, como armazenamento e rede.You are only charged for the Azure VMs you deploy and any additional underlying infrastructure resources consumed such as storage and networking. Não há encargos incrementais para o serviço de conjuntos de dimensionamento de máquinas virtuais.There are no incremental charges for the Virtual machine scale sets service.

Para obter as opções de preços de VMs únicas, consulte preços de VMs do Windows.For single VMs pricing options, see Windows VMs pricing.

SQL ServerSQL server

Se você escolher Azure SQL DBaas, poderá economizar em custo porque não precisa configurar um grupo de disponibilidade Always On e computadores do controlador de domínio.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. Há várias opções de implantação a partir de um banco de dados individual até a instância gerenciada ou pools elásticos.There are several deployment options starting from single database up to managed instance, or elastic pools. Para obter mais informações, consulte preços do Azure SQL.For more information see Azure SQL pricing.

Para as opções de preços das VMs do SQL Server, consulte preços de VMs do SQL.For SQL server VMs pricing options, see SQL VMs pricing.

Balanceadores de cargaLoad balancers

Você é cobrado apenas pelo número de regras de balanceamento de carga e de saída configuradas.You are charged only for the number of configured load-balancing and outbound rules. As regras de NAT de entrada são gratuitas.Inbound NAT rules are free. Não há cobrança por hora para o Standard Load Balancer quando nenhuma regra é configurada.There is no hourly charge for the Standard Load Balancer when no rules are configured.

Preços do Gerenciador de tráfegoTraffic Manager pricing

A cobrança do Gerenciador de tráfego é baseada no número de consultas de DNS recebidas, com um desconto para os serviços que recebem mais de 1.000.000.000 consultas mensais.Traffic Manager billing is based on the number of DNS queries received, with a discount for services receiving more than 1 billion monthly queries. Você também é cobrado por cada ponto de extremidade monitorado.You are also charged for each monitored endpoint.

Para obter mais informações, confira a seção de custo em Estrutura Bem Projetada do Microsoft Azure.For more information, see the cost section in Microsoft Azure Well-Architected Framework.

Preço de emparelhamento de VNETVNET-Peering pricing

Uma implantação de alta disponibilidade que aproveita várias regiões do Azure fará uso de emparelhamento de VNET.A high-availability deployment that leverages multiple Azure Regions will make use of VNET-Peering. Há diferentes encargos para o emparelhamento VNET na mesma região e para o emparelhamento global de VNET.There are different charges for VNET-Peering within the same region and for Global VNET-Peering.

Para obter mais informações, consulte preços de rede virtual.For more information, see Virtual Network Pricing.

Considerações de DevOpsDevOps considerations

Use um único modelo de Azure Resource Manager para provisionar os recursos do Azure e suas dependências.Use a single Azure Resource Manager template for provisioning the Azure resources and its dependencies. Use o mesmo modelo para implantar os recursos em regiões primárias e secundárias.Use the same template to deploy the resources to both primary and secondary regions. Inclua todos os recursos na mesma rede virtual para que eles sejam isolados na mesma carga de trabalho básica, o que torna mais fácil associar os recursos específicos da carga de trabalho a uma equipe do DevOps, para que a equipe possa gerenciar de forma independente todos os aspectos desses recursos.Include all the resources in the same virtual network so they are isolated in the same basic workload, that makes it easier to associate the workload's specific resources to a DevOps team, so that the team can independently manage all aspects of those resources. Esse isolamento permite que a equipe e os serviços do DevOps executem a integração contínua e a entrega contínua (CI/CD).This isolation enables DevOps Team and Services to perform continuous integration and continuous delivery (CI/CD).

Além disso, você pode usar diferentes modelos de Azure Resource Manager e integrá-los ao Azure DevOps Services para provisionar ambientes diferentes em minutos, por exemplo, para replicar a produção, como cenários ou ambientes de teste de carga, somente quando necessário, economizando custo.Also, you can use different Azure Resource Manager 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.

Considere usar o Azure Monitor para analisar e otimizar o desempenho de sua infraestrutura e monitorar e diagnosticar problemas de rede sem fazer logon em suas máquinas virtuais.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. A Application Insights é, na verdade, um dos componentes do Azure Monitor, que fornece métricas e logs avançados para verificar o estado do seu cenário completo do Azure.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 ajudará a seguir o estado da sua infraestrutura.Azure Monitor will help you to follow the state of your infrastructure.

Certifique-se de não apenas monitorar seus elementos de computação que dão suporte ao código do aplicativo, mas também à plataforma de dados, em particular seus bancos de dados, uma vez que um baixo desempenho da camada do aplicativo pode ter conseqüências sérias.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.

Para testar o ambiente do Azure onde os aplicativos estão em execução, ele deve ser controlado por versão e implantado por meio dos mesmos mecanismos que o código do aplicativo, então ele também pode ser testado e validado usando paradigmas de teste DevOps.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.

Para obter mais informações, consulte a seção excelência operacional em Microsoft Azure estrutura bem projetada.For more information, see the Operational Excellence section in Microsoft Azure Well-Architected Framework.

A arquitetura a seguir usa algumas das mesmas tecnologias:The following architecture uses some of the same technologies: