Compartilhar via


Confiabilidade no serviço de desidentificação do Serviços de Dados de Saúde do Azure (versão prévia)

Este artigo descreve o suporte à confiabilidade no serviço de desidentificação (versão prévia). Para obter uma visão geral mais detalhada dos princípios de confiabilidade no Azure, confira Confiabilidade do Azure.

Recuperação de desastre entre regiões

A DR (recuperação de desastre) trata da recuperação após eventos de alto impacto, como desastres naturais ou implantações com falha, que resultam em tempo de inatividade e perda de dados. Seja qual for a causa, a melhor solução para um desastre é um plano de DR bem definido e testado e um design de aplicativo que dê suporte ativo à DR. Antes de começar a pensar em criar seu plano de recuperação de desastre, confira Recomendações para criar uma estratégia de recuperação de desastre.

Quando o assunto é DR, a Microsoft usa o modelo de responsabilidade compartilhada. Em um modelo de responsabilidade compartilhada, a Microsoft garante que a infraestrutura de linha de base e os serviços de plataforma estejam disponíveis. Ao mesmo tempo, muitos serviços do Azure não replicam dados automaticamente nem retornam de uma região com falha para a replicação cruzada em outra região habilitada. Para esses serviços, você é responsável por configurar um plano de recuperação de desastres que funcione para sua carga de trabalho. A maioria dos serviços executados nas ofertas de PaaS (plataforma como serviço) do Azure fornece recursos e diretrizes para dar suporte à DR. Além disso, você pode usar recursos específicos do serviço para dar suporte a uma recuperação rápida, a fim de ajudar a desenvolver seu plano de DR.

Cada serviço de desidentificação (versão prévia) é implantado em uma única região do Azure. Se uma região inteira não estiver disponível ou o desempenho estiver significativamente degradado:

  • A funcionalidade do painel de controle do ARM é limitada a somente leitura durante a interrupção. A Microsoft sempre faz backup fora da região dos metadados de serviço (como as propriedades do recurso). Assim que a interrupção terminar, você poderá ler e gravar no painel de controle.
  • Todas as solicitações do plano de dados falham durante a interrupção, como solicitações da API de desidentificação ou de trabalho. Nenhum dado do cliente é perdido, mas há o potencial para que metadados de progresso do trabalho sejam perdidos. Depois que a interrupção terminar, você poderá ler e gravar no plano de dados.

Tutorial de recuperação de desastre

Se uma região inteira do Azure não estiver disponível, você ainda poderá garantir alta disponibilidade de suas cargas de trabalho. Você pode implantar dois ou mais serviços de desidentificação em uma configuração ativa-ativa, com o Azure Front Door usado para rotear o tráfego para as duas regiões.

Com este exemplo de arquitetura:

  • Serviços de desidentificação idênticos são implantados em duas regiões separadas.
  • O Azure Front Door é usado para rotear o tráfego para as duas regiões.
  • Durante um desastre, uma região fica offline e o Azure Front Door roteia o tráfego exclusivamente para a outra região. O objetivo de tempo de recuperação durante esse failover geográfico é limitado ao tempo que o Azure Front Door leva para detectar que um serviço está não íntegro.

RTO e RPO

Se adotar a configuração ativa-ativa, você deverá esperar um RTO (Objetivo de tempo de recuperação) de 5 minutos. Em toda configuração, você deve esperar um RPO (objetivo de ponto de recuperação) de 0 minutos (nenhum dado do cliente será perdido).

Validar plano de recuperação de desastre

Pré-requisitos

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Para concluir este tutorial:

Criar um grupo de recursos

Você precisa de duas instâncias de um serviço de desidentificação (versão prévia) em regiões diferentes do Azure para este tutorial. O tutorial usa as regiões Leste dos EUA e Oeste dos EUA 2, mas fique à vontade para escolher suas próprias regiões.

Para simplificar o gerenciamento e a limpeza, use um único grupo de recursos para todos os recursos neste tutorial. Considere usar grupos de recursos separados para cada região/recurso para isolar ainda mais seus recursos em uma situação de recuperação de desastre.

Execute o comando a seguir para criar um grupo de recursos.

az group create --name my-deid --location eastus

Criar serviços de desidentificação (versão prévia)

Siga as etapas no Início Rápido: implante o serviço de desidentificação (versão prévia) para criar dois serviços separados, um no Leste dos EUA e outro no Oeste dos EUA 2.

Anote a URL de serviço de cada serviço de desidentificação para que você possa definir os endereços de back-end ao implantar o Azure Front Door na próxima etapa.

