Capítulo 33 – Lições Aprendidas de Outras Indústrias

Escrito por Jennifer Petoff

Editado por Betsy Beyer

Uma análise profunda da cultura e práticas do SRE no Google naturalmente leva à questão de como outras indústrias gerenciam seus negócios para garantir confiabilidade. A elaboração deste livro sobre o SRE do Google criou uma oportunidade para conversar com vários engenheiros do Google sobre suas experiências de trabalho anteriores em diversas outras áreas de alta confiabilidade, a fim de abordar as seguintes questões comparativas:

  • As principais utilizadas no SRE são igualmente importantes fora do Google, ou outras indústrias enfrentam os requisitos de alta confiabilidade de maneiras marcadamente diferentes?
  • Se outras indústrias também adotam os princípios do SRE, como esses princípios se manifestam?
  • Quais são as semelhanças e diferenças na implementação desses princípios entre as indústrias?
  • Quais fatores impulsionam as semelhanças e diferenças na implementação?
  • O que o Google e a indústria de tecnologia podem aprender com essas comparações?

Um número de princípios fundamentais para a Engenharia de Confiabilidade de Site (SRE) no Google são discutidos ao longo deste texto. Para simplificar nossa comparação das melhores práticas em outras indústrias, destilamos esses conceitos em quatro temas-chave:

  • Preparação e Testes de Desastre
  • Cultura de Postmortem
  • Automação e Redução da Sobrecarga Operacional
  • Tomada de Decisão Estruturada e Racional

Este capítulo introduz as indústrias que perfilamos e os veteranos da indústria que entrevistamos. Definimos temas-chave da SRE, discutimos como esses temas são implementados no Google e fornecemos exemplos de como esses princípios se manifestam em outras indústrias para fins comparativos. Concluímos com algumas percepções e discussões sobre os padrões e antipadrões que descobrimos.

Conheça Nossos Veteranos da Indústria

Peter Dahl é engenheiro principal no Google. Anteriormente, trabalhou como contratado de defesa em diversos sistemas de alta confiabilidade, incluindo sistemas de GPS e orientação inercial para veículos aéreos e de rodas. As consequências de uma falha de confiabilidade em tais sistemas incluem mau funcionamento ou perda do veículo, e as consequências financeiras associadas a essa falha.

Mike Doherty é engenheiro de confiabilidade de site no Google. Ele trabalhou como salva-vidas e instrutor de salva-vidas por uma década no Canadá. A confiabilidade é absolutamente essencial por natureza nesse campo, pois vidas estão em jogo todos os dias.

Erik Gross é atualmente um engenheiro de software no Google. Antes de ingressar na empresa, passou sete anos projetando algoritmos e código para os lasers e sistemas usados em cirurgias refrativas oculares (por exemplo, LASIK). Este é um campo de alto risco e alta confiabilidade, no qual muitas lições relevantes para a confiabilidade diante de regulamentações governamentais e riscos humanos foram aprendidas à medida que a tecnologia recebia aprovação da FDA, gradualmente melhorava e finalmente se tornava onipresente.

Gus Hartmann e Kevin Greer têm experiência na indústria de telecomunicações, incluindo a manutenção do sistema de resposta a emergências E911. Kevin é atualmente um engenheiro de software na equipe do Google Chrome, e Gus é um engenheiro de sistemas na equipe de Engenharia Corporativa do Google. As expectativas dos usuários na indústria de telecomunicações demandam alta confiabilidade. As implicações de uma falha no serviço variam desde o incômodo do usuário devido a uma interrupção do sistema até fatalidades se o E911 ficar inoperante.

Ron Heiby é gerente técnico de Programa para Engenharia de Confiabilidade de Site no Google. Ron tem experiência no desenvolvimento de celulares, dispositivos médicos e na indústria automotiva. Em alguns casos, ele trabalhou em componentes de interface dessas indústrias (por exemplo, em um dispositivo para permitir que leituras de EKG em ambulâncias sejam transmitidas pela rede digital de telefonia sem fio). Nessas indústrias, o impacto de um problema de confiabilidade pode variar desde prejuízos comerciais devido a recalls de equipamentos até o impacto indireto na vida e na saúde (por exemplo, pessoas não recebendo a atenção médica necessária se o EKG não puder se comunicar com o hospital).

Adrian Hilton é engenheiro de coordenação de Lançamentos no Google. Anteriormente, trabalhou em aeronaves militares do Reino Unido e dos EUA, aviônicos navais e sistemas de gerenciamento de equipamentos de aeronaves, além de sistemas de sinalização ferroviária no Reino Unido. A confiabilidade é crucial nesse espaço, pois o impacto de incidentes varia desde a perda de equipamentos de vários milhões de dólares até lesões e fatalidades.

Eddie Kennedy é gerente de projeto na equipe de Experiência Global do Cliente no Google e é engenheiro mecânico por formação. Eddie passou seis anos trabalhando como engenheiro de processo Six Sigma Black Belt em uma instalação de fabricação de diamantes sintéticos. Essa indústria é caracterizada por um foco incessante na segurança, pois os extremos de temperatura e pressão exigidos pelo processo representam um alto nível de perigo para os trabalhadores diariamente.

John Li é atualmente engenheiro de confiabilidade de site no Google. Anteriormente, John trabalhou como administrador de sistemas e desenvolvedor de software em uma empresa de negociação proprietária na indústria financeira. Questões de confiabilidade no setor financeiro são tratadas com muita seriedade, pois podem levar a sérias consequências fiscais.

Dan Sheridan é engenheiro de confiabilidade de site no Google. Antes de ingressar na empresa, trabalhou como consultor de segurança na indústria nuclear civil no Reino Unido. A confiabilidade é crucial na indústria nuclear, pois um incidente pode ter sérias repercussões: as interrupções podem incorrer em perdas de receitas de milhões de dólares por dia, enquanto os riscos para os trabalhadores e para a comunidade são ainda mais graves, ditando uma tolerância zero para falhas. A infraestrutura nuclear é projetada com uma série de dispositivos de segurança que interrompem as operações antes que um incidente de tal magnitude seja alcançado.

Jeff Stevenson é atualmente gerente de operações de hardware no Google. Ele tem experiência anterior como engenheiro nuclear na Marinha dos Estados Unidos em um submarino. As apostas em termos de confiabilidade na Marinha nuclear são elevadas — os problemas que surgem em caso de incidentes variam desde equipamentos danificados até impactos ambientais de longa duração e potencial perda de vidas.

Matthew Toia é gerente de confiabilidade de site focado em sistemas de armazenamento. Antes de ingressar no Google, trabalhou no desenvolvimento de software e na implementação de sistemas de software de controle de tráfego aéreo. Os efeitos de incidentes nesta indústria variam de inconvenientes para passageiros e companhias aéreas (por exemplo, voos atrasados, aviões desviados) até a potencial perda de vidas em caso de acidentes. A defesa em profundidade é uma estratégia-chave para evitar falhas catastróficas.

Agora que você conheceu nossos especialistas e obteve uma compreensão geral de por que a confiabilidade é importante em seus respectivos campos anteriores, vamos aprofundar nos quatro temas-chave da confiabilidade.

Preparedness and Disaster Testing

“A esperança não é uma estratégia.” Este chamado de mobilização da equipe SRE no Google resume o que queremos dizer com preparação e testes de desastre. A cultura SRE está sempre vigilante e questionando constantemente: O que poderia dar errado? Que ações podemos tomar para abordar essas questões antes que elas levem a uma interrupção ou perda de dados? Nossos exercícios anuais de Teste de Desastre e Recuperação (DiRT) buscam enfrentar diretamente essas perguntas. Nos exercícios DiRT, os SREs levam os sistemas de produção ao limite e causam interrupções reais para:

  • Garantir que os sistemas reajam da maneira que imaginamos
  • Identificar fraquezas inesperadas
  • Encontrar maneiras de tornar os sistemas mais robustos para evitar interrupções não controladas

