Fiabilidade no Automatização do Azure

O Automatização do Azure é um serviço que executa tarefas de gestão em seu nome. Defines scripts, chamados runbooks, que queres executar, e o Automatização do Azure fornece a infraestrutura para executar esses scripts. Este artigo foca-se na automação de processos, que é a capacidade central do serviço. Os trabalhadores híbridos do runbook, que funcionam numa infraestrutura gerida pelo cliente, estão fora do âmbito deste artigo.

Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para oferecer 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 Automatização do Azure resiliente a vários potenciais cortes e problemas, incluindo falhas transitórias, interrupções em zonas de disponibilidade, interrupções regionais e manutenção de serviços. Descreve também opções de backup e restauro, bem como informações chave sobre o acordo de nível de serviço (SLA) do Automatização do Azure.

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

Para cargas de trabalho de produção que utilizam automação de processos, siga estas recomendações:

  • Trate das falhas transitórias que ocorrem quando os seus runbooks interagem com os serviços e APIs do Azure, adicionando lógica de retentativa apropriada aos seus scripts.

  • Projete os runbooks de forma a serem resilientes a interrupções. Utilize pontos de verificação para manter o progresso ao longo dos reinícios de tarefas e, se for necessário armazenar o estado, utilize armazenamento externo.

Visão geral da arquitetura de confiabilidade

Esta secção descreve alguns dos aspetos importantes do funcionamento do serviço que são mais relevantes do ponto de vista da fiabilidade. A secção apresenta a arquitetura lógica, que inclui alguns dos recursos e funcionalidades que implementa e utiliza. Também discute a arquitetura física, detalhando como o serviço funciona nos bastidores.

Arquitetura lógica

Quando implementas o Automatização do Azure, crias uma conta de automação, que é um contentor lógico para os recursos que executam a tua automação.

  • Runbooks, que representam o trabalho a realizar. Runbooks textuais são scripts escritos em PowerShell ou Python. Os guias de execução gráficos são criados com um editor gráfico.
  • Recursos que os runbooks partilham, incluindo módulos, ligações, credenciais, certificados e variáveis.
  • Recursos que iniciam a execução do runbook, incluindo agendamentos e monitores.

Para mais informações sobre estes recursos, consulte Execução do Runbook no Automatização do Azure.

Este artigo aborda a fiabilidade e resiliência destas capacidades, que fazem parte da automação de processos no Automatização do Azure.

Arquitetura física

Os runbooks executam-se na infraestrutura de computação. Existem dois modelos de implementação para automação de processos:

  • Tarefas na nuvem (geridas pela Microsoft): Por predefinição, os runbooks são executados na infraestrutura de nuvem fornecida pela Microsoft. A Microsoft é responsável pela elevada disponibilidade e gestão desta infraestrutura. Quando submetes um trabalho runbook, o Automatização do Azure aloca um job na cloud a partir do seu pool de recursos de computação disponíveis, executa o runbook e depois devolve o recurso ao pool.

    Os trabalhos na cloud podem, por vezes, ser interrompidos durante a execução. Desenha os teus runbooks assumindo que um trabalho pode reiniciar numa infraestrutura diferente e que quaisquer dados escritos para armazenamento temporário na instância anterior já não estão acessíveis.

  • Trabalhadores híbridos do runbook: Podes opcionalmente configurar a tua própria infraestrutura de computação (máquinas virtuais no Azure, outras clouds ou on-premises) para correr runbooks. Quando usa trabalhadores híbridos do runbook, é responsável por configurá-los para satisfazer os seus requisitos de fiabilidade. Os trabalhadores do runbook híbrido estão fora do âmbito deste artigo.

Resiliência a falhas transitórias

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

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

És responsável por escrever runbooks que lidam com erros transitórios nos serviços e APIs com que interagem. Para procedimentos em texto, implemente lógica de retentativas utilizando ciclos e tratamento de erros. Para orientações e exemplos, veja Lidar com erros transitórios num script dependente do tempo. Nos runbooks gráficos, configure o comportamento de repetição das atividades no seu fluxo de trabalho. Para detalhes de configuração, veja a atividade Retry nos livros gráficos de execução.

