Compartilhar via


Confiabilidade no Registro de Contêiner do Azure

O Registro de Contêiner do Azure é um serviço de registro de contêiner gerenciado usado para armazenar e gerenciar suas imagens de contêiner privadas do Docker e artefatos relacionados para suas implantações de contêiner.

Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para dar suporte à resiliência e recuperação. Você é responsável por entender como esses recursos funcionam em todos os serviços que você usa e selecionar os recursos necessários para atender aos seus objetivos de negócios e metas de tempo de atividade.

Este artigo descreve como tornar o Registro de Contêiner resiliente a uma variedade de possíveis interrupções e problemas, incluindo falhas transitórias, interrupções de zona de disponibilidade e interrupções de região. Ele também descreve como você pode usar backups para se recuperar de outros tipos de problemas e realça algumas informações importantes sobre o SLA (contrato de nível de serviço) do Registro de Contêiner.

Recomendações de implantação de produção para confiabilidade

Para cargas de trabalho de produção, recomendamos que você realize as seguintes ações:

  • Use a camada Premium do Registro de Contêiner, que fornece os recursos de confiabilidade mais abrangentes. A camada Premium também fornece limites de desempenho mais altos, recursos de segurança aprimorados e recursos avançados essenciais para cargas de trabalho de contêiner de produção. Para obter mais informações sobre as camadas de serviço e os recursos, veja Camadas de serviço do Registro de Contêiner.

  • Provisione seu Registro de Contêiner em uma região que dá suporte a zonas de disponibilidade.

  • Para cenários de várias regiões, configure a replicação geográfica para distribuir seu registro em várias regiões com base em seus requisitos geográficos e de conformidade específicos.

Visão geral da arquitetura de confiabilidade

O Registro de Contêiner baseia-se na infraestrutura distribuída do Azure para fornecer alta disponibilidade e durabilidade de dados. O serviço consiste em vários componentes principais que trabalham juntos para garantir a confiabilidade. O diagrama a seguir ilustra a arquitetura de serviço principal.

Diagrama que mostra a arquitetura de serviço do Registro de Contêiner com acesso ao cliente, plano de controle, plano de dados e componentes da camada de armazenamento.

  • O painel de controle é um componente de gerenciamento centralizado na região inicial para configuração do registro, configuração de autenticação e políticas de replicação.

  • O plano de dados é um serviço distribuído que processa operações de push e pull de imagens de contêiner entre regiões e zonas de disponibilidade.

  • A camada de armazenamento é uma solução do Armazenamento do Azure com conteúdo endereçável que persiste imagens e artefatos de contêiner. Ela inclui eliminação automática de duplicação, criptografia em repouso e replicação interna.

A Microsoft é responsável por gerenciar a infraestrutura subjacente do Registro de Contêiner, que inclui os seguintes tipos de manutenção:

  • Manutenção do painel de controle para o gerenciamento de registro

  • Manutenção do plano de dados para operações de imagem de contêiner entre regiões e zonas de disponibilidade

Como cliente, você é responsável pelas seguintes ações:

  • Resiliência de nível do aplicativo: implemente a lógica de repetição e o tratamento de failover apropriados em aplicativos de contêiner e plataformas de orquestração.

  • Configuração de resiliência de zona: Verifique se o registro de contêiner está implantado em uma região que dá suporte a zonas de disponibilidade.

  • Configuração da replicação geográfica: escolha as regiões apropriadas para replicação geográfica de acordo com os requisitos de desempenho, conformidade e distribuição geográfica.

O Registro de Contêiner também dá suporte a tarefas, que podem ajudar você a automatizar suas operações de manutenção e builds de contêiner. As tarefas são executadas na infraestrutura de computação gerenciada pela Microsoft e dão suporte a gatilhos manuais, baseados em eventos ou agendados. Para obter mais informações, veja Automatizar builds de imagem de contêiner e manutenção usando tarefas do Registro de Contêiner.

Note

O Registro de Contêiner dá suporte a registros conectados, que são réplicas locais ou remotas que são sincronizadas com o Registro de Contêiner baseado em nuvem. Quando você usa registros conectados, é responsável por configurá-los para atender aos seus requisitos de confiabilidade. Os registros conectados estão fora do escopo deste artigo.

