Saltar para o conteúdo
← Ideias

Runbooks para integrações críticas: como responder a falhas sem improvisar

Aprenda a criar um runbook para integrações críticas com sinais, decisões, responsáveis e evidências para responder sem interromper a operação.

Diagrama de runbook para responder a falhas em integrações críticas

Uma integração torna-se crítica quando a sua falha altera um processo de negócio relevante: impedir a criação de encomendas, atrasar a faturação, deixar os dados dos clientes desatualizados ou bloquear uma operação interna. Nesses cenários, conhecer a arquitetura não é suficiente. A equipa precisa de um procedimento que permita tomar decisões seguras sob pressão. Esse procedimento é o runbook para integrações críticas.

Um bom runbook não é uma lista genérica de verificações técnicas nem um documento que apenas quem o escreveu entende. Deve indicar que serviço de negócio está afetado, como detetar o problema, quem pode decidir uma contenção, que ações são reversíveis e que provas confirmam a recuperação. O seu objetivo não é eliminar todos os incidentes, mas reduzir o tempo de diagnóstico, limitar o alcance e evitar que a resposta agrave a perda ou corrupção de dados.

O que torna uma integração crítica

O que torna uma integração crítica — guía visual de Linkses

A criticidade não depende apenas de uma ligação utilizar uma API, uma fila de mensagens ou um processo agendado. Depende das suas consequências. Para a classificar, avalie o fluxo completo com critérios verificáveis:

  • Impacto no negócio: receitas, cumprimento contratual, apoio ao cliente, logística, faturação ou decisões operacionais que dependam dos dados.
  • Janela de tolerância: quanto tempo o processo pode atrasar-se antes de causar danos. Uma sincronização analítica diária não é o mesmo que a validação de uma transação em tempo real.
  • Integridade: se um erro pode criar duplicados, omitir registos, modificar estados incorretos ou expor informação.
  • Dependências: sistemas de origem e destino, autenticação, rede, fornecedor externo, esquema de dados, filas e tarefas de processamento.
  • Recuperabilidade: possibilidade de repetir a tentativa ou reprocessar sem efeitos secundários e capacidade de reverter alterações.

Defina também os limites do serviço. Por exemplo: “a integração envia criações de encomendas para o sistema de gestão; não atualiza o stock nem confirma o pagamento”. Esta delimitação evita que o incidente se alastre devido a suposições e esclarece que equipas devem intervir.

O inventário mínimo antes de escrever o runbook

Um runbook útil baseia-se num inventário breve e mantido. Não precisa de replicar toda a documentação de arquitetura, mas deve disponibilizar os dados necessários para atuar. Para cada fluxo, documente:

  • Nome do fluxo e processo de negócio afetado.
  • Sistema de origem, sistema de destino e componentes intermédios.
  • Evento ou agendamento que inicia o processamento.
  • Dados trocados, identificador único de correlação e regras de idempotência.
  • Credenciais ou mecanismo de autenticação, sem incluir segredos no documento.
  • Painéis, registos e consultas autorizadas para observar o estado.
  • Proprietário técnico, responsável de negócio, equipa executora e canal de escalonamento.
  • Ações disponíveis: pausar, repetir a tentativa, reprocessar, colocar em quarentena e reverter.

Se uma integração for publicada ou distribuída através de uma plataforma como a Apification, o inventário deve incluir o URL ou a referência operacional aprovada, o proprietário da publicação, as dependências declaradas e o procedimento para substituir ou retirar uma versão. Não é aconselhável assumir que a plataforma resolve, por si só, a observabilidade, as novas tentativas ou a recuperação: esses controlos devem ser validados no desenho concreto da integração.

Sinais e limiares que permitem atuar

Os alertas úteis baseiam-se em sintomas que exigem uma decisão, e não em qualquer variação técnica. Cada sinal deve responder a três perguntas: o que mede, que limiar ativa a intervenção e qual é a primeira ação. Combine pelo menos estas categorias:

  • Falhas: erros de autenticação, respostas inválidas, rejeições do destino ou tarefas terminadas com erro.
  • Atraso: idade da mensagem mais antiga, tempo desde a última entrega correta ou incumprimento de uma janela de processamento.
  • Volume anómalo: queda para zero quando deveria existir atividade, aumento invulgar de eventos ou uma fila que cresce de forma sustentada.
  • Duplicados: a mesma chave de negócio processada mais de uma vez fora da regra prevista.
  • Perda de rastreabilidade: eventos sem identificador de correlação, registos incompletos ou impossibilidade de associar origem e destino.

Evite limiares arbitrários. Calcule uma linha de base com o comportamento normal por faixa horária e estabeleça limites ligados à tolerância do negócio. Se uma encomenda pode esperar quinze minutos, um alerta ao fim de duas horas não é operacional. Se as novas tentativas automáticas são expectáveis, alertar à primeira tentativa falhada apenas gerará ruído.

Estrutura de um runbook útil sob pressão