A manutenção da infraestrutura ou outros eventos da plataforma podem interromper tarefas do runbook. Desenhe os seus livros de instruções para lidar com estas interrupções:

  • Implementa pontos de controlo. Para livros de fluxo de trabalho PowerShell, use pontos de verificação para guardar o progresso em pontos-chave do seu fluxo de trabalho. Se uma tarefa for interrompida e reiniciada, pode retomar a partir do último ponto de controlo em vez de recomeçar. Para mais informações, veja Usar pontos de controlo num fluxo de trabalho.

  • Compreenda os limites do trabalho. Os trabalhos na cloud têm limites justos na duração do tempo de execução. Para detalhes sobre os limites de execução de trabalhos e como são aplicados, veja Runbook execution.

  • Armazene o estado persistente externamente. Os empregos não mantêm o estado entre as corridas. Se um trabalho for interrompido e for reiniciado noutra instância, tudo o que tenha sido escrito em armazenamento temporário durante a primeira execução pode perder-se. Se precisares de persistir dados entre execuções de trabalho, guarda-os em armazenamento externo, como o Armazenamento de Blobs do Azure ou uma base de dados.

Resiliência a falhas na zona de disponibilidade

Zonas de disponibilidade são grupos fisicamente separados de centros de dados dentro de uma região Azure. Quando uma zona falha, os serviços podem ser transferidos para uma das zonas restantes.

Nas regiões suportadas, contas de automação e trabalhos na cloud são redundantes por zona, o que significa que o serviço distribui os seus recursos por várias zonas de disponibilidade. A Microsoft ativa automaticamente a redundância de zonas e não requer qualquer configuração.

Diagrama que mostra uma conta de Automação, que é automaticamente resiliente a zonas, incluindo livros de execução resilientes a zonas e outros recursos.

Requerimentos

Apoio regional: Quando implementas uma conta de automação numa das seguintes regiões, ela torna-se automaticamente redundante por zonas:

Américas Europa Médio Oriente Africa Ásia-Pacífico
Sul do Brasil Centro de França Israel Central Norte da África do Sul Leste da Austrália
Canadá Central Alemanha Centro-Oeste Catar Central Índia Central
E.U.A. Central Norte de Itália Norte da China 3
E.U.A. Leste Europa do Norte Ásia Leste
E.U.A. Leste 2 Leste da Noruega Leste do Japão
E.U.A. Centro-Sul Polónia Central Coreia Central
Governo dos Estados Unidos da Virgínia Suécia Central Sudeste Asiático
E.U.A. Oeste 2 Sul do Reino Unido
E.U.A. Oeste 3 Europa Ocidental

Para a lista atual de regiões suportadas, veja Suporte a zonas de disponibilidade para Automatização do Azure.

Custo

Não há custo extra pela redundância de zonas. Para a automação de processos, a faturação baseia-se no tempo de execução das suas tarefas e dos seus "watchers". Para mais informações, consulte preços do Automatização do Azure.

Configurar o suporte à zona de disponibilidade

Quando crias uma conta de automação numa região suportada, ela torna-se automaticamente redundante em zona. Não podes desativar a redundância de zonas. Para mais informações, consulte Suporte a zonas de disponibilidade para Automatização do Azure.

Comportamento quando todas as zonas estão íntegras

Esta secção descreve o que pode esperar quando a sua conta de automação tem redundância entre zonas e todas as zonas de disponibilidade na região estão operacionais.

  • Operação entre zonas: As operações de automação, gestão de contas e trabalhos na cloud distribuem-se automaticamente entre as zonas de disponibilidade da região. Um pedido ou tarefa pode ser tratado por qualquer instância em qualquer zona de disponibilidade.

  • Replicação de dados entre zonas: A configuração da conta de automação, scripts de runbook e outros recursos que implementa na sua conta de automação são replicados de forma síncrona em várias zonas de disponibilidade.

Comportamento durante uma falha de zona