Diversas estratégias para testar a prontidão para desastres e garantir a preparação em outras indústrias surgiram de nossas conversas. As estratégias incluíram o seguinte:

  • Foco organizacional incessante na segurança
  • Atenção aos detalhes
  • Capacidade oscilante
  • Simulações e treinamentos ao vivo
  • Treinamento e certificação
  • Foco obsessivo na coleta detalhada de requisitos e design
  • Defesa em profundidade

Foco Organizacional Incansável na Segurança

Este princípio é particularmente importante em um contexto de engenharia industrial. Segundo Eddie Kennedy, que trabalhou em um chão de fábrica onde os trabalhadores enfrentavam riscos à segurança, “toda reunião de gerenciamento começava com uma discussão sobre segurança”. A indústria de manufatura se prepara para o inesperado estabelecendo processos altamente definidos que são rigorosamente seguidos em todos os níveis da organização. É crucial que todos os funcionários levem a segurança a sério, e que os trabalhadores se sintam capacitados a se manifestar caso algo pareça fora do comum. No caso das indústrias de energia nuclear, aeronaves militares e sinalização ferroviária, as normas de segurança para software são detalhadamente especificadas (por exemplo, UK Defence Standard 00-56, IEC 61508, IEC513, US DO-178B/C e DO-254) e os níveis de confiabilidade para tais sistemas são claramente identificados (por exemplo, Nível de Integridade de Segurança (SIL) 1–4), com o objetivo de especificar abordagens aceitáveis para a entrega de um produto.

Atenção aos Detalhes

De seu tempo na Marinha dos Estados Unidos, Jeff Stevenson recorda uma consciência aguçada de como a falta de diligência na execução de pequenas tarefas (por exemplo, manutenção de óleo lubrificante) poderia levar a uma falha importante no submarino. Um pequeno descuido ou erro pode ter grandes efeitos. Os sistemas são altamente interconectados, então um acidente em uma área pode afetar vários componentes relacionados. A Marinha nuclear foca na manutenção de rotina para garantir que pequenos problemas não se transformem em grandes complicações.

Capacidade Oscilante

A utilização do sistema na indústria de telecomunicações pode ser altamente imprevisível. A capacidade absoluta pode ser sobrecarregada por eventos imprevisíveis, como desastres naturais, bem como por eventos grandes e previsíveis, como as Olimpíadas. Segundo Gus Hartmann, a indústria lida com esses incidentes implantando capacidade oscilante na forma de uma SOW (comutador sobre rodas), um escritório móvel de telecomunicações. Essa capacidade excedente pode ser implementada em uma emergência ou em antecipação a um evento conhecido que provavelmente sobrecarregará o sistema. Questões de capacidade também podem surgir de maneira inesperada em assuntos não relacionados à capacidade absoluta. Por exemplo, quando o número de telefone privado de uma celebridade vazou em 2005 e milhares de fãs tentaram ligar para ela simultaneamente, o sistema de telecomunicações exibiu sintomas semelhantes a um ataque distribuído de negação de serviço (DDoS) ou um erro massivo de roteamento.

Simulações e Treinamentos ao Vivo

Os testes de Recuperação de Desastres do Google têm muito em comum com as simulações e treinamentos ao vivo que são foco central em muitas das indústrias estabelecidas que pesquisamos. As potenciais consequências de uma interrupção do sistema determinam se o uso de uma simulação ou de um treinamento ao vivo é apropriado. Por exemplo, Matthew Toia destaca que a indústria da aviação não pode realizar um teste ao vivo “em produção” sem colocar equipamentos e passageiros em risco. Em vez disso, eles usam simuladores extremamente realistas com feeds de dados ao vivo, nos quais as salas de controle e os equipamentos são modelados nos mínimos detalhes para garantir uma experiência realista sem colocar pessoas reais em risco. Gus Hartmann relata que a indústria de telecomunicações normalmente se concentra em treinamentos ao vivo voltados para sobreviver a furacões e outras emergências climáticas. Esse modelamento levou à criação de instalações à prova de intempéries com geradores dentro do prédio capazes de resistir a uma tempestade.

A Marinha nuclear dos EUA utiliza uma mistura de exercícios mentais de “e se” e treinamentos ao vivo. Segundo Jeff Stevenson, os treinamentos ao vivo envolvem “realmente quebrar coisas reais, mas com parâmetros de controle. Os treinamentos ao vivo são realizados religiosamente, toda semana, de dois a três dias por semana”. Para a Marinha nuclear, os exercícios mentais são úteis, mas não são suficientes para se preparar para incidentes reais. As respostas precisam ser praticadas para não serem esquecidas.

Segundo Mike Doherty, os salva-vidas enfrentam exercícios de teste de desastres mais semelhantes a uma experiência de “cliente misterioso”. Normalmente, um gerente de instalação trabalha com uma criança ou um salva-vidas em treinamento incógnito para encenar um afogamento simulado. Esses cenários são conduzidos da maneira mais realista possível para que os salva-vidas não consigam diferenciar entre emergências reais e encenadas.

Treinamento e Certificação

Nossas entrevistas sugerem que o treinamento e a certificação são particularmente importantes quando vidas estão em jogo. Por exemplo, Mike Doherty descreveu como os salva-vidas passam por uma certificação rigorosa de treinamento, além de um processo periódico de recertificação. Os cursos incluem componentes de condicionamento físico (por exemplo, um salva-vidas deve ser capaz de segurar alguém mais pesado do que eles com os ombros fora da água), componentes técnicos como primeiros socorros e RCP, e elementos operacionais (por exemplo, se um salva-vidas entra na água, como os outros membros da equipe respondem?). Cada instalação também tem treinamento específico do local, porque fazer o trabalho de salva-vidas em uma piscina é bastante diferente de fazer o trabalho em uma praia à beira do lago ou no oceano.

Foco na Coleta Detalhada de Requisitos e Design

Alguns dos engenheiros que entrevistamos discutiram a importância da coleta detalhada de requisitos e documentos de design. Essa prática é especialmente importante ao trabalhar com dispositivos médicos. Em muitos desses casos, o uso real ou a manutenção do equipamento não estão sob a responsabilidade dos designers do produto. Assim, os requisitos de uso e manutenção precisam ser obtidos de outras fontes.

Por exemplo, segundo Erik Gross, as máquinas de cirurgia ocular a laser são projetadas para serem o mais à prova de falhas possível. Portanto, é especialmente importante solicitar requisitos aos cirurgiões que realmente usam essas máquinas e aos técnicos responsáveis por sua manutenção. Em outro exemplo, o ex-contratado de defesa Peter Dahl descreveu uma cultura de design muito detalhada em que criar um novo sistema de defesa comumente envolvia um ano inteiro de design, seguido por apenas três semanas de codificação para concretizar o design. Ambos esses exemplos são bastante diferentes da cultura de lançamento e iteração do Google, que promove uma taxa de mudança muito mais rápida com um risco calculado. Outras indústrias (por exemplo, a indústria médica e a militar, como discutido anteriormente) têm pressões, apetites de risco e requisitos muito diferentes, e seus processos são muito influenciados por essas circunstâncias.

Defesa em Profundidade e Amplitude

Na indústria de energia nuclear, a defesa em profundidade é um elemento-chave para a preparação. Reatores nucleares possuem redundância em todos os sistemas e implementam uma metodologia de design que exige sistemas alternativos atrás dos sistemas primários em caso de falha. O sistema é projetado com múltiplas camadas de proteção, incluindo uma barreira física final para liberação radioativa ao redor da própria usina. A defesa em profundidade é particularmente importante na indústria nuclear devido à tolerância zero para falhas e incidentes.

Cultura de Postmortem