O procedimento deve poder ser seguido de cima para baixo durante um incidente. Utilize instruções curtas, ligações diretas para evidências e condições explícitas para avançar. Uma estrutura eficaz contém seis fases.

  1. Verificar: confirmar o alerta através de um painel, de uma amostra de registos e do identificador de correlação. Excluir manutenção planeada ou um falso positivo.
  2. Classificar: identificar se afeta a disponibilidade, a validade dos dados, a compatibilidade, a capacidade ou o processamento parcial. Estimar o alcance por período, entidade e sistemas afetados.
  3. Conter: interromper a propagação quando existir risco de corrupção. Pode consistir em pausar o consumidor, desativar um acionador ou enviar registos para uma fila de quarentena.
  4. Comunicar: informar com factos: fluxo afetado, hora estimada de início, impacto conhecido, medida de contenção e próxima atualização. Não comunique causas não confirmadas.
  5. Recuperar: aplicar a correção aprovada, executar novas tentativas ou reprocessamento controlado e verificar o resultado de uma amostra antes de ampliar o alcance.
  6. Registar: conservar a cronologia, as decisões, os comandos ou ações realizados, as evidências e o trabalho pendente.

Inclua pré-requisitos e permissões. Uma instrução como reprocessar mensagens pendentes é insuficiente se não explicar a partir de que intervalo, que filtro impede duplicados, quem autoriza a operação e como o resultado é validado.

Árvore de decisão para falhas frequentes

Uma árvore de decisão reduz a ambiguidade. Pode ser expressa de forma simples e adaptada a cada integração:

O destino está disponível?
- Não: verificar o estado e as credenciais; pausar se a fila crescer além do limite.
- Sim: a mensagem cumpre o contrato de dados?
  - Não: enviar para quarentena; não repetir a tentativa sem correção.
  - Sim: o contrato ou a versão esperada foi alterado?
    - Sim: interromper deployments e aplicar compatibilidade ou reversão.
    - Não: rever limites, tempos de espera e erros transitórios.

Perante indisponibilidade, priorize a preservação dos eventos e evite saturar o destino com novas tentativas. Perante dados inválidos, isole os registos afetados e determine se o defeito está na origem, na transformação ou no contrato. Perante uma alteração incompatível, congele alterações adicionais, compare esquemas e reverta apenas se a reversão não quebrar registos já processados. Se as novas tentativas se esgotarem, não as reinicie indiscriminadamente: classifique a causa e confirme a idempotência.

O processamento parcial merece uma secção específica. É o caso em que a origem considera uma operação concluída, mas o destino não, ou vice-versa. A recuperação exige reconciliação por identificadores de negócio e não apenas por contadores. Um total de eventos processados pode coincidir mesmo que existam entidades incorretas ou duplicadas.

Quando pausar, repetir a tentativa, reprocessar ou reverter

Estas ações têm riscos distintos. O runbook deve convertê-los em critérios de decisão:

  • Pausar quando continua a entrar informação incorreta, não existe rastreabilidade suficiente ou a acumulação ameaça a integridade. Defina a capacidade máxima de retenção antes de escolher esta opção.
  • Repetir a tentativa perante erros transitórios comprovados, como uma indisponibilidade temporária, desde que a operação seja idempotente ou disponha de uma chave de desduplicação.
  • Reprocessar depois de corrigir a causa e delimitar o intervalo ou conjunto afetado. Faça-o por lotes controlados, com validação entre lotes.
  • Reverter uma alteração quando existe uma versão anterior conhecida, a reversão é compatível com os dados em curso e foi avaliado o efeito sobre consumidores e dependências.

A velocidade não justifica alterar dados sem controlo. Se não for possível garantir a idempotência, trate o reprocessamento como uma operação de risco: solicite aprovação, teste com uma amostra e prepare uma reconciliação posterior.

Responsabilidades, encerramento e aprendizagem

Separe os papéis, ainda que a mesma pessoa os possa assumir em equipas pequenas. O responsável de plantão executa o diagnóstico inicial; o proprietário técnico aprova alterações de arquitetura ou recuperação complexa; o responsável de negócio decide sobre prioridades e comunicação do impacto. Estabeleça prazos de escalonamento e um canal único para o estado do incidente.

Não encerre um incidente porque o alerta desapareceu. Exija evidências: intervalo afetado confirmado, registos de erro preservados, dados reconciliados entre origem e destino, filas ou tarefas pendentes revistas e comunicação final emitida. Crie ações posteriores com responsável e data: corrigir um contrato, adicionar um sinal, ajustar um limiar, melhorar a idempotência ou atualizar contactos.

Teste e mantenha o procedimento

Teste e mantenha o procedimento — guía visual de Linkses

Um runbook não testado é uma hipótese. Realize simulações controladas de credenciais inválidas, destino indisponível, evento duplicado, alteração de esquema e atraso sustentado. Verifique se os alertas chegam à equipa adequada, se os acessos funcionam e se os passos podem ser executados sem depender de conhecimento tácito.

Reveja o documento após cada incidente relevante e perante alterações em sistemas, contratos, responsáveis ou mecanismos de deployment. Uma revisão periódica pode verificar ligações, permissões, limiares, contactos e procedimentos de reversão. O resultado é uma integração tratada como um serviço operacional: com limites claros, decisões repetíveis e uma recuperação baseada em evidências.

Fontes e referências

  1. Web technology standardsW3C
  2. Web security guidanceOWASP Foundation
  3. Web performance guidanceweb.dev
Linkses · Boost your business

Produzido e revisto pela equipa editorial da Linkses. Revisión editorial de Linkses.