- Os produtos do Google são usados por bilhões de pessoas em todo o mundo, e é fundamental que funcionem de forma confiável. A equipe de SRE do Google desenvolveu diversas abordagens para aumentar a confiabilidade dos serviços.
- As técnicas tradicionais de SRE (orçamento de erro, postmortem etc.) contribuíram significativamente para a expansão da escala dos serviços web do Google.
- Com o recente avanço de IA/ML etc., a complexidade dos sistemas aumentou drasticamente, tornando necessária uma nova abordagem.
- A teoria de sistemas e a teoria de controle são úteis para compreender de forma sistemática interações complexas.
- É essencial adotar uma abordagem que garanta segurança desde o design fundamental em nível de sistema, em vez de apenas “resolver após a ocorrência do problema”.
Visão geral do STAMP
- O professor Nancy Leveson do MIT propôs o STAMP (System-Theoretic Accident Model and Processes), que analisa incidentes a partir da perspectiva de interações de sistemas complexos, em vez de falha de componentes individuais.
- Em vez da causalidade tradicional (“há um bug, então há uma falha”), ele prioriza “em que fluxo de controle incorreto o sistema inteiro caiu”.
- Reconstrói acidentes com a análise Causal Analysis based on Systems Theory (CAST) e identifica fatores de risco antecipadamente com a System-Theoretic Process Analysis (STPA).
Base da teoria de controle – quatro condições
- A teoria de controle requer 4 pontos para um controle eficaz:
- Condição de objetivo: deve existir um objetivo (por exemplo, manter uma métrica específica).
- Condição de ação: é necessário que o sistema possa afetar seu estado para atingir o objetivo.
- Condição de modelo: é necessário um modelo para entender o sistema (interno e externo).
- Condição de observabilidade: é necessário um sistema de observação, como sensores, para identificar o estado atual do sistema.
Tratar a interrupção (outage) como um problema de controle
- Antes, havia forte tendência de descrever uma interrupção como “falhas em cascata”.
- O STAMP interpreta isso como uma perspectiva de “controle e interação inadequados”, garantindo segurança no nível de sistema.
- Em vez de apenas descobrir “onde a primeira falha começou”, analisa-se de forma abrangente “qual fluxo de controle/feedback estava anômalo”.
Ganhar tempo a partir do estado de risco (hazard)
- O modelo causal tradicional pula do estado normal para o estado de acidente de uma vez, por isso o tempo de resposta é muito curto.
- No STAMP, ao introduzir o conceito de “estado de risco”, é possível localizar o ponto de entrada no risco antes de um acidente completo.
- Após detectar o estado de risco e intervir ativamente, surge a chance de prevenção antes de evoluir para um acidente real.
Vendo casos reais
- O “Rightsizer” interno do Google realoca recursos com base no uso do serviço.
- Pela perspectiva do STPA, é possível identificar antecipadamente situações como “receber informações de uso incorretas e reduzir recursos abaixo da necessidade real”.
- Na fase de design, o foco era principalmente em “lógica de controle correta”, mas ao aplicar STPA foi possível descobrir problemas no caminho de feedback (como o processo de cálculo de uso de recursos).
- Em 2021, houve um caso real em que feedback incorreto se acumulou e levou a um grande problema, permanecendo em estado de risco por algumas semanas sem que fosse percebido.
Direção futura
- O SRE do Google busca maior segurança e controle da complexidade por meio de abordagens baseadas em teoria de sistemas, como STAMP, STPA e CAST.
- Mesmo com um investimento de engenharia relativamente pequeno (algumas semanas), é possível identificar muitos cenários de risco potencial em sistemas de grande porte.
- Com a análise baseada em teoria de controle além da cultura de confiabilidade existente, a possibilidade de oferecer serviços estáveis também aumenta na era de IA/ML.
1 comentários
Opinião do Hacker News
A abordagem de engenharia do Google pode ser prejudicial para startups. SREs tendem a sofrer de síndrome do herói e a tentar refazer o desenho técnico das outras equipes
Há semelhanças com os livros de Sidney Dekker
A abordagem CAST parece promissora
Há uma similaridade interessante entre CAST e o trabalho de análise mecânica
Fico curioso para saber se há casos de aplicação de uma estrutura formal de engenharia de segurança a análises de redes neurais
O exemplo do "rightsizer" pode ter chegado ao mesmo resultado mesmo se analisado de forma tradicional
A razão para não gostar de testes de software é a falha causada por fatores externos
CAST é semelhante à análise de causa raiz de múltiplos fatores
Há a questão de SRE/DevOps fazer parte de uma função cotidiana
A característica mais marcante do SRE do Google é a necessidade de ajuda do SRE quando um novo produto é lançado
O artigo é longo demais e é difícil pegar o ponto principal
Fico curioso para saber se essa abordagem ainda tem valor em escala fora do FAANG
Assim como no DevOps, o escopo do SRE está se expandindo