Ação Corretiva e Preventiva (CAPA) é um conceito bem conhecido para melhorar a confiabilidade, que se concentra na investigação sistemática das causas-raiz de problemas ou riscos identificados para evitar recorrências. Esse princípio é incorporado pela forte cultura de postmortems sem culpados da SRE. Quando algo dá errado (e dada a escala, complexidade e rápida taxa de mudança no Google, algo inevitavelmente dará errado), é importante avaliar todos os seguintes:

  • O que aconteceu
  • A eficácia da resposta
  • O que faríamos de forma diferente da próxima vez
  • Quais ações serão tomadas para garantir que um incidente específico não ocorra novamente

Este exercício é realizado sem apontar o dedo para qualquer indivíduo. Em vez de atribuir culpa, é muito mais importante entender o que deu errado e como, como organização, nos reuniremos para garantir que isso não aconteça novamente. Focar em quem pode ter causado a interrupção é contraproducente. Os postmortems são realizados após incidentes e publicados em todas as equipes de SRE para que todos possam se beneficiar das lições aprendidas.

Nossas entrevistas revelaram que muitas indústrias realizam uma versão do post-mortem (embora muitas não usem esse termo específico, por razões óbvias). A motivação por trás desses exercícios parece ser o principal diferenciador entre as práticas da indústria.

Muitas indústrias são fortemente regulamentadas e são responsabilizadas por autoridades governamentais específicas quando algo dá errado. Essa regulamentação é especialmente intrínseca quando as apostas do fracasso são altas (por exemplo, vidas estão em jogo). Agências governamentais relevantes incluem a FCC (telecomunicações), FAA (aviação), OSHA (indústrias de manufatura e química), FDA (dispositivos médicos) e as várias Autoridades Nacionais Competentes na UE. As indústrias de energia nuclear e transporte também são fortemente regulamentadas.

Considerações de segurança são outro fator motivador por trás dos postmortems. Nas indústrias de manufatura e química, o risco de lesões ou morte está sempre presente devido à natureza das condições necessárias para produzir o produto final (alta temperatura, pressão, toxicidade e corrosividade, para citar alguns). Por exemplo, a Alcoa possui uma cultura de segurança notável. O ex-CEO Paul O’Neill exigia que a equipe o notificasse dentro de 24 horas de qualquer lesão que tirasse um trabalhador do serviço por um dia. Ele até distribuiu seu número de telefone residencial para os trabalhadores no chão da fábrica para que pudessem alertá-lo pessoalmente sobre preocupações de segurança.

As apostas são tão altas nas indústrias de manufatura e química que até mesmo “quase acidentes” — quando um evento poderia ter causado sérios danos, mas não causou — são cuidadosamente analisados. Esses cenários funcionam como uma espécie de post-mortem preventivo. De acordo com VM Brasseur em uma palestra dada na YAPC NA 2015, “Há múltiplos quase acidentes em praticamente todos os desastres e crises empresariais, e geralmente são ignorados no momento em que ocorrem. Erro latente, mais uma condição facilitadora, resulta em coisas não funcionando exatamente como você planejou” [Bra15]. Quase acidentes são efetivamente desastres esperando para acontecer. Por exemplo, cenários em que um trabalhador não segue o procedimento operacional padrão, um funcionário pula para fora do caminho no último segundo para evitar um respingo, ou um derramamento na escada não é limpo, todos representam quase acidentes e oportunidades de aprender e melhorar. Na próxima vez, o funcionário e a empresa podem não ter tanta sorte.

O programa CHIRP (Confidential Reporting Programme for Aviation and Maritime) do Reino Unido busca aumentar a conscientização sobre tais incidentes em toda a indústria, fornecendo um ponto central de relato onde o pessoal da aviação e marítimo pode relatar quase acidentes confidencialmente. Relatórios e análises desses quase acidentes são então publicados em boletins periódicos.

O salvamento tem uma cultura profundamente incorporada de análise pósincidente e planejamento de ação. Mike Doherty brinca, “Se os pés de um salva-vidas entrarem na água, haverá papelada!” Uma descrição detalhada é necessária após qualquer incidente na piscina ou na praia. No caso de incidentes graves, a equipe examina coletivamente o incidente de ponta a ponta, discutindo o que deu certo e o que deu errado. Mudanças operacionais são feitas com base nessas descobertas, e frequentemente são agendados treinamentos para ajudar as pessoas a ganhar confiança em sua capacidade de lidar com um incidente semelhante no futuro. Em casos de incidentes particularmente chocantes ou traumáticos, um conselheiro é levado ao local para ajudar a equipe a lidar com as consequências psicológicas. Os salva-vidas podem estar bem preparados para o que aconteceu na prática, mas podem sentir que não fizeram um trabalho adequado. Semelhante ao Google, o salvamento abraça uma cultura de análise de incidentes sem culpados. Os incidentes são caóticos, e muitos fatores contribuem para qualquer incidente específico. Neste campo, não é útil atribuir a culpa a um único indivíduo.

Automatizando Trabalho Repetitivo e Sobrecarga Operacional

No seu cerne, os Engenheiros de Confiabilidade de Sites do Google são engenheiros de software com uma baixa tolerância para trabalhos reativos repetitivos. É fortemente incorporado em nossa cultura evitar repetir uma operação que não acrescenta valor a um serviço. Se uma tarefa pode ser automatizada, por que executar um sistema em trabalhos repetitivos de baixo valor? A automação reduz a sobrecarga operacional e libera tempo para que nossos engenheiros avaliem e melhorem proativamente os serviços que eles apoiam.

As indústrias que pesquisamos foram mistas em termos de se, como e por que adotaram a automação. Certas indústrias confiavam mais em humanos do que em máquinas. Durante o mandato do veterano da indústria, a Marinha nuclear dos EUA evitou a automação em favor de uma série de intertravamentos e procedimentos administrativos. Por exemplo, de acordo com Jeff Stevenson, operar uma válvula exigia um operador, um supervisor e um membro da tripulação ao telefone com o oficial de vigilância de engenharia encarregado de monitorar a resposta à ação tomada. Essas operações eram muito manuais devido à preocupação de que um sistema automatizado pudesse não detectar um problema que um ser humano definitivamente notaria. As operações em um submarino são governadas por uma cadeia de decisões humanas confiáveis — uma série de pessoas, em vez de um indivíduo. A Marinha nuclear também estava preocupada que a automação e os computadores se movessem tão rapidamente que fossem muito capazes de cometer um grande erro irreparável. Ao lidar com reatores nucleares, uma abordagem metódica lenta e constante é mais importante do que realizar uma tarefa rapidamente.

De acordo com John Li, a indústria de negociação proprietária tornou-se cada vez mais cautelosa em relação à aplicação de automação nos últimos anos. A experiência mostrou que a automação configurada incorretamente pode causar danos significativos e incorrer em grande perda financeira em um período muito curto de tempo. Por exemplo, em 2012, o Knight Capital Group enfrentou uma “falha de software” que resultou em uma perda de $440 milhões em apenas algumas horas.160 Da mesma forma, em 2010, o mercado de ações dos EUA experimentou um Flash Crash que foi atribuído a um operador fora de controle tentando manipular o mercado com meios automatizados. Embora o mercado tenha se recuperado rapidamente, o Flash Crash resultou em uma perda da magnitude de trilhões de dólares em apenas 30 minutos.161 Computadores podem executar tarefas muito rapidamente, e a velocidade pode ser negativa se essas tarefas forem configuradas incorretamente.

Em contraste, algumas empresas abraçam a automação precisamente porque os computadores agem mais rapidamente do que as pessoas. De acordo com Eddie Kennedy, eficiência e economia de dinheiro são fundamentais na indústria de manufatura, e a automação oferece um meio de realizar tarefas de maneira mais eficiente e econômica. Além disso, a automação é geralmente mais confiável e repetitiva do que o trabalho realizado manualmente por humanos, o que significa que ela produz padrões de qualidade mais altos e tolerâncias mais apertadas. Dan Sheridan discutiu a automação implantada na indústria nuclear do Reino Unido. Aqui, uma regra prática dita que se uma usina precisar responder a uma determinada situação em menos de 30 minutos, essa resposta deve ser automatizada.

