Skip to content
Latchkey

O Que É Degradação Graciosa? Explicado

Degradação graciosa é projetar um sistema de modo que, quando uma parte falha, o todo continua funcionando em capacidade reduzida em vez de entrar em colapso por completo.

Sistemas resilientes não assumem que todo componente está sempre disponível. Degradação graciosa é a disciplina de falhar suavemente: quando uma dependência não essencial está fora, o sistema abre mão daquela funcionalidade e segue em frente, em vez de derrubar tudo junto.

O que significa

Degradar graciosamente é perder funcionalidade de forma proporcional à falha, não catastroficamente. Uma caixa de busca que retorna resultados levemente desatualizados quando o índice ao vivo está fora degradou graciosamente; uma que retorna uma página de erro em branco não. O usuário mantém a maior parte do valor.

Técnicas comuns

  • Fallbacks: sirva um valor em cache ou default quando a fonte ao vivo falha.
  • Feature toggles: desabilite uma funcionalidade não crítica em vez de dar erro.
  • Timeouts e circuit breakers: falhe rápido em uma dependência e continue.
  • Defaults: prossiga com defaults sensatos quando dados opcionais estão indisponíveis.

Degradação vs falha total

Uma falha total é tudo ou nada: um componente morre e a coisa inteira retorna um erro. Degradação graciosa contém o raio de impacto para que uma única falha cause uma perda pequena e delimitada em vez de uma indisponibilidade total. A diferença é muitas vezes a diferença entre um incidente e um não evento.

Em pipelines de CI

Pipelines também podem degradar graciosamente: tornar um step não crítico não bloqueante, permitir que um upload de relatório opcional falhe sem falhar o build, ou recorrer a um mirror quando um registry primário está fora. O build ainda produz seu resultado essencial mesmo quando uma peça periférica se comporta mal.

O ângulo Latchkey

A autocorreção é uma forma de degradação graciosa contra infraestrutura transitória: em vez de deixar um soluço momentâneo derrubar o build, os managed runners de autocorreção da Latchkey detectam falhas transitórias e mecânicas e automaticamente fazem retry, para que um soluço pontual não quebre seu build.

Principais conclusões

  • Degradação graciosa mantém um sistema parcialmente funcional quando uma parte falha.
  • Fallbacks, toggles, timeouts e defaults são técnicas comuns.
  • Ela contém o raio de impacto em vez de causar uma indisponibilidade total.
  • Pipelines degradam graciosamente via steps não bloqueantes e mirrors.

Guias relacionados