Resiliência a falhas transitórias

Falhas transitórias são falhas curtas e intermitentes nos componentes. Elas ocorrem com frequência em um ambiente distribuído, como a nuvem, e são uma parte normal das operações. Falhas transitórias se corrigem após um curto período de tempo. É importante que seus aplicativos possam lidar com falhas transitórias, geralmente repetindo solicitações afetadas.

Todos os aplicativos hospedados na nuvem devem seguir as diretrizes transitórias de tratamento de falhas do Azure quando eles se comunicam com qualquer APIs, bancos de dados e outros componentes hospedados na nuvem. Para obter mais informações, confira Recomendações para tratamento de falhas transitórias.

O Registro de Contêiner trata as falhas transitórias internamente por meio de vários mecanismos. O serviço implementa a lógica de repetição automática para operações de registro e mantém o pool de conexões para uso eficiente de recursos. As operações do Registro de Contêiner foram projetadas para serem idempotentes, o que permite novas tentativas seguras de operações de push e pull. As tarefas lidam automaticamente com falhas transitórias quando executam muitos tipos de operações.

Para aplicativos cliente que usam o Registro de Contêiner, implemente políticas de repetição apropriadas com retirada exponencial ao executar operações do registro. Use o cliente oficial do Docker ou os SDKs do Registro de Contêiner, que incluem mecanismos de repetição internos para falhas transitórias comuns.

Resiliência a falhas de zona de disponibilidade

As zonas de disponibilidade são grupos fisicamente separados de datacenters em uma região do Azure. Quando uma zona falha, os serviços podem fazer o failover de uma das zonas restantes.

A redundância de zona protege o registro de contêiner contra falhas de zona única distribuindo dados e operações do Registro em várias zonas de disponibilidade dentro da região. As operações de transmissão e transferência de imagens de contêiner continuam a funcionar durante falhas de zona, com failover automático para zonas íntegras.

A redundância de zona é habilitada por padrão para todos os registros em regiões que dão suporte a zonas de disponibilidade, tornando seus recursos mais resilientes automaticamente e sem custo adicional. Esse aprimoramento se aplica a todas as camadas de serviço, incluindo Basic e Standard, e foi aplicado a registros novos e existentes.

Importante

O portal do Azure e outras ferramentas ainda podem não refletir a atualização de redundância de zona com precisão.

A propriedade zoneRedundancy na configuração do seu registro ainda pode aparecer como false, mas a redundância por zona está ativa para todos os registros nas regiões com suporte.

Estamos atualizando ativamente as superfícies do portal e da API para refletir esse comportamento padrão de forma mais transparente. Todos os recursos habilitados anteriormente continuam funcionando conforme o esperado.

Considerations

Considerations

  • Tarefas: No momento, as tarefas do Registro de Contêiner não dão suporte a zonas de disponibilidade. A redundância de zona se aplica ao próprio serviço do Registro, mas não às tarefas ou às suas operações.

  • Replicação geográfica: Se o registro usar a replicação geográfica, todas as réplicas criadas em regiões com zonas de disponibilidade serão automaticamente redundantes de zona.

Cost

A redundância de zona é incluída com registros de contêiner sem custo adicional.

Configurar o suporte à zona de disponibilidade

  • Crie um registro com redundância de zona. Quando você cria um registro em uma região com suporte, ele fica automaticamente redundante por zona. Para obter mais informações sobre como criar um novo registro, consulte Criar um registro com redundância de zona no Registro de Contêiner.

  • Habilite a redundância de zona em um registro existente. Os registros que estão em regiões com zonas de disponibilidade são automaticamente redundantes por zona. Você não precisa habilitar a redundância de zona.

  • Desabilite a redundância de zona. A redundância de zona não pode ser desabilitada.

Comportamento quando todas as zonas estão saudáveis

Esta seção descreve o que esperar quando os recursos do Registro de Contêiner são configurados para redundância de zona e todas as zonas de disponibilidade estão operacionais.