Na experiência de Matt Toia, a indústria da aviação aplica a automação de forma seletiva.

Por exemplo, a failover operacional é realizada automaticamente, mas quando se trata de certas outras tarefas, a indústria confia na automação apenas quando verificada por um ser humano. Embora a indústria empregue uma boa quantidade de monitoramento automático, implementações reais de sistemas de controle de tráfego aéreo devem ser inspecionadas manualmente por seres humanos.

De acordo com Erik Gross, a automação tem sido bastante eficaz em reduzir erros do usuário na cirurgia a laser nos olhos. Antes da cirurgia LASIK, o médico mede o paciente usando um teste refrativo ocular. Originalmente, o médico digitava os números e apertava um botão, e o laser corrigiria a visão do paciente. No entanto, erros de entrada de dados poderiam ser um grande problema. Esse processo também envolvia a possibilidade de misturar dados do paciente ou embaralhar números para o olho esquerdo e direito.

A automação agora reduz consideravelmente a chance de os humanos cometerem um erro que impacte a visão de alguém. Uma verificação automática dos dados inseridos manualmente foi a primeira melhoria automatizada significativa: se um operador humano insere medidas fora de uma faixa esperada, a automação imediatamente destaca esse caso como incomum. Outras melhorias automatizadas seguiram esse desenvolvimento: agora a íris é fotografada durante o teste refrativo ocular preliminar. Quando é hora de realizar a cirurgia, a íris do paciente é automaticamente correspondida à íris na foto, eliminando assim a possibilidade de misturar dados do paciente. Quando essa solução automatizada foi implementada, uma classe inteira de erros médicos desapareceu.

 

Tomada de Decisão Estruturada e Racional

No Google em geral e, em particular, na Engenharia de Confiabilidade de Sites, os dados são essenciais. A equipe aspira a tomar decisões de maneira estruturada e racional, garantindo que:

  • A base para a decisão é acordada antecipadamente, em vez de ser justificada ex post facto.
  • Os inputs para a decisão são claros.
  • Quaisquer suposições são explicitamente declaradas.
  • Decisões baseadas em dados superam decisões baseadas em sentimentos, palpites ou na opinião do funcionário mais sênior na sala.

O SRE do Google opera sob a premissa básica de que todos na equipe:

  • Tem o melhor interesse dos usuários de um serviço no coração.
  • Pode descobrir como proceder com base nos dados disponíveis.

As decisões devem ser baseadas em informações em vez de serem prescritivas e são tomadas sem deferência a opiniões pessoais, mesmo as da pessoa mais sênior na sala, a quem Eric Schmidt e Jonathan Rosenberg chamam de “HiPPO” (sigla em inglês para “Opinião da Pessoa Mais Bem Paga”)

A tomada de decisão varia amplamente em diferentes setores industriais. Descobrimos que em alguns setores, adota-se a abordagem de “se não está quebrado, não conserte… nunca”. Setores que possuem sistemas cujo design demandou muito pensamento e esforço são frequentemente caracterizados por uma relutância em mudar a tecnologia subjacente. Por exemplo, a indústria de telecomunicações ainda utiliza switches de longa distância implementados na década de 1980. Por que eles confiam em tecnologia desenvolvida há algumas décadas? Esses switches “são praticamente à prova de balas e altamente redundantes”, de acordo com Gus Hartmann. Conforme relatado por Dan Sheridan, a indústria nuclear também é lenta para mudar. Todas as decisões são fundamentadas no pensamento: se está funcionando agora, não mude.

Muitas indústrias focam fortemente em manuais e procedimentos em vez de resolver problemas de forma aberta. Cada cenário concebível é capturado em uma lista de verificação ou em “o manual”. Quando algo dá errado, este recurso é a fonte autoritária de como reagir. Essa abordagem prescritiva funciona para indústrias que evoluem e se desenvolvem relativamente lentamente, porque os cenários do que poderia dar errado não estão constantemente evoluindo devido a atualizações ou mudanças no sistema. Essa abordagem também é comum em indústrias em que o nível de habilidade dos trabalhadores pode ser limitado, e a melhor maneira de garantir que as pessoas respondam adequadamente em uma emergência é fornecer um conjunto simples e claro de instruções.

Outras indústrias também adotam uma abordagem clara e orientada por dados para a tomada de decisões. Na experiência de Eddie Kennedy, ambientes de pesquisa e manufatura são caracterizados por uma cultura rigorosa de experimentação que depende muito da formulação e teste de hipóteses. Essas indústrias conduzem regularmente experimentos controlados para garantir que uma determinada mudança produza o resultado esperado em um nível estatisticamente significativo e que nada inesperado ocorra. As mudanças são implementadas apenas quando os dados do experimento suportam a decisão.

Finalmente, algumas indústrias, como a negociação proprietária, dividem a tomada de decisões para gerenciar melhor o risco. De acordo com John Li, essa indústria possui uma equipe de fiscalização separada dos traders para garantir que riscos indevidos não sejam assumidos em busca do lucro. A equipe de fiscalização é responsável por monitorar eventos no mercado e interromper a negociação se as coisas saírem do controle. Se ocorrer uma anomalia no sistema, a primeira resposta da equipe de fiscalização é desligar o sistema. Como disse John Li, “Se não estamos negociando, não estamos perdendo dinheiro. Não estamos ganhando dinheiro também, mas pelo menos não estamos perdendo dinheiro.” Somente a equipe de fiscalização pode reiniciar o sistema, apesar de quão angustiante um atraso possa parecer para os traders que estão perdendo uma oportunidade potencialmente lucrativa.

Conclusão

Muitos dos princípios fundamentais da Engenharia de Confiabilidade de Sites (Site Reliability Engineering – SRE) no Google são evidentes em uma ampla gama de indústrias. As lições já aprendidas por indústrias bem estabelecidas provavelmente inspiraram algumas das práticas em uso no Google hoje.

Uma conclusão principal de nossa pesquisa entre diferentes setores foi que, em muitas partes de seu negócio de software, o Google tem uma maior disposição para a velocidade do que os participantes na maioria das outras indústrias. A capacidade de se movimentar ou mudar rapidamente deve ser ponderada em relação às diferentes implicações de uma falha. Nas indústrias nuclear, de aviação ou médica, por exemplo, as pessoas podem ficar feridas ou até mesmo morrer em caso de uma interrupção ou falha. Quando as apostas são altas, uma abordagem conservadora para alcançar alta confiabilidade é justificada.

No Google, caminhamos constantemente numa corda bamba entre as expectativas dos usuários quanto à alta confiabilidade e um foco laser na mudança rápida e inovação. Embora o Google leve a confiabilidade muito a sério, precisamos adaptar nossas abordagens à nossa alta taxa de mudança. Como discutido em capítulos anteriores, muitos de nossos negócios de software, como o Search, tomam decisões conscientes sobre o quão confiável é “confiável o suficiente” na realidade.

O Google tem essa flexibilidade na maioria de seus produtos e serviços de software, que operam em um ambiente no qual vidas não estão diretamente em risco se algo der errado. Portanto, podemos usar ferramentas como orçamentos de erro (Motivação para Orçamentos de Erro) como meio de “financiar” uma cultura de inovação e tomada de riscos calculados. Em essência, o Google adaptou princípios conhecidos de confiabilidade, que em muitos casos foram desenvolvidos e aprimorados em outras indústrias, para criar sua própria cultura única de confiabilidade, uma que equilibra escala, complexidade e velocidade com alta confiabilidade.