Criar um Azure Front Door

Uma implantação de várias regiões pode usar uma configuração ativa-ativa ou ativa-passiva. A configuração ativa-ativa distribui as solicitações entre várias regiões ativas. A configuração ativa-passiva continua executando instâncias na região secundária, mas não envia tráfego para lá, a menos que a região primária falhe. O Azure Front Door tem um recurso integrado que permite habilitar essas configurações. Para obter mais informações sobre como criar aplicativos para alta disponibilidade e tolerância a falhas, consulte Arquitetar aplicativos do Azure para proporcionar resiliência e disponibilidade.

Criar um perfil do Azure Front Door

Agora, crie um Azure Front Door Premium, para rotear o tráfego para os seus serviços.

Execute az afd profile create para criar um perfil do Azure Front Door.

Observação

Se você quiser implantar o Azure Front Door Standard em vez de Premium, substitua o valor do parâmetro --sku por Standard_AzureFrontDoor. Não é possível implantar regras gerenciadas com a Política do WAF se escolher a camada Standard. Para obter uma comparação detalhada dos tipos de preço, confira Comparação de camadas do Azure Front Door.

az afd profile create --profile-name myfrontdoorprofile --resource-group my-deid --sku Premium_AzureFrontDoor
Parâmetro Valor Descrição
profile-name myfrontdoorprofile Nome do perfil do Azure Front Door, que é exclusivo dentro do grupo de recursos.
resource-group my-deid O grupo de recursos que contém os recursos deste tutorial.
sku Premium_AzureFrontDoor O tipo de preço do perfil do Azure Front Door.

Adicionar um ponto de extremidade do Azure Front Door

Execute az afd endpoint create para criar um ponto de extremidade em seu perfil do Azure Front Door. Esse ponto de extremidade roteia solicitações para seus serviços. Você pode criar vários pontos de extremidade em seu perfil depois de concluir este guia.

az afd endpoint create --resource-group my-deid --endpoint-name myendpoint --profile-name myfrontdoorprofile --enabled-state Enabled
Parâmetro Valor Descrição
endpoint-name myendpoint Nome do ponto de extremidade no perfil, que é globalmente exclusivo.
enabled-state Enabled Decisão de habilitar (ou não) esse ponto de extremidade.

Criar um grupo de origem do Azure Front Door

Execute az afd origin-group create para criar um grupo de origem contendo seus dois serviços de desidentificação.

az afd origin-group create --resource-group my-deid --origin-group-name myorigingroup --profile-name myfrontdoorprofile --probe-request-type GET --probe-protocol Https --probe-interval-in-seconds 60 --probe-path /health --sample-size 1 --successful-samples-required 1 --additional-latency-in-milliseconds 50 --enable-health-probe
Parâmetro Valor Descrição
origin-group-name myorigingroup Nome do grupo de origem.
probe-request-type GET O tipo de solicitação de investigação de integridade que é feita.
probe-protocol Https Protocolo a ser usado na investigação de integridade.
probe-interval-in-seconds 60 O número de segundos entre as investigações de integridade.
probe-path /health O caminho relativo à origem usada para determinar a integridade da origem.
sample-size 1 O número de amostras a serem consideradas para decisões de balanceamento de carga.
successful-samples-required 1 O número de amostras dentro do período de amostras que devem ser bem-sucedidas.
additional-latency-in-milliseconds 50 A latência extra em milissegundos para que as investigações se enquadrem no bucket de latência mais baixa.
enable-health-probe Alternância para controlar o status da investigação de integridade.

Adicionar origens ao grupo de origem do Azure Front Door