Diagrama que mostra a redundância de zona do Registro de Contêiner durante operações normais.

  • Roteamento de tráfego entre zonas: o Registro de Contêiner usa a funcionalidade de roteamento interno para distribuir automaticamente as operações do plano de dados em todas as zonas de disponibilidade em uma região. O serviço do Registro roteia automaticamente as solicitações para zonas íntegras sem a necessidade de balanceadores de carga externos.

  • Replicação de dados entre zonas: os dados do registro, incluindo imagens de contêiner, manifestos e metadados, são replicados de maneira assíncrona entre várias zonas de disponibilidade. As alterações são replicadas rapidamente entre zonas para manter alta disponibilidade e durabilidade de dados. A replicação é assíncrona, mas normalmente é concluída em poucos minutos e todas as zonas permanecem disponíveis para operações de leitura e gravação durante a replicação.

Comportamento durante uma falha de zona

Esta seção descreve o que esperar quando os recursos do Registro de Contêiner são configurados para redundância de zona e há uma interrupção da zona de disponibilidade.

Quando uma zona fica indisponível, o Registro de Contêiner cuida automaticamente do processo de failover com impacto mínimo nas operações do registro.

Diagrama que mostra o comportamento do Registro de Contêiner durante uma falha da zona. O failover automático faz o roteamento para zonas íntegras. Uma zona está marcada como indisponível.

  • Detecção e resposta: a plataforma Registro de Contêiner detecta automaticamente as falhas em uma zona de disponibilidade e inicia uma resposta. O serviço roteia automaticamente o tráfego para as zonas íntegras restantes. Não é necessária intervenção manual para iniciar um failover de zona.

  • Notificações: A Microsoft não notifica você automaticamente quando uma zona está inoperante. No entanto, você pode usar a Integridade do Serviço do Azure para entender a integridade geral do serviço, incluindo quaisquer falhas de zona, e pode configurar alertas de Integridade do Serviço para notificá-lo de problemas.

    Você também pode monitorar as métricas de disponibilidade do Registro no Azure Monitor.

  • Solicitações ativas: quando uma zona de disponibilidade não está disponível, todas as solicitações em andamento conectadas aos recursos na zona de disponibilidade com falha são encerradas. Eles precisam ser repetidos.

  • Perda de dados esperada: as gravações recentes feitas na zona com falha talvez não sejam replicadas para outras regiões, o que significa que elas podem ser perdidas até que a zona se recupere. Normalmente, espera-se que a perda de dados seja inferior a 15 minutos, mas isso não é garantido.

  • Tempo de inatividade esperado: um pequeno tempo de inatividade pode ocorrer durante o failover automático, pois o tráfego é redirecionado para zonas íntegras. Esse tempo de inatividade normalmente é de alguns segundos para a maioria das operações do registro. Recomendamos que você siga as melhores práticas transitórias de tratamento de falhas para minimizar o efeito do failover de zona nos seus aplicativos.

  • Redirecionamento de tráfego: a plataforma redireciona automaticamente o tráfego para zonas íntegras sem exigir que você faça alterações de configuração.

Recuperação de zona

Quando a zona de disponibilidade afetada se recupera, o Registro de Contêiner distribui automaticamente as operações em todas as zonas disponíveis, incluindo a zona recuperada. O serviço reequilibra o tráfego e a distribuição de dados sem exigir intervenção manual ou causar interrupção do serviço.

Testar falhas em zonas

A plataforma Registro de Contêiner gerencia o roteamento de tráfego, o failover e o failback para registros com redundância de zona. Como esse recurso é totalmente gerenciado, você não precisa iniciar nem validar processos de falha da zona de disponibilidade.

Resiliência a falhas em toda a região

O Registro de Contêiner fornece suporte nativo de várias regiões por meio da replicação geográfica quando o registro usa a camada Premium. A replicação geográfica cria réplicas do Registro em várias regiões de sua escolha. A região em que você implanta o recurso do registro é conhecida como região inicial.

A replicação geográfica permite resiliência a interrupções regionais. Se o registro for replicado geograficamente e ocorrer uma interrupção regional, os dados do registro continuarão disponíveis nas outras regiões selecionadas. Se você não habilitar a replicação geográfica, os dados poderão ficar indisponíveis durante uma interrupção de região.

Você também pode usar a replicação geográfica para ter acesso local a imagens de contêiner nessas regiões e reduzir a latência de aplicativos distribuídos globalmente.