Capítulo 33 – Lições Aprendidas de Outras Indústrias

Escrito por Jennifer Petoff

Editado por Betsy Beyer

Uma análise profunda da cultura e práticas do SRE no Google naturalmente leva à questão de como outras indústrias gerenciam seus negócios para garantir confiabilidade. A elaboração deste livro sobre o SRE do Google criou uma oportunidade para conversar com vários engenheiros do Google sobre suas experiências de trabalho anteriores em diversas outras áreas de alta confiabilidade, a fim de abordar as seguintes questões comparativas:

  • As principais utilizadas no SRE são igualmente importantes fora do Google, ou outras indústrias enfrentam os requisitos de alta confiabilidade de maneiras marcadamente diferentes?
  • Se outras indústrias também adotam os princípios do SRE, como esses princípios se manifestam?
  • Quais são as semelhanças e diferenças na implementação desses princípios entre as indústrias?
  • Quais fatores impulsionam as semelhanças e diferenças na implementação?
  • O que o Google e a indústria de tecnologia podem aprender com essas comparações?

Um número de princípios fundamentais para a Engenharia de Confiabilidade de Site (SRE) no Google são discutidos ao longo deste texto. Para simplificar nossa comparação das melhores práticas em outras indústrias, destilamos esses conceitos em quatro temas-chave:

  • Preparação e Testes de Desastre
  • Cultura de Postmortem
  • Automação e Redução da Sobrecarga Operacional
  • Tomada de Decisão Estruturada e Racional

Este capítulo introduz as indústrias que perfilamos e os veteranos da indústria que entrevistamos. Definimos temas-chave da SRE, discutimos como esses temas são implementados no Google e fornecemos exemplos de como esses princípios se manifestam em outras indústrias para fins comparativos. Concluímos com algumas percepções e discussões sobre os padrões e antipadrões que descobrimos.

Conheça Nossos Veteranos da Indústria

Peter Dahl é engenheiro principal no Google. Anteriormente, trabalhou como contratado de defesa em diversos sistemas de alta confiabilidade, incluindo sistemas de GPS e orientação inercial para veículos aéreos e de rodas. As consequências de uma falha de confiabilidade em tais sistemas incluem mau funcionamento ou perda do veículo, e as consequências financeiras associadas a essa falha.

Mike Doherty é engenheiro de confiabilidade de site no Google. Ele trabalhou como salva-vidas e instrutor de salva-vidas por uma década no Canadá. A confiabilidade é absolutamente essencial por natureza nesse campo, pois vidas estão em jogo todos os dias.

Erik Gross é atualmente um engenheiro de software no Google. Antes de ingressar na empresa, passou sete anos projetando algoritmos e código para os lasers e sistemas usados em cirurgias refrativas oculares (por exemplo, LASIK). Este é um campo de alto risco e alta confiabilidade, no qual muitas lições relevantes para a confiabilidade diante de regulamentações governamentais e riscos humanos foram aprendidas à medida que a tecnologia recebia aprovação da FDA, gradualmente melhorava e finalmente se tornava onipresente.

Gus Hartmann e Kevin Greer têm experiência na indústria de telecomunicações, incluindo a manutenção do sistema de resposta a emergências E911. Kevin é atualmente um engenheiro de software na equipe do Google Chrome, e Gus é um engenheiro de sistemas na equipe de Engenharia Corporativa do Google. As expectativas dos usuários na indústria de telecomunicações demandam alta confiabilidade. As implicações de uma falha no serviço variam desde o incômodo do usuário devido a uma interrupção do sistema até fatalidades se o E911 ficar inoperante.

Ron Heiby é gerente técnico de Programa para Engenharia de Confiabilidade de Site no Google. Ron tem experiência no desenvolvimento de celulares, dispositivos médicos e na indústria automotiva. Em alguns casos, ele trabalhou em componentes de interface dessas indústrias (por exemplo, em um dispositivo para permitir que leituras de EKG em ambulâncias sejam transmitidas pela rede digital de telefonia sem fio). Nessas indústrias, o impacto de um problema de confiabilidade pode variar desde prejuízos comerciais devido a recalls de equipamentos até o impacto indireto na vida e na saúde (por exemplo, pessoas não recebendo a atenção médica necessária se o EKG não puder se comunicar com o hospital).

Adrian Hilton é engenheiro de coordenação de Lançamentos no Google. Anteriormente, trabalhou em aeronaves militares do Reino Unido e dos EUA, aviônicos navais e sistemas de gerenciamento de equipamentos de aeronaves, além de sistemas de sinalização ferroviária no Reino Unido. A confiabilidade é crucial nesse espaço, pois o impacto de incidentes varia desde a perda de equipamentos de vários milhões de dólares até lesões e fatalidades.

Eddie Kennedy é gerente de projeto na equipe de Experiência Global do Cliente no Google e é engenheiro mecânico por formação. Eddie passou seis anos trabalhando como engenheiro de processo Six Sigma Black Belt em uma instalação de fabricação de diamantes sintéticos. Essa indústria é caracterizada por um foco incessante na segurança, pois os extremos de temperatura e pressão exigidos pelo processo representam um alto nível de perigo para os trabalhadores diariamente.

John Li é atualmente engenheiro de confiabilidade de site no Google. Anteriormente, John trabalhou como administrador de sistemas e desenvolvedor de software em uma empresa de negociação proprietária na indústria financeira. Questões de confiabilidade no setor financeiro são tratadas com muita seriedade, pois podem levar a sérias consequências fiscais.

Dan Sheridan é engenheiro de confiabilidade de site no Google. Antes de ingressar na empresa, trabalhou como consultor de segurança na indústria nuclear civil no Reino Unido. A confiabilidade é crucial na indústria nuclear, pois um incidente pode ter sérias repercussões: as interrupções podem incorrer em perdas de receitas de milhões de dólares por dia, enquanto os riscos para os trabalhadores e para a comunidade são ainda mais graves, ditando uma tolerância zero para falhas. A infraestrutura nuclear é projetada com uma série de dispositivos de segurança que interrompem as operações antes que um incidente de tal magnitude seja alcançado.

Jeff Stevenson é atualmente gerente de operações de hardware no Google. Ele tem experiência anterior como engenheiro nuclear na Marinha dos Estados Unidos em um submarino. As apostas em termos de confiabilidade na Marinha nuclear são elevadas — os problemas que surgem em caso de incidentes variam desde equipamentos danificados até impactos ambientais de longa duração e potencial perda de vidas.

Matthew Toia é gerente de confiabilidade de site focado em sistemas de armazenamento. Antes de ingressar no Google, trabalhou no desenvolvimento de software e na implementação de sistemas de software de controle de tráfego aéreo. Os efeitos de incidentes nesta indústria variam de inconvenientes para passageiros e companhias aéreas (por exemplo, voos atrasados, aviões desviados) até a potencial perda de vidas em caso de acidentes. A defesa em profundidade é uma estratégia-chave para evitar falhas catastróficas.

Agora que você conheceu nossos especialistas e obteve uma compreensão geral de por que a confiabilidade é importante em seus respectivos campos anteriores, vamos aprofundar nos quatro temas-chave da confiabilidade.

Preparedness and Disaster Testing

“A esperança não é uma estratégia.” Este chamado de mobilização da equipe SRE no Google resume o que queremos dizer com preparação e testes de desastre. A cultura SRE está sempre vigilante e questionando constantemente: O que poderia dar errado? Que ações podemos tomar para abordar essas questões antes que elas levem a uma interrupção ou perda de dados? Nossos exercícios anuais de Teste de Desastre e Recuperação (DiRT) buscam enfrentar diretamente essas perguntas. Nos exercícios DiRT, os SREs levam os sistemas de produção ao limite e causam interrupções reais para:

  • Garantir que os sistemas reajam da maneira que imaginamos
  • Identificar fraquezas inesperadas
  • Encontrar maneiras de tornar os sistemas mais robustos para evitar interrupções não controladas

