por Ankit Shah e Lorin Dawson
Este post é uma continuação de Visão Geral, Estratégias e Avaliação de Recuperação de Desastres e Automação e Ferramentas de Recuperação de Desastres para um Workspace Databricks.
Recuperação de Desastres refere-se a um conjunto de políticas, ferramentas e procedimentos que permitem a recuperação ou continuação de infraestrutura e sistemas de tecnologia críticos após um desastre natural ou causado pelo homem. Mesmo que Provedores de Serviços em Nuvem como AWS, Azure, Google Cloud e empresas SaaS criem salvaguardas contra pontos únicos de falha, falhas ocorrem. A gravidade da interrupção e seu impacto em uma organização podem variar. Para cargas de trabalho nativas da nuvem, um padrão claro de recuperação de desastres é fundamental.

Por favor, consulte os posts anteriores nesta série de blogs sobre DR para entender as etapas de um a quatro sobre como planejar, configurar uma estratégia de solução de DR e automatizar. Nas etapas cinco e seis deste post, veremos como monitorar, executar e validar uma configuração de DR.
Uma implementação típica do Databricks inclui vários ativos críticos, como código-fonte de notebooks, consultas, configurações de jobs e clusters, que devem ser recuperados sem problemas para garantir interrupção mínima e serviço contínuo aos usuários finais.

Observação: Certos serviços como Feature Store, pipelines MLflow, rastreamento de experimentos de ML, gerenciamento de modelos e implantação de modelos não podem ser considerados viáveis neste momento para Recuperação de Desastres. Para Structured Streaming e Delta Live Tables, uma implantação ativa-ativa é necessária para manter garantias de exatamente uma vez (exactly-once), mas o pipeline terá consistência eventual entre as duas regiões.
Considerações gerais adicionais podem ser encontradas nos posts anteriores desta série.
É crucial saber o mais cedo possível se suas cargas de trabalho não estão em um estado saudável para que você possa declarar rapidamente um desastre e se recuperar de um incidente. Esse tempo de resposta, juntamente com informações apropriadas, é fundamental para atender a objetivos agressivos de recuperação. É crítico considerar a detecção de incidentes, notificação, escalonamento, descoberta e declaração em seu planejamento e objetivos para fornecer objetivos realistas e alcançáveis.
A Página de Status do Databricks fornece uma visão geral de todos os serviços principais do Databricks para o plano de controle. Você pode visualizar facilmente o status de um serviço específico visualizando a página de status. Opcionalmente, você também pode assinar atualizações de status em componentes de serviço individuais, o que envia um alerta sempre que o status ao qual você está inscrito muda.

Para verificações de status em relação ao plano de dados, o AWS Health Dashboard, a Página de Status do Azure e a Página de Status de Serviço do GCP devem ser usadas para monitoramento.
AWS e Azure oferecem endpoints de API que as ferramentas podem usar para ingerir e alertar sobre verificações de status.
Usar uma ferramenta para coletar e analisar dados da infraestrutura permite que as equipes acompanhem o desempenho ao longo do tempo. Isso capacita proativamente as equipes a minimizar o tempo de inatividade e a degradação do serviço em geral. Além disso, o monitoramento ao longo do tempo estabelece uma linha de base para o desempenho máximo que é necessária como referência para otimizações e alertas.
No contexto de DR, uma organização pode não poder esperar por alertas de seus provedores de serviço. Mesmo que os requisitos de RTO/RPO sejam permissivos o suficiente para esperar um alerta do provedor de serviço, notificar a equipe de suporte do fornecedor sobre a degradação do desempenho com antecedência abrirá uma linha de comunicação mais cedo.
Tanto DataDog quanto Dynatrace são ferramentas de monitoramento populares que fornecem integrações e agentes para AWS, Azure, GCP e clusters Databricks.