Quando você implanta o Registro de Contêiner e habilita a replicação geográfica, a Microsoft usa o Gerenciador de Tráfego do Azure para distribuir as solicitações do plano de dados entre suas réplicas e para fazer failover automaticamente entre as réplicas se uma réplica regional não está disponível.

A replicação geográfica do Registro de Contêiner não depende de regiões emparelhadas do Azure. Você pode selecionar qualquer combinação de regiões do Azure para replicação com base nos seus requisitos geográficos, de desempenho e de conformidade específicos. Cada registro replicado geograficamente funciona como um ponto de extremidade do registro. Ele dá suporte à maioria das operações do registro, incluindo pulls, pushes de imagem e tarefas de gerenciamento.

Esta seção resume as informações sobre a replicação geográfica no que diz respeito à confiabilidade. Para obter mais informações, veja Replicação geográfica no Registro de Contêiner.

Suporte de regiões

A replicação geográfica está disponível em todas as regiões do Azure em que a camada Premium tem suporte. Você pode replicar para qualquer combinação de regiões, independentemente de o Azure emparelhar essas regiões.

Requirements

Você deve usar a camada Premium para habilitar a replicação geográfica.

Considerations

  • Réplicas com redundância de zona: qualquer réplica criada em uma região com zonas de disponibilidade é automaticamente redundante por zona.

  • Plano de controle: O plano de controle é executado na região de origem. Se a região inicial não estiver disponível, as operações do plano de controle não estarão disponíveis e talvez você não consiga modificar a configuração do registro.

  • Tarefas: no momento, as tarefas do Registro de Contêiner não dão suporte a réplicas geográficas. As tarefas sempre são executadas na região de origem. Se a região inicial não estiver disponível, a tarefa não será executada.

Cost

Cada região replicada geograficamente é cobrada separadamente de acordo com os preços do tipo Premium para a respectiva região. Os custos de saída também se aplicam à transferência de dados entre regiões durante a replicação inicial e a sincronização contínua.

Configurar o suporte a várias regiões

A replicação geográfica pode ser configurada durante a criação do registro ou adicionada aos registros Premium existentes. A replicação geográfica pode ser configurada por meio do portal do Azure, da CLI do Azure, do Azure PowerShell ou dos modelos do Azure Resource Manager.

  • Crie um registro com replicação geográfica. Configure a replicação geográfica após a criação do registro especificando regiões extras.

  • Habilite a replicação geográfica em um registro existente. Para habilitar as funcionalidades de replicação geográfica, atualize os registros de camada Básico ou Standard existentes para a camada Premium. Você pode alterar as regiões de replicação a qualquer momento. Para obter mais informações, veja Configurar replicação geográfica.

  • Desabilite a replicação geográfica. Remova réplicas regionais individuais por meio do portal do Azure ou das ferramentas de linha de comando. O registro da região inicial não pode ser removido.

Comportamento quando todas as regiões estão saudáveis

Esta seção descreve o que esperar quando um registro é configurado para replicação geográfica e todas as regiões estão operacionais.

Diagrama mostrando operações de várias regiões do Registro de Contêiner. Clientes globais se conectam por meio do Gerenciador de Tráfego a pontos de extremidade do Registro em várias regiões.

  • Roteamento de tráfego entre regiões: o Registro de Contêiner opera em uma configuração ativa-ativa, em que cada ponto de extremidade regional pode atender a todas as operações do plano de dados de maneira independente, incluindo leituras e gravações. As operações do plano de dados, como operações de push e pull de contêiner, são roteadas automaticamente usando o Gerenciador de Tráfego com critérios baseados em desempenho para determinar o ponto de extremidade regional ideal para o desempenho.

  • Replicação de dados entre regiões: a replicação geográfica sincroniza automaticamente imagens e artefatos de contêiner em todas as regiões configuradas usando a replicação assíncrona com consistência eventual. O serviço usa o armazenamento com conteúdo endereçável para replicar com eficiência apenas as camadas de imagem exclusivas. Essa abordagem minimiza o uso da largura de banda e o tempo de replicação. As operações de leitura e gravação funcionam em todas as regiões com replicação geográfica. As alterações feitas em qualquer região são replicadas para todas as outras regiões.

    A replicação normalmente é concluída em poucos minutos de alterações. No entanto, não há garantia sobre o tempo de replicação de dados. Imagens de contêiner grande ou atualizações de alta frequência podem levar mais tempo para serem replicadas em todas as regiões.