Diversas estratégias para testar a prontidão para desastres e garantir a preparação em outras indústrias surgiram de nossas conversas. As estratégias incluíram o seguinte:

  • Foco organizacional incessante na segurança
  • Atenção aos detalhes
  • Capacidade oscilante
  • Simulações e treinamentos ao vivo
  • Treinamento e certificação
  • Foco obsessivo na coleta detalhada de requisitos e design
  • Defesa em profundidade

Foco Organizacional Incansável na Segurança

Este princípio é particularmente importante em um contexto de engenharia industrial. Segundo Eddie Kennedy, que trabalhou em um chão de fábrica onde os trabalhadores enfrentavam riscos à segurança, “toda reunião de gerenciamento começava com uma discussão sobre segurança”. A indústria de manufatura se prepara para o inesperado estabelecendo processos altamente definidos que são rigorosamente seguidos em todos os níveis da organização. É crucial que todos os funcionários levem a segurança a sério, e que os trabalhadores se sintam capacitados a se manifestar caso algo pareça fora do comum. No caso das indústrias de energia nuclear, aeronaves militares e sinalização ferroviária, as normas de segurança para software são detalhadamente especificadas (por exemplo, UK Defence Standard 00-56, IEC 61508, IEC513, US DO-178B/C e DO-254) e os níveis de confiabilidade para tais sistemas são claramente identificados (por exemplo, Nível de Integridade de Segurança (SIL) 1–4), com o objetivo de especificar abordagens aceitáveis para a entrega de um produto.

Atenção aos Detalhes

De seu tempo na Marinha dos Estados Unidos, Jeff Stevenson recorda uma consciência aguçada de como a falta de diligência na execução de pequenas tarefas (por exemplo, manutenção de óleo lubrificante) poderia levar a uma falha importante no submarino. Um pequeno descuido ou erro pode ter grandes efeitos. Os sistemas são altamente interconectados, então um acidente em uma área pode afetar vários componentes relacionados. A Marinha nuclear foca na manutenção de rotina para garantir que pequenos problemas não se transformem em grandes complicações.

Capacidade Oscilante

A utilização do sistema na indústria de telecomunicações pode ser altamente imprevisível. A capacidade absoluta pode ser sobrecarregada por eventos imprevisíveis, como desastres naturais, bem como por eventos grandes e previsíveis, como as Olimpíadas. Segundo Gus Hartmann, a indústria lida com esses incidentes implantando capacidade oscilante na forma de uma SOW (comutador sobre rodas), um escritório móvel de telecomunicações. Essa capacidade excedente pode ser implementada em uma emergência ou em antecipação a um evento conhecido que provavelmente sobrecarregará o sistema. Questões de capacidade também podem surgir de maneira inesperada em assuntos não relacionados à capacidade absoluta. Por exemplo, quando o número de telefone privado de uma celebridade vazou em 2005 e milhares de fãs tentaram ligar para ela simultaneamente, o sistema de telecomunicações exibiu sintomas semelhantes a um ataque distribuído de negação de serviço (DDoS) ou um erro massivo de roteamento.

Simulações e Treinamentos ao Vivo

Os testes de Recuperação de Desastres do Google têm muito em comum com as simulações e treinamentos ao vivo que são foco central em muitas das indústrias estabelecidas que pesquisamos. As potenciais consequências de uma interrupção do sistema determinam se o uso de uma simulação ou de um treinamento ao vivo é apropriado. Por exemplo, Matthew Toia destaca que a indústria da aviação não pode realizar um teste ao vivo “em produção” sem colocar equipamentos e passageiros em risco. Em vez disso, eles usam simuladores extremamente realistas com feeds de dados ao vivo, nos quais as salas de controle e os equipamentos são modelados nos mínimos detalhes para garantir uma experiência realista sem colocar pessoas reais em risco. Gus Hartmann relata que a indústria de telecomunicações normalmente se concentra em treinamentos ao vivo voltados para sobreviver a furacões e outras emergências climáticas. Esse modelamento levou à criação de instalações à prova de intempéries com geradores dentro do prédio capazes de resistir a uma tempestade.

A Marinha nuclear dos EUA utiliza uma mistura de exercícios mentais de “e se” e treinamentos ao vivo. Segundo Jeff Stevenson, os treinamentos ao vivo envolvem “realmente quebrar coisas reais, mas com parâmetros de controle. Os treinamentos ao vivo são realizados religiosamente, toda semana, de dois a três dias por semana”. Para a Marinha nuclear, os exercícios mentais são úteis, mas não são suficientes para se preparar para incidentes reais. As respostas precisam ser praticadas para não serem esquecidas.

Segundo Mike Doherty, os salva-vidas enfrentam exercícios de teste de desastres mais semelhantes a uma experiência de “cliente misterioso”. Normalmente, um gerente de instalação trabalha com uma criança ou um salva-vidas em treinamento incógnito para encenar um afogamento simulado. Esses cenários são conduzidos da maneira mais realista possível para que os salva-vidas não consigam diferenciar entre emergências reais e encenadas.

Treinamento e Certificação

Nossas entrevistas sugerem que o treinamento e a certificação são particularmente importantes quando vidas estão em jogo. Por exemplo, Mike Doherty descreveu como os salva-vidas passam por uma certificação rigorosa de treinamento, além de um processo periódico de recertificação. Os cursos incluem componentes de condicionamento físico (por exemplo, um salva-vidas deve ser capaz de segurar alguém mais pesado do que eles com os ombros fora da água), componentes técnicos como primeiros socorros e RCP, e elementos operacionais (por exemplo, se um salva-vidas entra na água, como os outros membros da equipe respondem?). Cada instalação também tem treinamento específico do local, porque fazer o trabalho de salva-vidas em uma piscina é bastante diferente de fazer o trabalho em uma praia à beira do lago ou no oceano.

Foco na Coleta Detalhada de Requisitos e Design

Alguns dos engenheiros que entrevistamos discutiram a importância da coleta detalhada de requisitos e documentos de design. Essa prática é especialmente importante ao trabalhar com dispositivos médicos. Em muitos desses casos, o uso real ou a manutenção do equipamento não estão sob a responsabilidade dos designers do produto. Assim, os requisitos de uso e manutenção precisam ser obtidos de outras fontes.

Por exemplo, segundo Erik Gross, as máquinas de cirurgia ocular a laser são projetadas para serem o mais à prova de falhas possível. Portanto, é especialmente importante solicitar requisitos aos cirurgiões que realmente usam essas máquinas e aos técnicos responsáveis por sua manutenção. Em outro exemplo, o ex-contratado de defesa Peter Dahl descreveu uma cultura de design muito detalhada em que criar um novo sistema de defesa comumente envolvia um ano inteiro de design, seguido por apenas três semanas de codificação para concretizar o design. Ambos esses exemplos são bastante diferentes da cultura de lançamento e iteração do Google, que promove uma taxa de mudança muito mais rápida com um risco calculado. Outras indústrias (por exemplo, a indústria médica e a militar, como discutido anteriormente) têm pressões, apetites de risco e requisitos muito diferentes, e seus processos são muito influenciados por essas circunstâncias.

Defesa em Profundidade e Amplitude

Na indústria de energia nuclear, a defesa em profundidade é um elemento-chave para a preparação. Reatores nucleares possuem redundância em todos os sistemas e implementam uma metodologia de design que exige sistemas alternativos atrás dos sistemas primários em caso de falha. O sistema é projetado com múltiplas camadas de proteção, incluindo uma barreira física final para liberação radioativa ao redor da própria usina. A defesa em profundidade é particularmente importante na indústria nuclear devido à tolerância zero para falhas e incidentes.

Cultura de Postmortem