Para os requisitos de RTO mais rigorosos, você pode implementar failover automatizado com base em verificações de integridade dos Serviços Databricks e outros serviços com os quais a carga de trabalho interage diretamente no Plano de Dados, por exemplo, armazenamentos de objetos e serviços de VM de provedores de nuvem.
Projete verificações de integridade que sejam representativas da experiência do usuário e baseadas em Indicadores Chave de Desempenho. Verificações superficiais de heartbeat podem avaliar se o sistema está operando, ou seja, se o cluster está em execução. Enquanto verificações de integridade profundas, como métricas do sistema da CPU de nós individuais, uso de disco e métricas do Spark em cada estágio ativo ou partição em cache, vão além das verificações superficiais de heartbeat para determinar degradação significativa de desempenho. Use verificações de integridade profundas baseadas em múltiplos sinais de acordo com a funcionalidade e o desempenho de linha de base da carga de trabalho.
Tenha cuidado ao automatizar totalmente a decisão de failover usando verificações de integridade. Se ocorrerem falsos positivos ou um alarme for disparado, mas o negócio puder absorver o impacto, não há necessidade de failover. Um falso failover introduz riscos de disponibilidade e riscos de corrupção de dados, além de ser uma operação cara em termos de tempo. Recomenda-se ter um humano no controle, como um gerente de incidentes de plantão, para tomar a decisão se um alarme for disparado. Um failover desnecessário pode ser catastrófico, e a revisão adicional ajuda a determinar se o failover é necessário.
Dois cenários de execução existem em um nível alto para uma solução de Recuperação de Desastres (DR). No primeiro cenário, o site de DR é considerado temporário. Assim que o serviço for restaurado no site principal, a solução deve orquestrar um failover do site de DR para o site principal permanente. Limitar a criação de novos artefatos enquanto o site de DR estiver ativo deve ser desencorajado, pois é temporário e complica o failback neste cenário. Inversamente, no segundo cenário, o site de DR será promovido a novo principal, permitindo que os usuários retomem o trabalho mais rapidamente, pois não precisam esperar que os serviços sejam restaurados. Além disso, este cenário não requer failback, mas o antigo site principal deve ser preparado como o novo site de DR.
Em qualquer cenário, cada região dentro do escopo da solução de DR deve suportar todos os serviços necessários, e um processo que valide se o workspace de destino está em boas condições operacionais deve existir como uma salvaguarda. A validação pode incluir autenticação simulada, consultas automatizadas, chamadas de API e verificações de ACL.
Ao acionar um failover para o site de DR, a solução não pode assumir que a capacidade de desligar o sistema de forma graciosa é possível. A solução deve tentar desligar os serviços em execução no site principal, registrar o status do desligamento para cada serviço e, em seguida, continuar tentando desligar os serviços sem o status apropriado em um intervalo de tempo definido. Isso reduz o risco de que os dados sejam processados simultaneamente nos sites principal e de DR, minimizando a corrupção de dados e facilitando o processo de failback assim que os serviços forem restaurados.
Retornar ao site principal durante o Failback é mais fácil de controlar e pode ser feito em uma janela de manutenção. O Failback seguirá um plano muito semelhante ao Failover, com quatro exceções importantes:
Teste sua configuração de recuperação de desastres regularmente em condições do mundo real para garantir que ela funcione corretamente. Não adianta manter uma solução de recuperação de desastres que não pode ser usada quando é necessária. Algumas organizações testam sua infraestrutura de DR realizando failover e failback entre regiões a cada poucos meses. Regularmente, o failover para o site de DR testa suas suposições e processos para garantir que eles atendam aos requisitos de recuperação em termos de RPO e RTO. Isso também garante que as políticas e procedimentos de emergência da sua organização estejam atualizados. Teste quaisquer alterações organizacionais que sejam necessárias em seus processos e configurações em geral. Seu plano de recuperação de desastres tem um impacto em seu pipeline de implantação, portanto, certifique-se de que sua equipe esteja ciente do que precisa ser mantido em sincronia.
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.