Comportamento durante uma falha de região

Esta seção descreve o que esperar quando um registro é configurado para replicação geográfica e há uma interrupção na região primária.

Quando uma região fica indisponível, as operações de contêiner podem continuar usando pontos de extremidade regionais alternativos.

Diagrama que mostra o comportamento do Registro de Contêiner durante a falha regional.

  • Detecção e resposta: o Registro de Contêiner monitora a integridade de cada réplica regional e é responsável por redirecionar o tráfego para outra região.

  • Notificações: A Microsoft não notifica você automaticamente quando uma região está inoperante. No entanto, você pode usar a Integridade do Serviço do Azure para entender a integridade geral do serviço, incluindo quaisquer falhas na região, e pode configurar alertas de Integridade do Serviço para notificá-lo de problemas.

    Você também pode monitorar as métricas de disponibilidade do Registro para cada ponto de extremidade regional no Azure Monitor.

  • Solicitações ativas: todas as solicitações ativas atualmente em voo para uma região indisponível falharão e deverão ser repetidas para que possam ser direcionadas para uma região íntegra.

  • Perda de dados esperada: todas as gravações recentes feitas na região com falha podem não ser replicadas para outras regiões. Essa falha significa que elas podem ser perdidas até que a região se recupere. Normalmente, espera-se que a perda de dados seja inferior a 15 minutos, mas isso não é garantido.

  • Tempo de inatividade esperado: para operações do plano de dados, um pequeno tempo de inatividade é esperado para operações do plano de dados enquanto o failover é concluído, o que normalmente leva de 1 a 2 minutos.

    Se a região principal não estiver disponível, as operações do plano de gerenciamento ficarão indisponíveis até que a região se recupere.

  • Redirecionamento de tráfego: Quando uma região fica indisponível, as operações de contêineres são roteadas automaticamente para outra réplica em uma região saudável. Os clientes não precisam alterar o ponto de extremidade no qual interagem com o registro. A Microsoft lida automaticamente com roteamento, failover e failback.

Recuperação de região

Quando uma região se recupera, as operações do plano de dados são retomadas automaticamente para esse ponto de extremidade regional por meio do roteamento do Gerenciador de Tráfego. O serviço sincroniza todas as alterações que ocorrem durante a interrupção usando a replicação assíncrona com consistência eventual.

Teste de falhas na região

Não é possível simular a falha de uma das regiões associadas ao registro, mas é possível testar a capacidade do aplicativo de fazer failover entre regiões. Você pode simular o failover regional desabilitando temporariamente as réplicas geográficas, o que as remove do roteamento do Gerenciador de Tráfego. Em seguida, você pode verificar se as operações de contêiner fazem failover para regiões alternativas sem realmente enfrentar uma interrupção regional. Para obter mais informações, veja Desabilitar temporariamente o roteamento para a replicação.

Quando você habilita novamente a réplica, o Gerenciador de Tráfego retoma o roteamento do tráfego para a réplica habilitada novamente. Além disso, metadados e imagens são sincronizados com consistência eventual para a réplica reabilitada para garantir a consistência de dados em todas as regiões.

Backup e restauração

O Registro de Contêiner dá suporte à exportação de imagens e artefatos de contêiner do registro para armazenamento externo ou registros alternativos. Use as funcionalidades de importação e exportação do Registro de Contêiner ou os comandos padrão do Docker para criar cópias de imagens de contêiner críticas para cenários de recuperação de desastre.

Para a maioria das soluções, você não deve depender exclusivamente de backups. Em vez disso, use as outras funcionalidades descritas neste guia para dar suporte aos seus requisitos de resiliência. No entanto, os backups protegem contra alguns riscos que outras abordagens não protegem. Para obter mais informações, consulte O que são redundância, replicação e backup?.

Contrato de nível de serviço

O acordo de nível de serviço (SLA) dos serviços do Azure descreve a disponibilidade esperada de cada serviço e as condições que sua solução deve atender para alcançar essa expectativa de disponibilidade. Para obter mais informações, consulte SLAs para serviços online.