Ação Corretiva e Preventiva (CAPA) é um conceito bem conhecido para melhorar a confiabilidade, que se concentra na investigação sistemática das causas-raiz de problemas ou riscos identificados para evitar recorrências. Esse princípio é incorporado pela forte cultura de postmortems sem culpados da SRE. Quando algo dá errado (e dada a escala, complexidade e rápida taxa de mudança no Google, algo inevitavelmente dará errado), é importante avaliar todos os seguintes:

  • O que aconteceu
  • A eficácia da resposta
  • O que faríamos de forma diferente da próxima vez
  • Quais ações serão tomadas para garantir que um incidente específico não ocorra novamente

Este exercício é realizado sem apontar o dedo para qualquer indivíduo. Em vez de atribuir culpa, é muito mais importante entender o que deu errado e como, como organização, nos reuniremos para garantir que isso não aconteça novamente. Focar em quem pode ter causado a interrupção é contraproducente. Os postmortems são realizados após incidentes e publicados em todas as equipes de SRE para que todos possam se beneficiar das lições aprendidas.

Nossas entrevistas revelaram que muitas indústrias realizam uma versão do post-mortem (embora muitas não usem esse termo específico, por razões óbvias). A motivação por trás desses exercícios parece ser o principal diferenciador entre as práticas da indústria.

Muitas indústrias são fortemente regulamentadas e são responsabilizadas por autoridades governamentais específicas quando algo dá errado. Essa regulamentação é especialmente intrínseca quando as apostas do fracasso são altas (por exemplo, vidas estão em jogo). Agências governamentais relevantes incluem a FCC (telecomunicações), FAA (aviação), OSHA (indústrias de manufatura e química), FDA (dispositivos médicos) e as várias Autoridades Nacionais Competentes na UE. As indústrias de energia nuclear e transporte também são fortemente regulamentadas.

Considerações de segurança são outro fator motivador por trás dos postmortems. Nas indústrias de manufatura e química, o risco de lesões ou morte está sempre presente devido à natureza das condições necessárias para produzir o produto final (alta temperatura, pressão, toxicidade e corrosividade, para citar alguns). Por exemplo, a Alcoa possui uma cultura de segurança notável. O ex-CEO Paul O’Neill exigia que a equipe o notificasse dentro de 24 horas de qualquer lesão que tirasse um trabalhador do serviço por um dia. Ele até distribuiu seu número de telefone residencial para os trabalhadores no chão da fábrica para que pudessem alertá-lo pessoalmente sobre preocupações de segurança.

As apostas são tão altas nas indústrias de manufatura e química que até mesmo “quase acidentes” — quando um evento poderia ter causado sérios danos, mas não causou — são cuidadosamente analisados. Esses cenários funcionam como uma espécie de post-mortem preventivo. De acordo com VM Brasseur em uma palestra dada na YAPC NA 2015, “Há múltiplos quase acidentes em praticamente todos os desastres e crises empresariais, e geralmente são ignorados no momento em que ocorrem. Erro latente, mais uma condição facilitadora, resulta em coisas não funcionando exatamente como você planejou” [Bra15]. Quase acidentes são efetivamente desastres esperando para acontecer. Por exemplo, cenários em que um trabalhador não segue o procedimento operacional padrão, um funcionário pula para fora do caminho no último segundo para evitar um respingo, ou um derramamento na escada não é limpo, todos representam quase acidentes e oportunidades de aprender e melhorar. Na próxima vez, o funcionário e a empresa podem não ter tanta sorte.

O programa CHIRP (Confidential Reporting Programme for Aviation and Maritime) do Reino Unido busca aumentar a conscientização sobre tais incidentes em toda a indústria, fornecendo um ponto central de relato onde o pessoal da aviação e marítimo pode relatar quase acidentes confidencialmente. Relatórios e análises desses quase acidentes são então publicados em boletins periódicos.

O salvamento tem uma cultura profundamente incorporada de análise pósincidente e planejamento de ação. Mike Doherty brinca, “Se os pés de um salva-vidas entrarem na água, haverá papelada!” Uma descrição detalhada é necessária após qualquer incidente na piscina ou na praia. No caso de incidentes graves, a equipe examina coletivamente o incidente de ponta a ponta, discutindo o que deu certo e o que deu errado. Mudanças operacionais são feitas com base nessas descobertas, e frequentemente são agendados treinamentos para ajudar as pessoas a ganhar confiança em sua capacidade de lidar com um incidente semelhante no futuro. Em casos de incidentes particularmente chocantes ou traumáticos, um conselheiro é levado ao local para ajudar a equipe a lidar com as consequências psicológicas. Os salva-vidas podem estar bem preparados para o que aconteceu na prática, mas podem sentir que não fizeram um trabalho adequado. Semelhante ao Google, o salvamento abraça uma cultura de análise de incidentes sem culpados. Os incidentes são caóticos, e muitos fatores contribuem para qualquer incidente específico. Neste campo, não é útil atribuir a culpa a um único indivíduo.

Automatizando Trabalho Repetitivo e Sobrecarga Operacional

No seu cerne, os Engenheiros de Confiabilidade de Sites do Google são engenheiros de software com uma baixa tolerância para trabalhos reativos repetitivos. É fortemente incorporado em nossa cultura evitar repetir uma operação que não acrescenta valor a um serviço. Se uma tarefa pode ser automatizada, por que executar um sistema em trabalhos repetitivos de baixo valor? A automação reduz a sobrecarga operacional e libera tempo para que nossos engenheiros avaliem e melhorem proativamente os serviços que eles apoiam.

As indústrias que pesquisamos foram mistas em termos de se, como e por que adotaram a automação. Certas indústrias confiavam mais em humanos do que em máquinas. Durante o mandato do veterano da indústria, a Marinha nuclear dos EUA evitou a automação em favor de uma série de intertravamentos e procedimentos administrativos. Por exemplo, de acordo com Jeff Stevenson, operar uma válvula exigia um operador, um supervisor e um membro da tripulação ao telefone com o oficial de vigilância de engenharia encarregado de monitorar a resposta à ação tomada. Essas operações eram muito manuais devido à preocupação de que um sistema automatizado pudesse não detectar um problema que um ser humano definitivamente notaria. As operações em um submarino são governadas por uma cadeia de decisões humanas confiáveis — uma série de pessoas, em vez de um indivíduo. A Marinha nuclear também estava preocupada que a automação e os computadores se movessem tão rapidamente que fossem muito capazes de cometer um grande erro irreparável. Ao lidar com reatores nucleares, uma abordagem metódica lenta e constante é mais importante do que realizar uma tarefa rapidamente.

De acordo com John Li, a indústria de negociação proprietária tornou-se cada vez mais cautelosa em relação à aplicação de automação nos últimos anos. A experiência mostrou que a automação configurada incorretamente pode causar danos significativos e incorrer em grande perda financeira em um período muito curto de tempo. Por exemplo, em 2012, o Knight Capital Group enfrentou uma “falha de software” que resultou em uma perda de $440 milhões em apenas algumas horas.160 Da mesma forma, em 2010, o mercado de ações dos EUA experimentou um Flash Crash que foi atribuído a um operador fora de controle tentando manipular o mercado com meios automatizados. Embora o mercado tenha se recuperado rapidamente, o Flash Crash resultou em uma perda da magnitude de trilhões de dólares em apenas 30 minutos.161 Computadores podem executar tarefas muito rapidamente, e a velocidade pode ser negativa se essas tarefas forem configuradas incorretamente.

Em contraste, algumas empresas abraçam a automação precisamente porque os computadores agem mais rapidamente do que as pessoas. De acordo com Eddie Kennedy, eficiência e economia de dinheiro são fundamentais na indústria de manufatura, e a automação oferece um meio de realizar tarefas de maneira mais eficiente e econômica. Além disso, a automação é geralmente mais confiável e repetitiva do que o trabalho realizado manualmente por humanos, o que significa que ela produz padrões de qualidade mais altos e tolerâncias mais apertadas. Dan Sheridan discutiu a automação implantada na indústria nuclear do Reino Unido. Aqui, uma regra prática dita que se uma usina precisar responder a uma determinada situação em menos de 30 minutos, essa resposta deve ser automatizada.