Esta secção descreve o que pode esperar quando a sua conta de automação tem redundância entre zonas e ocorre uma interrupção numa das zonas de disponibilidade da região.

  • Deteção e resposta: A plataforma Automatização do Azure é responsável por detetar uma falha numa zona de disponibilidade. Você não precisa fazer nada para iniciar um failover de zona.
  • Pedidos ativos: Qualquer trabalho em curso na zona pouco saudável pode ser interrompido. O Automatização do Azure inicia automaticamente um novo trabalho executado usando infraestruturas em zonas saudáveis. Conceba os seus runbooks para serem resilientes a falhas transitórias e interrupções, para que reiniciem com segurança.

  • Perda de dados esperada: As execuções de tarefas não persistem no estado, por isso não se espera que uma falha de zona cause perda de dados para trabalhos em andamento. Se um trabalho precisar de armazenar dados que possa usar para recuperar de interrupções, como checkpoints, armazene essa informação num serviço persistente de armazenamento na nuvem como o Armazenamento do Azure ou numa base de dados.

    A configuração da conta de automação e os dados do runbook são replicados entre zonas e mantêm-se acessíveis mesmo quando uma zona não está disponível.

  • Tempo de inatividade previsto: Durante uma falha de zona, a sua conta de Automação pode sofrer uma breve interrupção enquanto o serviço deteta a falha e redistribui a carga de trabalho para zonas saudáveis.

  • Redistribuição: O serviço reequilibra automaticamente a capacidade entre as restantes zonas saudáveis. Novas execuções de tarefas, monitores e agendamentos continuam a ser executados em infraestruturas localizadas em zonas saudáveis. A recuperação não depende de a zona com falha voltar a estar operacional.

Recuperação de zona

Quando uma zona falhada regressa ao serviço, o Automatização do Azure reintegra-a automaticamente na rotação da zona. Não é necessária qualquer ação da tua parte. O serviço monitoriza a saúde da zona e redistribui a carga de trabalho por todas as zonas à medida que as operações normais retomam.

Teste de falhas de zona

O Automatização do Azure gere o encaminhamento de tráfego, o failover e a recuperação de zona para recursos com redundância entre zonas. Não precisas de iniciar nada, nem de validar processos de falha na zona de disponibilidade. Teste os seus runbooks para confirmar se são resilientes a interrupções.

Resiliência a falhas em toda a região

Automatização do Azure é um serviço de região única. Se a região ficar indisponível, a sua conta de Automação também fica indisponível.

Soluções personalizadas de várias regiões para resiliência

Podes implementar contas de Automação separadas em várias regiões e alternar entre elas quando necessário. És responsável por implementar as contas em cada região, configurá-las adequadamente, distribuir pedidos entre as contas e tratar do failover caso uma região não esteja disponível. Para informações detalhadas sobre abordagens que pode considerar, consulte Recuperação de desastres para Automatização do Azure.

Backup e restauração

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

O Automatização do Azure não fornece backup incorporado para a configuração da tua conta de Automação ou para o conteúdo do runbook. Guarda as tuas próprias cópias fora do serviço para que as possas redistribuir se necessário.

  • Use infraestrutura como código (IaC) para automação da configuração da conta. Defina contas de automação e recursos relacionados em ficheiros Bicep, templates ARM ou Terraform. Armazene os templates no controlo de versões e use o seu pipeline de implementação para recriar o ambiente na mesma ou noutra região. Inclua certificados, variáveis, agendas e referências de credenciais nos seus artefactos e processos de implementação. Armazenar segredos em serviços como o Azure Key Vault em vez de incorporar valores diretamente no código do runbook.

  • Armazene scripts do runbook no controlo de código-fonte. Mantenha o código-fonte dos runbooks do PowerShell e do Python num sistema de controlo de código-fonte, como o Git. Use versionamento, ramificação e revisão de pull requests para proteger a qualidade dos scripts e permitir o rollback para versões conhecidas como boas.

  • Faça o estado de backup a partir do armazenamento de dados apropriado. Os empregos não retêm o estado. Se precisares de manter registos detalhados de trabalhos ou qualquer outro dado que os teus runbooks gerem, guarda-os noutro serviço de armazenamento Azure ou base de dados e faz backup a partir daí.

Resiliência à eliminação acidental

Se apagares acidentalmente uma conta de Automação, podes conseguir restaurá-la dentro de um prazo limitado. Para mais informações, consulte Restaurar uma conta de Automação eliminada.

Resiliência à manutenção de serviços

A Microsoft aplica regularmente atualizações de serviço e realiza outras manutenções. A plataforma Azure gere estas atividades automaticamente, garantindo que a manutenção é fluida e transparente para si. Não é esperado qualquer tempo de indisponibilidade durante os eventos de manutenção, a menos que tenha sido informado através da manutenção planeada do Azure Service Health.

Contrato de nível de serviço

O contrato de nível de serviço (SLA) para serviços do Azure descreve a disponibilidade esperada de cada serviço e as condições que sua solução deve atender para atingir essa expectativa de disponibilidade. Para mais informações, consulte Acordos de Nível de Serviço (SLA) para serviços online.