Execute az afd origin create para adicionar uma origem ao grupo de origem. Para os parâmetros --host-name e --origin-host-header, substitua o valor do espaço reservado <service-url-east-us> pela URL de serviço do Leste dos EUA, deixando de fora o esquema ( https://). Você deve ter um valor como abcdefghijk.api.eastus.deid.azure.com.

az afd origin create --resource-group my-deid --host-name <service-url-east-us> --profile-name myfrontdoorprofile --origin-group-name myorigingroup --origin-name deid1 --origin-host-header <service-url-east-us> --priority 1 --weight 1000 --enabled-state Enabled --https-port 443
Parâmetro Valor Descrição
host-name <service-url-east-us> O nome do host do serviço de desidentificação primário.
origin-name deid1 Nome de origem.
origin-host-header <service-url-east-us> O cabeçalho do host a ser enviado nas solicitações para essa origem.
priority 1 Defina esse parâmetro como 1 para direcionar todo o tráfego para o serviço de desidentificação primário.
weight 1000 Peso da origem em um determinado grupo de origem para balanceamento de carga. Precisa estar entre 1 e 1000.
enabled-state Enabled Decisão de habilitar (ou não) essa origem.
https-port 443 A porta usada nas solicitações HTTP para a origem.

Repita essa etapa e adicione sua segunda origem. Para os parâmetros --host-name e --origin-host-header, substitua o valor do espaço reservado <service-url-west-us-2> pela URL de serviço do Oeste dos EUA 2, deixando de fora o esquema (https://).

az afd origin create --resource-group my-deid --host-name <service-url-west-us-2> --profile-name myfrontdoorprofile --origin-group-name myorigingroup --origin-name deid2 --origin-host-header <service-url-west-us-2> --priority 1 --weight 1000 --enabled-state Enabled --https-port 443

Preste atenção aos parâmetros --priority nos dois comandos. Como as duas origens são definidas como prioridade 1, o Azure Front Door trata as duas origens como tráfego ativo e direto para as duas regiões. Se a prioridade de uma origem estiver definida como 2, o Azure Front Door tratará essa origem como secundária e direcionará todo o tráfego para a outra origem, a menos que ela falte.

Adicionar uma rota do Azure Front Door

Execute az afd route create para mapear o ponto de extremidade para o grupo de origem. Essa rota encaminha solicitações do ponto de extremidade para o seu grupo de origem.

az afd route create --resource-group my-deid --profile-name myfrontdoorprofile --endpoint-name myendpoint --forwarding-protocol MatchRequest --route-name route  --origin-group myorigingroup --supported-protocols Https --link-to-default-domain Enabled 
Parâmetro Valor Descrição
endpoint-name myendpoint Nome do ponto de extremidade.
forwarding-protocol MatchRequest O protocolo que essa regra usa ao encaminhar o tráfego aos back-ends.
route-name route O nome da rota.
supported-protocols Https Lista de protocolos com suporte para essa rota.
link-to-default-domain Enabled Se esta rota está vinculada ao domínio do ponto de extremidade padrão ou não.

Aguarde cerca de 15 minutos para que essa etapa seja concluída, pois leva algum tempo para que essa alteração se propague de maneira global. Após esse período, o Azure Front Door estará totalmente funcional.

Testar o Front Door

Quando você cria o perfil do Azure Front Door Standard/Premium, a configuração leva alguns minutos para ser implantada globalmente. Após a conclusão, você pode acessar o host de front-end que criou.

Execute az afd endpoint show para obter o nome do host do ponto de extremidade do Front Door. Sua aparência deve ser parecida com abddefg.azurefd.net

az afd endpoint show --resource-group my-deid --profile-name myfrontdoorprofile --endpoint-name myendpoint --query "hostName"

Em um navegador, vá para o nome do host do ponto de extremidade que o comando anterior retornou: <endpoint>.azurefd.net/health. Sua solicitação deve ser roteada automaticamente para o serviço de desidentificação primário no Leste dos EUA.

Para testar o failover global instantâneo:

  1. Abra o navegador e vá para o nome do host do ponto de extremidade: <endpoint>.azurefd.net/health.

  2. Siga as etapas em Configurar o acesso privado para desabilitar o acesso à rede pública para o serviço de desidentificação no Leste dos EUA.

  3. Atualize seu navegador. Você deverá ver a mesma página de informações porque o tráfego agora é direcionado para o serviço de desidentificação no Oeste dos EUA 2.

    Dica

    Talvez seja necessário atualizar a página algumas vezes para que o failover seja concluído.

  4. Agora desabilite o acesso à rede pública para o serviço de desabilitação no Oeste dos EUA 2.

  5. Atualize seu navegador. Desta vez, você deverá ver uma mensagem de erro.

  6. Habilite novamente o acesso à rede pública para um dos serviços de desidentificação. Atualize o navegador e você verá o status da integridade novamente.

Agora você validou que pode acessar seus serviços por meio do Azure Front Door e que o failover funciona conforme o esperado. Habilite o acesso à rede pública no outro serviço se terminar o teste de failover.

Limpar os recursos

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos. Se você achar que não precisará desses recursos no futuro, exclua o grupo de recursos executando o seguinte comando:

az group delete --name my-deid

Esse comando pode levar alguns minutos para ser concluído.

Iniciar recuperação

Para verificar o status de recuperação do serviço, você pode enviar solicitações para <service-url>/health.