Na experiência de Matt Toia, a indústria da aviação aplica a automação de forma seletiva.

Por exemplo, a failover operacional é realizada automaticamente, mas quando se trata de certas outras tarefas, a indústria confia na automação apenas quando verificada por um ser humano. Embora a indústria empregue uma boa quantidade de monitoramento automático, implementações reais de sistemas de controle de tráfego aéreo devem ser inspecionadas manualmente por seres humanos.

De acordo com Erik Gross, a automação tem sido bastante eficaz em reduzir erros do usuário na cirurgia a laser nos olhos. Antes da cirurgia LASIK, o médico mede o paciente usando um teste refrativo ocular. Originalmente, o médico digitava os números e apertava um botão, e o laser corrigiria a visão do paciente. No entanto, erros de entrada de dados poderiam ser um grande problema. Esse processo também envolvia a possibilidade de misturar dados do paciente ou embaralhar números para o olho esquerdo e direito.

A automação agora reduz consideravelmente a chance de os humanos cometerem um erro que impacte a visão de alguém. Uma verificação automática dos dados inseridos manualmente foi a primeira melhoria automatizada significativa: se um operador humano insere medidas fora de uma faixa esperada, a automação imediatamente destaca esse caso como incomum. Outras melhorias automatizadas seguiram esse desenvolvimento: agora a íris é fotografada durante o teste refrativo ocular preliminar. Quando é hora de realizar a cirurgia, a íris do paciente é automaticamente correspondida à íris na foto, eliminando assim a possibilidade de misturar dados do paciente. Quando essa solução automatizada foi implementada, uma classe inteira de erros médicos desapareceu.

 

Tomada de Decisão Estruturada e Racional

No Google em geral e, em particular, na Engenharia de Confiabilidade de Sites, os dados são essenciais. A equipe aspira a tomar decisões de maneira estruturada e racional, garantindo que:

  • A base para a decisão é acordada antecipadamente, em vez de ser justificada ex post facto.
  • Os inputs para a decisão são claros.
  • Quaisquer suposições são explicitamente declaradas.
  • Decisões baseadas em dados superam decisões baseadas em sentimentos, palpites ou na opinião do funcionário mais sênior na sala.

O SRE do Google opera sob a premissa básica de que todos na equipe:

  • Tem o melhor interesse dos usuários de um serviço no coração.
  • Pode descobrir como proceder com base nos dados disponíveis.

As decisões devem ser baseadas em informações em vez de serem prescritivas e são tomadas sem deferência a opiniões pessoais, mesmo as da pessoa mais sênior na sala, a quem Eric Schmidt e Jonathan Rosenberg chamam de “HiPPO” (sigla em inglês para “Opinião da Pessoa Mais Bem Paga”)

A tomada de decisão varia amplamente em diferentes setores industriais. Descobrimos que em alguns setores, adota-se a abordagem de “se não está quebrado, não conserte… nunca”. Setores que possuem sistemas cujo design demandou muito pensamento e esforço são frequentemente caracterizados por uma relutância em mudar a tecnologia subjacente. Por exemplo, a indústria de telecomunicações ainda utiliza switches de longa distância implementados na década de 1980. Por que eles confiam em tecnologia desenvolvida há algumas décadas? Esses switches “são praticamente à prova de balas e altamente redundantes”, de acordo com Gus Hartmann. Conforme relatado por Dan Sheridan, a indústria nuclear também é lenta para mudar. Todas as decisões são fundamentadas no pensamento: se está funcionando agora, não mude.

Muitas indústrias focam fortemente em manuais e procedimentos em vez de resolver problemas de forma aberta. Cada cenário concebível é capturado em uma lista de verificação ou em “o manual”. Quando algo dá errado, este recurso é a fonte autoritária de como reagir. Essa abordagem prescritiva funciona para indústrias que evoluem e se desenvolvem relativamente lentamente, porque os cenários do que poderia dar errado não estão constantemente evoluindo devido a atualizações ou mudanças no sistema. Essa abordagem também é comum em indústrias em que o nível de habilidade dos trabalhadores pode ser limitado, e a melhor maneira de garantir que as pessoas respondam adequadamente em uma emergência é fornecer um conjunto simples e claro de instruções.

Outras indústrias também adotam uma abordagem clara e orientada por dados para a tomada de decisões. Na experiência de Eddie Kennedy, ambientes de pesquisa e manufatura são caracterizados por uma cultura rigorosa de experimentação que depende muito da formulação e teste de hipóteses. Essas indústrias conduzem regularmente experimentos controlados para garantir que uma determinada mudança produza o resultado esperado em um nível estatisticamente significativo e que nada inesperado ocorra. As mudanças são implementadas apenas quando os dados do experimento suportam a decisão.

Finalmente, algumas indústrias, como a negociação proprietária, dividem a tomada de decisões para gerenciar melhor o risco. De acordo com John Li, essa indústria possui uma equipe de fiscalização separada dos traders para garantir que riscos indevidos não sejam assumidos em busca do lucro. A equipe de fiscalização é responsável por monitorar eventos no mercado e interromper a negociação se as coisas saírem do controle. Se ocorrer uma anomalia no sistema, a primeira resposta da equipe de fiscalização é desligar o sistema. Como disse John Li, “Se não estamos negociando, não estamos perdendo dinheiro. Não estamos ganhando dinheiro também, mas pelo menos não estamos perdendo dinheiro.” Somente a equipe de fiscalização pode reiniciar o sistema, apesar de quão angustiante um atraso possa parecer para os traders que estão perdendo uma oportunidade potencialmente lucrativa.

Conclusão

Muitos dos princípios fundamentais da Engenharia de Confiabilidade de Sites (Site Reliability Engineering – SRE) no Google são evidentes em uma ampla gama de indústrias. As lições já aprendidas por indústrias bem estabelecidas provavelmente inspiraram algumas das práticas em uso no Google hoje.

Uma conclusão principal de nossa pesquisa entre diferentes setores foi que, em muitas partes de seu negócio de software, o Google tem uma maior disposição para a velocidade do que os participantes na maioria das outras indústrias. A capacidade de se movimentar ou mudar rapidamente deve ser ponderada em relação às diferentes implicações de uma falha. Nas indústrias nuclear, de aviação ou médica, por exemplo, as pessoas podem ficar feridas ou até mesmo morrer em caso de uma interrupção ou falha. Quando as apostas são altas, uma abordagem conservadora para alcançar alta confiabilidade é justificada.

No Google, caminhamos constantemente numa corda bamba entre as expectativas dos usuários quanto à alta confiabilidade e um foco laser na mudança rápida e inovação. Embora o Google leve a confiabilidade muito a sério, precisamos adaptar nossas abordagens à nossa alta taxa de mudança. Como discutido em capítulos anteriores, muitos de nossos negócios de software, como o Search, tomam decisões conscientes sobre o quão confiável é “confiável o suficiente” na realidade.

O Google tem essa flexibilidade na maioria de seus produtos e serviços de software, que operam em um ambiente no qual vidas não estão diretamente em risco se algo der errado. Portanto, podemos usar ferramentas como orçamentos de erro (Motivação para Orçamentos de Erro) como meio de “financiar” uma cultura de inovação e tomada de riscos calculados. Em essência, o Google adaptou princípios conhecidos de confiabilidade, que em muitos casos foram desenvolvidos e aprimorados em outras indústrias, para criar sua própria cultura única de confiabilidade, uma que equilibra escala, complexidade e velocidade com alta confiabilidade.

Experimente agora, grátis!